0

Robot クラスを使用する場合、次の意味は何ですか:

robot.keyRelease(KeyEvent.VK_CONTROL);

以下のコードは、イベントを送信するのに十分ではありませんか?

Robot robot = new Robot();
robot.keyPress(KeyEvent.VK_CONTROL);
4

2 に答える 2

1

keyPressキーが押されたというイベントを送信します。 keyReleaseキーが解放されたというイベントを送信します。タイピングをシミュレートする場合は、次のようなことを行うことができます。

public class SuperRobot extends Robot {
    public void typeKey(int keyCode) {
        keyPress(keyCode);
        delay(20);
        keyRelease(keyCode);
    }
}

public static void main(String[] args) {
    try {
        SuperRobot r = new SuperRobot();
        // Now, let's press Ctrl+A
        r.keyPress(KeyEvent.VK_CONTROL);
        r.typeKey(KeyEvent.VK_A);
        r.keyRelease(KeyEvent.VK_CONTROL);
    } catch (Exception ex) { // Either AWTException or SecurityException
        System.out.println("Oh no!");
    }
}

Ctrl + Aのようにマスクを使用して何かを入力するには、最初にCtrlを押し、次にAを押して放すシミュレーションを行い、次にCtrlを放します。原則として、ロボットは、ユーザーとしてのあなたが行うことを多かれ少なかれ正確にシミュレートする必要があります。

于 2011-09-06T06:57:46.187 に答える