0
A
回答
1
考慮使用Java Native Access。從here下載jna.jar和platform.jar。
您可能已經注意到我們可以使用GetWindowThreadProcessId中的user32.dll從窗口句柄中獲取pid。然後我們可以在kernel32.dll中使用OpenProcess來獲得指向該進程的指針。然後在the bunch of APIs像GetProcessMemoryInfo和GetModuleBaseNamePSAPI.DLL可以幫助你從這個過程目標的過程信息和GetProcessTimes在KERNEL32.DLL可以返回CPU使用率。 GetProcessMemoryInfo
包含一個名爲PROCESS_MEMORY_COUNTERS的結構,它需要Structure in JNA來處理。
static class Kernel32 {
static { Native.register("kernel32"); }
public static int PROCESS_QUERY_INFORMATION = 0x0400;
public static int PROCESS_VM_READ = 0x0010;
public static native int GetLastError();
public static native Pointer OpenProcess(int dwDesiredAccess, boolean bInheritHandle, Pointer pointer);
public static native boolean GetProcessTimes(Pointer hProcess, int lpCreationTime,int LPFILETIME lpExitTime, int lpKernelTime, int lpUserTime
}
static class Psapi {
static { Native.register("psapi"); }
public static native int GetModuleBaseNameW(Pointer hProcess, Pointer hmodule, char[] lpBaseName, int size);
...
}
static class User32DLL {
static { Native.register("user32"); }
public static native int GetWindowThreadProcessId(HWND hWnd, PointerByReference pref);
public static native int GetWindowTextW(HWND hWnd, char[] lpString, int nMaxCount);
}
PointerByReference pointer = new PointerByReference();
GetWindowThreadProcessId(yourHandle, pointer);
Pointer process = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, false, pointer.getValue());
GetModuleBaseNameW(process, null, buffer, MAX_TITLE_LENGTH);
System.out.println("Active window process: " + Native.toString(buffer));
相關問題
- 1. 如何從java applet中獲取信息?
- 2. 從另一個進程獲取信息
- 3. 從監控進程獲取信息
- 4. 如何從java ee 7批處理獲取進度信息
- 5. 如何編程(Java)獲取JBoss信息並進行管理?
- 6. 如何使用pid與Java獲取進程信息?
- 7. 在Windows中使用Java獲取進程詳細信息
- 8. 獲取子進程的異常信息
- 9. 如何獲取sendSynchronousRequest的進度信息?
- 10. 如何從多個線程獲取信息? Java
- 11. 如何在Linux中獲取進程的CPU信息?
- 12. 如何獲取有關進程的信息在Linux中
- 13. NodeJS:從進程ID獲取進程信息
- 14. 從進程句柄獲取進程信息
- 15. 如何使用java在linux中獲取特定端口上的進程信息
- 16. 獲取XML信息的Java
- 17. 如何從子表中獲取信息
- 18. 如何從標準中獲取信息?
- 19. 如何從圖像中獲取信息?
- 20. 如何從java中的Process獲取信息?
- 21. 如何從Java中的網頁獲取信息?
- 22. 如何從Java中獲取.txt文件的信息?
- 23. 如何獲取遠程機器的運行進程信息
- 24. 獲取信息從的XBee在Java
- 25. Java WS Synchronize信息進程?
- 26. 如何使用java獲取BIOS信息?
- 27. 如何從RouteData獲取Action信息?
- 28. java程序獲取ip isp信息
- 29. 如何獲得java進程對象的MemoryUsage統計信息
- 30. 獲取進程內存信息
只是想說,經過2個小時的搜索,這是唯一的答案,實際上我的作品能夠一次性列出標題和過程!謝謝!!! – misaka