如何在Java中为应用程序操作某些窗口

时间:2016-03-14 08:03:57

标签: java windows automation awtrobot

基本上我正在为Java游戏编写一个程序来为某些任务进行自动化。我不确定如何根据自己的喜好推出某些东西。

大多数任务都是点击某些区域并输入文字。我知道大部分可以用java.awt.Robot ..

完成

然而,我的问题是两件事。

1)如何在不使用鼠标和键盘的情况下在所述游戏窗口中执行这些任务。这样我就可以在程序执行自动化时最小化或放置游戏。如果有帮助的话,这个游戏就是一个java应用程序。

2)我正在使用Opencv进行图像识别,通过分析窗口的一小块区域来查看某个任务是否完成。有没有办法用java.awt.Robot指定屏幕的哪个部分我想拍照?

1 个答案:

答案 0 :(得分:0)

通过使用java.awt.Robot类,您可以执行诸如移动鼠标,按键盘键和屏幕截图等操作,而无法执行后台任务。

public class TestRobot {

Robot ro;
Image img;

public TestRobot(){

    ro.mouseMove(100, 200); // move mouse to specific point

    ro.mousePress(InputEvent.BUTTON1_MASK ); //mouse click
    ro.mouseRelease(InputEvent.BUTTON1_MASK ); // mouse release

    ro.keyPress(KeyEvent.VK_F1); //press F1
    ro.keyRelease(KeyEvent.VK_F1); //release F1

    img = ro.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize())); // take screen shot 
    }
}