我正在尝试在我正在处理的应用程序上设置后门程序。
我想在用户按下“CTRL + ALT + F12”时加载一个新窗口。这是我到目前为止尝试过的,虽然它非常糟糕。
//packages
import java.awt.EventQueue;
import java.awt.KeyEventDispatcher;
import java.awt.KeyboardFocusManager;
//...
private void setupBackPass(){
HashMap<KeyStroke, Action> actionMap = new HashMap<KeyStroke, Action>();
KeyStroke key1 = KeyStroke.getKeyStroke(KeyEvent.ALT, KeyEvent.CTRL_DOWN_MASK);
actionMap.put(key1, new AbstractAction("action1") {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Ctrl-ALT pressed: " +e);
}
});
KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager();
kfm.addKeyEventDispatcher(new KeyEventDispatcher() {
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
KeyStroke keyStroke = KeyStroke.getKeyStrokeForEvent(e);
if(actionMap.containsKey(keyStroke)){
final Action a = actionMap.get(keyStroke);
final ActionEvent ae = new ActionEvent(e.getSource(), e.getID(), null);
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
}
});
return false;
}
});
});
}
我不知道该怎么做但我希望如果按下键,那么应该打开一个超级管理员窗口。
从您发布的代码中,看起来您使用的是Swing而不是JavaFX。它看起来像你正在尝试使用Key Bindings。如该链接中所述,您需要修改输入映射和操作映射。此外,您不使用现有的动作地图创建动作地图。同样,我在提供链接的页面中对此进行了解释。