关键事件不派发
Key event doesn't dispatch
我正在尝试使用 Java 制作自动点击器(带有激活快捷方式),但自动点击器切换快捷方式不起作用。
我的代码:
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher((e) -> {
System.out.println(121212); // doesn't work
if(e.getID() == KeyEvent.KEY_PRESSED && e.getKeyCode() == 74) {
active = !active;
new Thread(() -> {
while(active) {
try {
int pre = (1000 / cps + jitterRandomValue / 2) / 3;
bot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
TimeUnit.MILLISECONDS.sleep(pre + jitterRandom.nextInt(jitterRandomValue));
bot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
TimeUnit.MILLISECONDS.sleep(pre * 2 + jitterRandom.nextInt(jitterRandomValue));
} catch(Throwable ex) {
ex.printStackTrace();
}
}
}).start();
return true;
}
return false;
});
我的算法按住鼠标按钮的 1/3 "clicktime"。
键码 74 是 j 键(或者不是?)。
编辑: 我想我必须找到一个键盘管理器,它可以在不关注我的应用程序的情况下工作。如果没有,也许我可以使用 GLFW(带有本机界面)?
好的。现在我正在使用 com.github.tulskiy:jkeymaster:1.2 并且我的全局快捷方式工作正常。我想问题已经解决了。
我正在尝试使用 Java 制作自动点击器(带有激活快捷方式),但自动点击器切换快捷方式不起作用。
我的代码:
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher((e) -> {
System.out.println(121212); // doesn't work
if(e.getID() == KeyEvent.KEY_PRESSED && e.getKeyCode() == 74) {
active = !active;
new Thread(() -> {
while(active) {
try {
int pre = (1000 / cps + jitterRandomValue / 2) / 3;
bot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
TimeUnit.MILLISECONDS.sleep(pre + jitterRandom.nextInt(jitterRandomValue));
bot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
TimeUnit.MILLISECONDS.sleep(pre * 2 + jitterRandom.nextInt(jitterRandomValue));
} catch(Throwable ex) {
ex.printStackTrace();
}
}
}).start();
return true;
}
return false;
});
我的算法按住鼠标按钮的 1/3 "clicktime"。 键码 74 是 j 键(或者不是?)。
编辑: 我想我必须找到一个键盘管理器,它可以在不关注我的应用程序的情况下工作。如果没有,也许我可以使用 GLFW(带有本机界面)?
好的。现在我正在使用 com.github.tulskiy:jkeymaster:1.2 并且我的全局快捷方式工作正常。我想问题已经解决了。