[java]Robot类在一些程序窗口(如lol)中无法模拟点击的解决办法

如果程序或者游戏是通过管理员权限打开的,就无法模拟点击了。


这时你只要用管理员权限下运行你的java程序即可生效

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在一些程序窗口Robot 无法模拟点击的原因可能是由于窗口的安全性限制造成的。为了解决这个问题,你可以尝试使用 JNA(Java Native Access)库来解决。JNA 库可以帮助我们调用操作系统的原生函数,从而实现模拟鼠标点击等操作。 以下是使用 JNA 库模拟鼠标点击的示例代码: ```java import com.sun.jna.platform.win32.User32; import com.sun.jna.platform.win32.WinDef; public class MouseClick { public static void main(String[] args) { User32 user32 = User32.INSTANCE; int x = 100; // 点击位置的 x 坐标 int y = 100; // 点击位置的 y 坐标 WinDef.HWND hwnd = user32.FindWindow(null, "窗口标题"); // 窗口标题 user32.SetForegroundWindow(hwnd); // 将窗口置于最前 user32.PostMessage(hwnd, 0x201, null, Integer.valueOf(y << 16 | x)); // 模拟鼠标左键按下 user32.PostMessage(hwnd, 0x202, null, Integer.valueOf(y << 16 | x)); // 模拟鼠标左键抬起 } } ``` 上述代码使用了 JNA 库的 User32 ,其 FindWindow() 方法可以根据窗口标题查找窗口句柄,SetForegroundWindow() 方法可以将指定窗口置于最前,PostMessage() 方法则可以模拟鼠标点击等操作。需要注意的是,PostMessage() 方法的第一个参数是消息型,0x201 表示鼠标左键按下,0x202 表示鼠标左键抬起。 你可以根据实际情况修改示例代码窗口标题、点击位置坐标等参数,以实现模拟鼠标点击等操作。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值