我正在尝试用Java创建一个应用程序,你可以从远处控制某些键盘,但我遇到了一个问题。我认为这样的事情是可能的:
//the message is the key input
String[] parts = message.split("-");
String KeyPressed = parts[1];//This is the key that's pressed(for example K)
try {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_(KeyPressed));
} catch (AWTException e1) {
}
但这不起作用。我知道这个有用,但你必须为键盘上的每一个键重复它:
//the message is the key input
String[] parts = message.split("-");
String KeyPressed = parts[1];
if(KeyPressed.equals("H")){
try {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_H);
} catch (AWTException e1) {
}
}
现在我的问题是,在几行中执行所有键的代码是什么,而不是为键盘上的每个键执行上面的代码?
答案 0 :(得分:0)
您要做的是实现KeyListener以接收所有密钥 这是事件和一些例子: KeyListener
答案 1 :(得分:0)
这适用于字母A到Z:
robot.keyPress(KeyPressed);
但是你必须使用别的东西来代替一些非字母键。
问题是您接收字符作为输入,但发送键码作为输出。这是一个不寻常的翻译。如果你能以某种方式接收密码并直接发送它会更容易......请参阅Goran的回答!
另外,你甚至如何将Scroll Lock这样的键表示为角色?!
答案 2 :(得分:0)
尝试使用KeyStroke
获取String
的密钥代码,如下所示:
KeyStroke keyStroke = KeyStroke.getKeyStroke("H");
try {
Robot robot = new Robot();
robot.keyPress(keyStroke.getKeyCode());
} catch (AWTException e) {
e.printStackTrace();
}