首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java机器人MousePress()不在上工作

Java机器人MousePress()不在上工作
EN

Stack Overflow用户
提问于 2016-07-24 10:40:38
回答 1查看 1K关注 0票数 1

问题:

Java的MousePress()在99%的时间内运行良好,但是它不能在Windows8.1或10的任务管理器上工作(我还没有测试7或更低版本)。

事实上,当选中Task窗口时,即使是MouseMove()也会失败。

复制的

  1. 使用下面的代码,运行它一次,以确保代码工作。
  2. 打开任务管理器(CTRL+Shift+Escape),运行代码,然后快速选择Task窗口。代码将完成执行,但鼠标位置不会改变。

代码:

代码语言:javascript
复制
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.MouseEvent;

public class RobotMousePressTest {

    public static void main(String[] args) throws AWTException, InterruptedException {
        System.out.println("Started. Waiting for sleep to finish.");
        Robot r = new Robot();
        Thread.sleep(3000);
        r.mouseMove(4, 4);
        r.mousePress(MouseEvent.getMaskForButton(MouseEvent.BUTTON1));
        System.out.println("Click!");
    }
}

问题:

  1. 有没有人知道是否有办法让它起作用?
  2. 有其他库可以用于MousePress()和MouseMove()吗?
  3. 为了让它正常工作,我会被迫使用本机代码(JNI)吗?
EN

回答 1

Stack Overflow用户

发布于 2016-07-24 12:23:08

在做了更多的挖掘和测试之后,我发现这与Windows的管理员用户有关。任何不具有管理员权限的应用程序都不能与具有管理员权限的应用程序交互。如果我以管理员身份运行应用程序,即使选中了任务管理器,代码也会正确执行。

到目前为止,我还没有找到其他可行的办法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38551138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档