Java Robot类的一些问题

时间:2015-01-29 11:13:36

标签: java awtrobot

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(代码)

1 个答案:

答案 0 :(得分:1)

Character上的方法getNumericValue()返回该字符的Unicode代码点。例如Character.getNumericValue('A')返回10,而KeyEvent.VK_A返回ascii值65.后一个值用于AWT机器人,而不是第一个。

而不是val.length()之上,而是val.toCharArray()而不是迭代。然后将(int)charArray[i]传递给机器人keyPress。