【发布时间】:2018-02-05 02:15:06
【问题描述】:
我想使用一个简单的 java 机器人,当我单击 Ctrl+Q 时会键入一个文本。但即使我专注于另一个应用程序(例如游戏),也必须这样做。我的代码运行良好,但只有当我的 JFrame 处于焦点时才会运行。
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
Robot robot = null;
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
robot.mouseMove(350, 150);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.keyPress(KeyEvent.VK_T);
robot.keyRelease(KeyEvent.VK_T);
// Solution for different keyboard layouts (ALT values)
try {
alt(KeyEvent.VK_NUMPAD0, KeyEvent.VK_NUMPAD0, KeyEvent.VK_NUMPAD4, KeyEvent.VK_NUMPAD7);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
robot.keyPress(KeyEvent.VK_Q);
robot.keyRelease(KeyEvent.VK_Q);
}
【问题讨论】:
-
" 但是,即使我专注于另一个应用程序,也必须这样做" 听起来像是键盘记录器。为什么在其他应用程序中输入的文本应该是这个(你的)应用程序的任何业务?
-
@AndrewThompson 听起来更像是游戏助手。多年前,我编写了一个程序,使用
Robot发送击键来扭曲我在黑暗时代卡米洛特的圣骑士的圣歌。