-2
Q
開放程序的定義
A
回答
1
RanRag翻譯,感謝link
要確定哪些程序屬於活動窗口,你必須:
1)下載jna.jar和platform.jar從JNA - Download page
2)將庫連接到項目
3)添加代碼:
private static class Psapi {
static { Native.register("psapi"); }
public static native int GetModuleBaseNameW(Pointer hProcess, Pointer hmodule, char[] lpBaseName, int size);
}
private 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);
}
private static class User32DLL {
static { Native.register("user32"); }
public static native int GetWindowThreadProcessId(WinDef.HWND hWnd, PointerByReference pref);
public static native WinDef.HWND GetForegroundWindow();
public static native int GetWindowTextW(WinDef.HWND hWnd, char[] lpString, int nMaxCount);
}
private static final int MAX_TITLE_LENGTH = 1024;
public void nameApplication() {
Psapi ps = new Psapi();
Kernel32 kr = new Kernel32();
User32DLL us = new User32DLL();
char[] buffer = new char[MAX_TITLE_LENGTH * 2];
String nameApp;
us.GetWindowTextW(us.GetForegroundWindow(), buffer, MAX_TITLE_LENGTH);
System.out.println("Active window title: " + Native.toString(buffer));
PointerByReference pointer = new PointerByReference();
us.GetWindowThreadProcessId(us.GetForegroundWindow(), pointer);
Pointer process = kr.OpenProcess(kr.PROCESS_QUERY_INFORMATION | kr.PROCESS_VM_READ, false, pointer.getValue());
ps.GetModuleBaseNameW(process, null, buffer, MAX_TITLE_LENGTH);
System.out.println("Active window process: " + Native.toString(buffer););
}
相關問題
- 1. 使用開放類型實現自定義提供程序
- 2. 開放應用程序打開的UIViewController
- 3. 語義縮放的自定義點擊處理程序
- 4. 定義程序
- 5. 正確的處理程序,以應對「開放」的Unix命令爲自定義URL處理小程序
- 6. 如何使用Xcode 4註冊自定義應用程序開放URL方案?
- 7. iOS自定義網址方案不開放應用程序Xcode 5
- 8. 計劃的定期通知,但其開放的應用程序
- 9. 開放工會類型定義
- 10. 開放的Android應用程序
- 11. 開放的Android應用程序
- 12. 序列化ObservableCollection它定義了開放元素
- 13. 定義程序包內的程序
- 14. Heroku的開放 - 沒有應用程序指定
- 15. 未定義程序
- 16. 認證程序的定義
- 17. 從OSx上的自定義URL打開碳C++程序
- 18. Fortran:離開子程序時清除已定義的數組
- 19. SharePoint 2010的自定義WCF服務應用程序開發
- 20. 用自己的C#應用程序打開自定義文件
- 21. 是否可以爲ServiceStack.Text中的開放泛型類型設置自定義(de)序列化程序?
- 22. 創建開放式應用程序
- 23. Android開放式應用程序
- 24. ClickOnce應用程序不開放
- 25. Windows Phone 8.1應用程序開放
- 26. WPF和WinForm應用程序不開放
- 27. Java在開放程序時讀取
- 28. Android開放式圖庫應用程序
- 29. Android開放式電話應用程序
- 30. 開放應用程序從一個重定向鏈接
瞭解如何使用'用java的Win32 API'。有關更多信息,請查看此[問題](http://stackoverflow.com/q/6391439/776084)。 – RanRag
爲什麼downvoting?這不是我在這裏看到的更糟糕的問題。 TorTTT請解釋你到目前爲止嘗試過什麼。 – BigMike