【问题标题】:Problems with java Robot. mouse click not workingjava机器人的问题。鼠标点击不起作用
【发布时间】:2011-11-10 12:19:20
【问题描述】:

我在使用 java 机器人时遇到问题, 我正在使用它为游戏制作像素机器人。 当我使用机器人点击时没有任何反应, 我听说人们无法单击某些应用程序存在更多问题。 但我找不到任何解决方案。 我还阅读了有关跟踪鼠标移动的信息。但这对我来说似乎很奇怪,因为按键也不起作用。 我尝试点击的游戏可能是 c++ 和 DirectX。 我 100% 确定我的代码有效,因为我可以用它移动桌面图标并做更多的事情。 那么,有没有办法解决这个问题?还是我需要使用其他语言? 谢谢!

杰罗恩。

【问题讨论】:

    标签: java awtrobot


    【解决方案1】:

    使用 Robot 时的典型错误是 Robot 需要 绝对 屏幕坐标。有时人们(包括我自己)会得到按钮相对于它的窗口的相对坐标,并尝试用机器人点击它。确保您能够找到您尝试点击的屏幕元素的绝对坐标。

    为了确保机器人工作找到一些桌面图标的坐标,例如在屏幕左上角附近放置一些图标,然后单击点 20x20。你会看到效果。

    很遗憾,您没有提供您的代码,所以我无法给您更好的答案。

    【讨论】:

    • 我用右上角的图标尝试了你给我的想法,我只是一个简单的点击和拖动 scipt,它对我来说很好......在玩游戏时,你可以只需选择屏幕,然后按 f1-9 键即可使用项目。当我选择屏幕并使用 awtrobot 时,它什么也没做。我还使用机器人制作了鼠标点击的屏幕截图,该屏幕截图与我尝试点击的位置相匹配,如果您愿意,我可以提供我的整个脚本?
    • 抱歉耽搁了。我现在没有可用的代码,但我过去使用过 Robot,它对我来说很好用。我真的不明白什么对你不起作用。可以做点击,吸毒鼠标,有什么不行的?
    • 我稍后会发布我的代码,我可以在普通桌面上使用机器人的所有选项,以及更多的东西,比如油漆,en chrome。但是有一个名为 flyff 的游戏(这是一个 c++ 和 directx 游戏),当我尝试单击或使用机器人按下时,它就不起作用了。而且我不知道游戏是否有办法阻止java机器人。或者它是用java编写的并且游戏是c ++。现在我的问题是:如果游戏有办法检测机器人,我该怎么做才能检测不到它。如果 c++ 上的 java 代码有问题,我该如何解决?
    • 也很抱歉我的回复晚了
    【解决方案2】:

    试试这个

     public class Main {
    
        private Robot robot = new Robot();
    
        public Main() throws AWTException, IOException {
            robotMouseClick(600, 600);
    }
    
        private void robotMouseClick(int x, int y) {
            robot.mouseMove(x, y);
            robot.mousePress(InputEvent.BUTTON1_MASK);
            robot.mouseRelease(InputEvent.BUTTON1_MASK);
        }
    
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) throws AWTException, IOException {
            new Main();
    
    
          }
    }
    

    这对我有用

    就机器人而言,你真的不能对 JVM 之外的任何进程做任何特别的事情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多