gpt4 book ai didi

java - 用 JNA 鼠标点击

转载 作者:搜寻专家 更新时间:2023-11-01 00:52:18 49 4
gpt4 key购买 nike

我正在尝试使用 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, w, l);
}
}

它找到窗口并将它带到前面。但鼠标点击不起作用。发送 WM_CLOSE 也有效。鼠标点击有什么问题?在计算器和记事本上测试。坐标是相对于窗口的。

最佳答案

只是一个疯狂的猜测:点击事件不应该传递给主窗口,而是传递给目标按钮对象本身。在给定的坐标上,按钮位于主窗口上方,当真正点击发生时“隐藏”它。

关于java - 用 JNA 鼠标点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9293626/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com