寻找一种编程语言来自动化另一个 Windows 应用程序
Looking for a programming language to automate another Windows application
我必须定期处理专有 Windows 应用程序。任务始终相同(打开程序,单击点 1,单击点 2,单击 3...5),然后等待显示 "Done." 的对话框,之后,必须再次关闭应用程序,重新打开重新开始任务。清洗、冲洗、重复。
我试过使用鼠标点击器应用程序,但它们不能,它们工作得不太好。特别是,知道应用程序何时完成并且如果发生差事点击就不够聪明。无论如何,我想创建自己的应用程序来控制这个。是否有一种编程语言特别擅长控制其他专有应用程序?
Java 有机器人 class。请参阅下面的示例用法。
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();
}
}
我必须定期处理专有 Windows 应用程序。任务始终相同(打开程序,单击点 1,单击点 2,单击 3...5),然后等待显示 "Done." 的对话框,之后,必须再次关闭应用程序,重新打开重新开始任务。清洗、冲洗、重复。
我试过使用鼠标点击器应用程序,但它们不能,它们工作得不太好。特别是,知道应用程序何时完成并且如果发生差事点击就不够聪明。无论如何,我想创建自己的应用程序来控制这个。是否有一种编程语言特别擅长控制其他专有应用程序?
Java 有机器人 class。请参阅下面的示例用法。
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();
}
}