import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class sample
{
public static void main(String args[]) throws AWTException {
Robot robot = new Robot();
WindowElement StopTime = handler.findElementByAutomationID(Timer, "2049");
handler.click(StopTime);
handler.setfocus(StopTime);
int StopTimeMinute = Minute + 8 ;
String val = "";
val = String.valueOf(StopTimeMinute);
sendkeys(val);
}
public static void sendkeys(String text)
{
try {
Robot robot = new Robot();
String val = text.toUpperCase();
for(int i=0;i<val.length();i++) {
robot.keyPress(Character.getNumericValue(val.charAt(i)));
}
} catch(java.awt.AWTException exc) {
System.out.println("error");
}
}
}
在上面的代码中,如果我尝试将变量发送到机器人键事件方法,则会发现源未找到错误。 =&GT; 89. Java机器人无法按键。谁能告诉我如何将变量传递给Robot.KeyPress(代码)?
以下代码中有什么问题? Robot.KeyPress(VK_SHIFT)工作正常,但Robot.KeyPress(代码)抛出以下错误。
WRobotPeer.keypress int(line) : not available [native method]
Source not found.
我甚至尝试将整数作为参数发送同样的问题。
public static void StopMinute(int StopMinute) throws AWTException{
Robot robot = new Robot();
robot.delay(20);
robot.keyPress(StopMinute);
robot.keyRelease(StopMinute);
}
任何人都可以建议我这个。 Robot.KeyPress(代码)
答案 0 :(得分:1)
Character上的方法getNumericValue()返回该字符的Unicode代码点。例如Character.getNumericValue('A')
返回10,而KeyEvent.VK_A
返回ascii值65.后一个值用于AWT机器人,而不是第一个。
而不是val.length()
之上,而是val.toCharArray()
而不是迭代。然后将(int)charArray[i]
传递给机器人keyPress。