2011-11-10 157 views
4

我遇到了java机器人问题, 我正在用它来制作一款游戏的像素机器人。 当我使用机器人来点击没有任何反应, 我听说有更多的问题,人们无法点击某些应用程序。 但我找不到任何解决方案。 我也读过关于跟踪鼠标移动的内容。但对我来说这似乎很奇怪,因为按键也不起作用。 我尝试点击的游戏可能是C++和DirectX。 林100%肯定我的代码工作,因为我可以移动deskopt图标,并做更多的东西。 那么,有什么方法可以解决这个问题吗?还是我需要使用其他语言? 谢谢!java机器人的问题。鼠标点击不起作用

jeroen。

回答

1

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

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

不幸的是,您还没有提供您的代码,所以我不能给你更好的答案。

+0

我尝试了你给我的图标在顶部角落的想法,我只是一个简单的点击和拖动scipt, 而且它适用于我... 也玩游戏时,你可以拥有选择屏幕,然后按f1-9键以使用项目。当我选择屏幕并使用awtrobot时,它不会执行任何操作。我还使用机器人制作了鼠标点击的屏幕截图,并且截图与我尝试点击的位置相匹配,如果您喜欢,我可以提供我的整个屏幕截图。 – jeroen

+0

对不起。我现在没有可用的代码,但我过去使用过Robot,它对我来说工作得很好。我真的不明白什么不适合你。你可以做点击,药物老鼠,所以什么都行不通? – AlexR

+0

我以后会发布我的代码,我可以在普通桌面上使用机器人的所有选项,还有一些其他的东西,例如paint,en chrome。但有1场比赛,名为flyff(这是一个C++和DirectX游戏),当我尝试点击或使用机器人按下它只是不工作。而且我不知道游戏是否有办法阻止java机器人。或者它是用java编写的,游戏是C++。现在我的问题是:如果游戏有办法检测机器人,我该怎么做才能检测到它。如果这是在C++上的Java代码的问题,我该如何解决这个问题? – jeroen

0

试试这个

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以外的任何进程。