我正在开发远程应用程序。(鼠标 - 键盘)我只是快速展示我的问题......
它适用于'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)
这是一个错误吗?我怎么能按'@'char?也是这样,我不能这样做; $,#,? ,[,],{,},',* ...
答案 0 :(得分:1)
我知道这已经很老了,但是没有人给出正确的答案,在练习后我找到了解决方法。
那是我的键盘:
,如果要按@或#,则必须这样做:
bot.keyPress(VK_CONTROL);
bot.keyPress(VK_ALT);
bot.keyPress(VK_3);
bot.keyRelease(VK_CONTROL);
bot.keyRelease(VK_ALT);
bot.keyRelease(VK_3);
答案 1 :(得分:1)
您需要这个:
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_ALT);
robot.keyPress(KeyEvent.VK_Q);
robot.keyRelease(KeyEvent.VK_ALT);
robot.keyRelease(KeyEvent.VK_CONTROL);