我必须定期处理专有的Windows应用程序。任务总是相同的(打开程序,单击点1,单击点2,单击3 ... 5)然后等待一个对话框,其中显示"完成。"之后,必须再次关闭应用程序,重新打开以再次启动任务。洗涤,冲洗,重复。
我尝试使用鼠标点击应用程序,但他们无法做得太好。特别是,知道应用程序何时完成,如果发生差事点击则不够智能。无论如何,我想创建自己的应用程序来控制这个。是否有一种特别擅长控制其他专有应用程序的编程语言?
答案 0 :(得分:0)
Java有Robot类。请参阅下面的示例用法。
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
public class Main {
private static final TimeUnit DAYS = TimeUnit.DAYS;
private final ScheduledExecutorService scheduler =
Executors.newScheduledThreadPool(1);
public void doAutomation() {
final Runnable auto = new Runnable() {
public void run() {
try {
Robot robot = new Robot();
robot.delay(1000);// Delay 1 second. (1000ms)
robot.keyPress(KeyEvent.VK_SPACE);
robot.mouseMove(0, 0);//Move mouse to 0,0 (Top left corner)(x,y)
robot.delay(15);//Delay 15 ms
robot.mousePress(MouseEvent.BUTTON1);
} catch (AWTException e) {
e.printStackTrace();
}
}
};
final ScheduledFuture<?> autoHandler =
scheduler.scheduleAtFixedRate(auto, 0, 1, DAYS);//Perform task once per day.
}
public static final void main(String[] data) {
Main m = new Main();
m.doAutomation();
}
}