java - Robot.keyPress 不适用于 VK_ALT_GRAPH(无效的键代码)

标签 java keypress keyevent awtrobot

我正在开发一个远程应用程序。(鼠标 - 键盘)我只是快速显示我的问题...

它适用于“A”或一些基本字符。

    case "a":
    robot.keyPress(KeyEvent.VK_A);

但是我没有制作“@”字符。我的方法是这样的。

 case "@":
 robot.keyPress(KeyEvent.VK_ALT_GRAPH);
 robot.keyPress(KeyEvent.VK_Q);
 robot.keyRelease(KeyEvent.VK_ALT_GRAPH);

我在使用 VK_ALT_GRAPH 时看到异常;

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Invalid key code
at sun.awt.windows.WRobotPeer.keyPress(Native Method)
at java.awt.Robot.keyPress(Unknown Source)

这是一个错误吗?如何按“@”字符?也是这样,这些我都做不到; $、#、? , [ , ] , {, } , ' , * ...

最佳答案

我知道这已经很老了,但没有人给出正确的答案,经过练习后我采用了解决方案。

那是我的键盘:

enter image description here

对于按@或#,你必须这样做:

            bot.keyPress(VK_CONTROL);
            bot.keyPress(VK_ALT);
            bot.keyPress(VK_3);

            bot.keyRelease(VK_CONTROL);
            bot.keyRelease(VK_ALT);
            bot.keyRelease(VK_3);

关于java - Robot.keyPress 不适用于 VK_ALT_GRAPH(无效的键代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22919591/

相关文章:

java - 从未初始化的持久集合中获取 ID

java - 如何重置计时器从 00 :00:00 each time i run my program over again? 开始

c# - 组合框下拉列表和按键

python - 更改事件键上的光标形状

java - 使用键盘移动图像 - Java

java - 我想在textView(实时)中显示线程的计时器

javascript - 浏览器监听多个按键按下js

javascript - 如果事件没有发生,替代操作 javascript/jquery

android - 如何在android上捕获KeyEvents?

java - 如何让 JNA 从一个 jar 文件中提取多个 DLL 文件?