java – 用JNA单击鼠标
发布时间:2020-12-15 02:31:42 所属栏目:Java 来源:网络整理
导读:我正试图用JNA模拟鼠标点击窗口. public class App {public static final int WM_LBUTTONUP = 514;public static final int WM_LBUTTONDOWN = 513;public static final int WM_LBUTTONDBLCLK = 0x203;static int WM_CLOSE = 0x10;final static String winTit
我正试图用JNA模拟鼠标点击窗口.
public class App { public static final int WM_LBUTTONUP = 514; public static final int WM_LBUTTONDOWN = 513; public static final int WM_LBUTTONDBLCLK = 0x203; static int WM_CLOSE = 0x10; final static String winTitle = "Untitled - Notepad"; public static void main(String[] args) throws InterruptedException { User32Extra user32 = (User32Extra) Native.loadLibrary("user32",User32Extra.class,W32APIOptions.DEFAULT_OPTIONS); WinDef.HWND hwnd = user32.FindWindow(null,winTitle); user32.SetForegroundWindow(hwnd); Thread.sleep(1000); long y = 77 + (22 << 16);//x + (y << 16) WinDef.LPARAM l = new WinDef.LPARAM(y); WinDef.WPARAM w = new WinDef.WPARAM(0); user32.PostMessage(hwnd,WM_LBUTTONDOWN,w,l); Thread.sleep(1000); user32.PostMessage(hwnd,WM_LBUTTONUP,l); } } 它找到窗户并把它带到前面.但鼠标单击不起作用.也发送WM_CLOSE工作. 解决方法
只是猜测:点击事件不应传递到主窗口,而应传递到目标按钮对象本身.在给定的坐标上,当实际点击发生时,按钮位于主窗口上方“隐藏”它.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |