0

所以。我有一个小问题。最有可能是因为我对 java 很陌生。无论如何,我的问题是:为什么这不起作用?

public static void pressKey(KeyEvent key) throws AWTException {
    Robot r = new Robot();
    r.keyPress(KeyEvent.key);
    r.keyRelease(KeyEvent.key);
}

我怎样才能让这样的事情起作用?这会让我的生活轻松很多。提前谢谢

4

3 回答 3

1

没有调用公共静态字段keyKeyEvent这就是为什么

//just pass they argument to your method as argument to those methods
r.keyPress(key);
r.keyRelease(key);
于 2012-11-04T22:47:20.987 回答
1

你必须使用

 public static void pressKey(int key) throws AWTException {
    Robot r = new Robot();
    r.keyPress(key);
    r.keyRelease(key);
}

让它工作

于 2012-11-04T22:47:38.770 回答
0

该“关键”变量是一个整数。KeyEvent 只是一种易于记忆的使用方式,但两者都是整数

这意味着该方法使用integer,而不是KeyEvent

假设我们有以下方法:

public static void press(int event) throws AWTException {
    Robot bot = new Robot();
    bot.keyPress(event);
    bot.keyRelease(event);
}

它可以通过两种方式调用:KeyEvent 和整数。都一样(不要忘记添加“抛出”语句或“尝试/捕获”):

press(KeyEvent.VK_SLASH);

或者:

press(46);

如果我是对的,两者都会发送一个斜线(如果我错了,请纠正我)。但是 KeyEvents 更容易。

另外,请记住,并非所有键盘都具有相同的布局。根据密钥的不同,将发送完全不同的密钥,或者更糟糕的是,机器人会抛出 IllegalArgumentException。我建议您对不是字母/数字的字符使用 Alt 代码。

于 2012-12-22T03:20:49.570 回答