在java程式中如何能獲取到另一個程式的windows控制代碼,又如何使用這個控制代碼向這個視窗傳送訊息
阿新 • • 發佈:2019-02-02
import com.sun.jna.Native; import com.sun.jna.Pointer; import com.sun.jna.platform.win32.WinDef.HWND; import com.sun.jna.platform.win32.WinUser; import com.sun.jna.platform.win32.WinUser.WNDENUMPROC; import com.sun.jna.win32.StdCallLibrary; public class TryWithHWND { public interface User32 extends StdCallLibrary { User32 INSTANCE = (User32) Native.loadLibrary("user32", User32.class); boolean EnumWindows(WinUser.WNDENUMPROC lpEnumFunc, Pointer arg); int GetWindowTextA(HWND hWnd, byte[] lpString, int nMaxCount); } public static void main(String[] args) { final User32 user32 = User32.INSTANCE; user32.EnumWindows(new WNDENUMPROC() { int count = 0; @Override public boolean callback(HWND hWnd, Pointer arg1) { byte[] windowText = new byte[512]; user32.GetWindowTextA(hWnd, windowText, 512); String wText = Native.toString(windowText); // get rid of this if block if you want all windows regardless of whether // or not they have text if (wText.isEmpty()) { return true; } System.out.println("Found window with text " + hWnd + ", total " + ++count + " Text: " + wText); return true; } }, null); } }
原始碼:http://pan.baidu.com/share/link?shareid=411802&uk=3878681452
How to get list of all window handles in Java (Using JNA)