我一直在玩 java 中的自动化,因为它是跨平台的,有点试图为 linux 创建一个 autoit 替代方案。无论如何,我的这个脚本工作得很好,但我只想能够用热键切换一个动作。
我已经看过键绑定的文档(http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html),但要么它不是我想要的,要么我误解了文档,在这种情况下,请原谅我并指出正确的方向。
我的问题是我没有运行 GUI,我有一个 java 程序每 3 秒将鼠标移动到一个新的随机位置。这是我的代码:
public static void main(String[] args) {
int[] screen = ScreenGetDim(); //get screen dimentions
while (1==1) {
int[] coordinates = new int[2]; //create an array for X and Y screen coordinates
coordinates[0] = IntGetRandom( 0, screen[0] ); //get random X coordinate on screen
coordinates[1] = IntGetRandom( 0, screen[1] ); //get random Y coordinate on screen
MouseMove(coordinates[0], coordinates[1]); //move the mouse to screen coordinates
Sleep(3000); //wait 3 seconds
}
}
该脚本的工作方式与应有的一样(ScreenGetDim()、IntGetRandom()、MouseMove()和Sleep()都是可以完美运行的函数,并且我已在代码的其他位置进行了定义)。
我的目标是能够创建一个热键,当我在程序运行期间的任何时候按下它时,它可以做一些事情。
例如,如果我可以将 F11 设置为System.out.println("You pressed F11");
每次按下时都会执行的热键,那就太好了。例如,在 AutoIt 中,您只需创建一个可以执行您想做的任何事情的函数,我们称之为Action(),然后您只需按 F11HotKeySet("{F11}", "Action")
即可让Action()运行。我正在寻找一个 Java 等价物。
感谢您的帮助!