使用变量的 Java 机器人类 [英] Java Robot Class Using Variables
问题描述
我有一个非常简单的问题,或者至少我认为它很简单.目前我正在尝试使用带有变量的机器人类.我的意思是以下(变量pass"是字符.)
I have a very simple question, or at least I think it is simple. Currently I'm trying to use the robot class with variables. What I mean by this is the following (the variables "pass" are chars.)
pass1 = 0;
pass2 = 0;
pass3 = 0;
pass4 = 0;
try{
Robot robot = new Robot();
robot.delay(2000);
robot.mouseMove(1318, 322);
robot.keyPress(pass1);
robot.keyPress(pass2);
robot.keyPress(pass3);
robot.keyPress(pass4);
} catch (AWTException e) {e.printStackTrace();}
当我运行程序时,出现此错误(请记住,只有在其中包含pass1、pass2...等"的代码部分时才会出现此错误.):
When I run the program, I get this error (keep in mind I only get this error when the portion of the code with "pass1, pass2...etc." is in it.):
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Invalid key code
at java.awt.Robot.checkKeycodeArgument(Unknown Source)
at java.awt.Robot.keyPress(Unknown Source)
at Cracker$2.mouseReleased(Cracker.java:117)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
推荐答案
Robot#keyPress
需要一个 int
,它表示 java.awt.KeyEvent
具体来说,key 0
代表 KeyEvent.VK_UNDEFINED
这是一个无效的键码"
Specifically, key 0
represents KeyEvent.VK_UNDEFINED
which is an "invalid key code"
不要忘记,在调用keyRelease
之前,按键会一直被按下,产生重复按键事件...
Don't forget that until you call keyRelease
, the keys will continue to be pressed, generating repeated key pressed events...
这篇关于使用变量的 Java 机器人类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!