Java=>;缩短机器人的指令
嘿,使用下面的代码片段:Java=>;缩短机器人的指令,java,input,automation,awtrobot,Java,Input,Automation,Awtrobot,嘿,使用下面的代码片段: try { Robot robot = new Robot(); robot.keyPress(KeyEvent.VK_H); robot.keyRelease(KeyEvent.VK_H); robot.keyPress(KeyEvent.VK_A); robot.keyRelease(KeyEvent.VK_A); robot.keyPress(KeyEvent.VK_L); r
try {
Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_H);
robot.keyRelease(KeyEvent.VK_H);
robot.keyPress(KeyEvent.VK_A);
robot.keyRelease(KeyEvent.VK_A);
robot.keyPress(KeyEvent.VK_L);
robot.keyRelease(KeyEvent.VK_L);
robot.keyPress(KeyEvent.VK_L);
robot.keyRelease(KeyEvent.VK_L);
robot.keyPress(KeyEvent.VK_O);
robot.keyRelease(KeyEvent.VK_O);
} catch (AWTException e) {
e.printStackTrace();
}
我得到这个结果:
hallo
但有没有办法缩短这一过程?e、 g.类似于:
try {
Robot robot = new Robot();
String word = "hallo";
// something like:
robot.keyPress(KeyEvent.word);
} catch (AWTException e) {
e.printStackTrace();
}
我知道这个例子不起作用,但我找不到任何关于这个的文档
你有什么想法吗?问候和感谢如果您使用的是Java 7,那么您可以使用该方法从字符中获取密钥代码:
import java.awt.event.KeyEvent;
[...]
public static void type(Robot robot, String word) {
for (int i = 0; i < word.length(); i++) {
int keyCode = KeyEvent.getExtendedKeyCodeForChar(word.charAt(i));
robot.keyPress(keyCode);
robot.keyRelease(keyCode);
}
}
[...]
Robot robot = new Robot();
type(robot, "hallo");
import java.awt.event.KeyEvent;
[...]
公共静态无效类型(机器人、字符串字){
for(int i=0;i
制作一个这样的方法。只需使用获取字符的方法
public void press(String s, Robot r)
{
for (char ch : s.toCharArray())
{
if (Character.isUpperCase(ch))
r.keyPress(KeyEvent.VK_SHIFT);
r.keyPress(Character.toUpperCase(ch));
r.keyRelease(Character.toUpperCase(ch));
}
}
或者你可以用这个来获取钥匙码
KeyStroke.getKeyStroke(ch, 0).getKeyCode();
或者也
KeyEvent.getExtendedKeyCodeForChar(ch);
希望这有帮助。您可以创建一个方法,该方法接受字符输入,计算出传递的字母,然后键入给定的字符。这将是更多的代码比这,但它将少硬编码。请参见示例。您的问题的答案为[此处][1]。[1] :方法已提供。您忘记了释放班次key@user902383按下任何其他键后,Shift将自动释放。要为“KeyEvent.getExtendedKeyCodeForChar(ch);”导入什么?@user3297073您需要使用Java 1.7 JDK才能正常工作。否则,使用上述方法,它们甚至可以与1.6ok thx一起工作,但是我必须为“getExtendedKeyCodeForChar”导入什么,否则该方法对于类型keyevent:/?
import java.awt.event.keyevent
就足够了:getExtendedKeyCodeForChar
是类keyevent
中的静态方法。如果您遇到“method is not defined”(方法未定义)错误,那么我猜您使用的是Java 6或更早版本,您应该使用另一个答案。因此,我应该使用Java 7 yea?如果您可以,那么请务必升级到我安装的Java 7.yea,但我无法从我的项目中更改“执行环境”(最新版本仍然是“Java Se 6”),您知道为什么吗?(使用eclipse)