Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java机器人无法控制整个键盘_Java_Keyboard_Automation - Fatal编程技术网

Java机器人无法控制整个键盘

Java机器人无法控制整个键盘,java,keyboard,automation,Java,Keyboard,Automation,我试图制作一种键盘控制器类,但java机器人似乎无法控制整个键盘 我试过了 robot.keyPress(i); Thread.currentThread().sleep(50); robot.keyRelease(i); 从0到255,此键从未按下(此键出现在所有azerty键盘上) 知道为什么吗? 谢谢 Ps:使用此键不需要按CTRL或ALT键,它会产生这样的结果:“²”您可以尝试创建一个新窗口,让它捕获并打印出所按下键的键代码。然后运行它并按相关键。然后,它应该为它打印KeyCode:

我试图制作一种键盘控制器类,但java机器人似乎无法控制整个键盘

我试过了

robot.keyPress(i);
Thread.currentThread().sleep(50);
robot.keyRelease(i);
从0到255,此键从未按下(此键出现在所有azerty键盘上)

知道为什么吗? 谢谢


Ps:使用此键不需要按CTRL或ALT键,它会产生这样的结果:“²”

您可以尝试创建一个新窗口,让它捕获并打印出所按下键的键代码。然后运行它并按相关键。然后,它应该为它打印
KeyCode

public static void main(String[] args) {
    JFrame frame= new JFrame();
    frame.addKeyListener(new KeyAdapter() {

        @Override
        public void keyPressed(KeyEvent e) {
            System.out.println(e.getExtendedKeyCode());
        }            
    });
    frame.setBounds(0, 0, 100, 50);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
}
使用虚拟键盘执行此操作给了我16777394


有关所有“键码”值的信息,请参见。

@vandale在每个键盘中,此键将具有此键码…?@crAlexander这取决于此键的含义:它们在该物理位置的值将根据布局而变化。但是,具有该值的键应该具有一致的keycode,而不考虑位置(尽管有numpad键)@vandale,例如,如果我有代码(134)并且我说if(keycode==134)如果存在VK_DEAD_overdot,它会找到该按钮,或者该键码可能来自另一个按钮?@crAlexander它可能来自用户希望被视为VK_DEAD_overdot的任何按钮。如果用户愿意,可以将键盘上的每个键都设置为“a”。鼠标甚至可以创建键盘事件。因此,是的,假设键存在,但不要假设它在键盘上的物理位置