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");
}
}
}
在上面的代码中,如果我尝试将变量发送到机械手按键事件方法,则会出现找不到源的错误。 => 89. Java机械手无法按键。谁能告诉我如何将变量传递给Robot.KeyPress(code)?
下面的代码有什么问题?
Robot.KeyPress(VK_SHIFT)工作正常,但是Robot.KeyPress(code)抛出以下错误。
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(代码)
最佳答案
Character上的方法getNumericValue()返回该字符的Unicode代码点。例如,Character.getNumericValue('A')
返回10,而KeyEvent.VK_A
返回ascii值65。后一个值用于AWT机械手,而不是第一个。
而不是遍历val.length()
,而是执行val.toCharArray()
并对其进行遍历。然后将(int)charArray[i]
传递给robot keyPress。
关于java - Java Robot类的一些问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28213290/