我想实现从这个答案中获取的代码并模拟点击而不模拟非java应用程序窗口内的鼠标移动。我知道JNA理论上应该具有所有 WinAPI 功能。最新的 JNA 版本是 5.6.0 但我没有找到类似于MAKELPARAM的东西。
POINT pt;
pt.x = 30; // This is your click coordinates
pt.y = 30;
HWND hWnd = WindowFromPoint(pt);
LPARAM lParam = MAKELPARAM(pt.x, pt.y);
PostMessage(hWnd, WM_RBUTTONDOWN, MK_RBUTTON, lParam);
PostMessage(hWnd, WM_RBUTTONUP, MK_RBUTTON, lParam);
有谁知道Java或JNA中是否有类似的东西?
请不要推荐 Java Robot。我已经尝试过了,但不幸的是,鼠标光标从起始位置移动(消失)大约一毫秒到您需要单击的点并返回到起始位置。
public void performClick(int x, int y) {
Point origLoc = MouseInfo.getPointerInfo().getLocation();
robot.mouseMove(x, y);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.mouseMove(origLoc.x, origLoc.y);
}