1
使用GetWindowModuleFileName
還有就是我的進程列表:在JNA
public class lab2 {
public static void main(String args[]) {
Kernel32 kernel32 = Kernel32.INSTANCE;
User32 user32 = User32.INSTANCE;
Tlhelp32.PROCESSENTRY32.ByReference processEntry = new Tlhelp32.PROCESSENTRY32.ByReference();
WinNT.HANDLE snapshot = kernel32.CreateToolhelp32Snapshot(
Tlhelp32.TH32CS_SNAPPROCESS, new WinDef.DWORD(0));
char path[] = new char[512];
HWND hWnd = User32.INSTANCE.GetWindowModuleFileName(hWnd, path, 512);
try {
while (kernel32.Process32Next(snapshot, processEntry)) {
System.out.println(Native.toString(processEntry.szExeFile)
+ "\t" + Native.toString(path));
}
} finally {
kernel32.CloseHandle(snapshot);
}
}
}
我試圖設置一個變量路徑的完整路徑的文件。我得到了一個錯誤@Type不匹配:無法從int轉換爲WinDef.HWND @在HWND hWnd = User32.INSTANCE.GetWindowModuleFileName(hWnd, path, 512);
我在哪裏出錯了?如何做到這一點?謝謝。
這是我第一次到JNA庫。我不明白如何展示每個流程的路徑,我會很感激您的建議。 –
爲了解決這個問題,我必須完成你現在要做的事情 - 檢查GetWindowModuleFileName上的MSDN條目,然後嘗試讓它與我的JNA應用程序一起工作。再次,我建議你開始的地方。 –
謝謝你的建議。我試圖像這樣實現它:'user32.GetWindowModuleFileName(hWnd,path,512); \t \t \t \t的System.out.println(Native.toString(processEntry.szExeFile) \t \t \t \t \t \t + 「\ t」 的+ Native.toString(路徑));'我得到一個錯誤:**的hWnd不能被解析爲變量。**我忘了什麼? –