質問

私のシミュレーションを作用を持つキーボードのキーを下に短期間でJava.私は期待される結果は次のように、キーを5秒間でのみプレスで一(生シングル"a"を試験する場合そのメモ帳).うすれば使う場合、またはんだを使用awt.ロボットのクラスの間違い。

Robot robot = null; 
robot = new Robot();
robot.keyPress(KeyEvent.VK_A);
Thread.sleep(5000);
robot.keyRelease(KeyEvent.VK_A);
役に立ちましたか?

解決

Thread.sleep()が停止し、現在のスレッドのスレッドは、鍵から。

ついにキーとマウスの指定された時間のなかにはすでに平行ねじになります。

ここで提案するのねじになります。sleep()を発行(使用のコマンドパターンとして購入することができます他のコマンドとスワップ出ます):

public class Main {

public static void main(String[] args) throws InterruptedException {
    final RobotCommand pressAKeyCommand = new PressAKeyCommand();
    Thread t = new Thread(new Runnable() {

        public void run() {
            pressAKeyCommand.execute();
        }
    });
    t.start();
    Thread.sleep(5000);
    pressAKeyCommand.stop();

  }
}

class PressAKeyCommand implements RobotCommand {

private volatile boolean isContinue = true;

public void execute() {
    try {
        Robot robot = new Robot();
        while (isContinue) {
            robot.keyPress(KeyEvent.VK_A);
        }
        robot.keyRelease(KeyEvent.VK_A);
    } catch (AWTException ex) {
        // Do something with Exception
    }
}

  public void stop() {
     isContinue = false;
  }
}

interface RobotCommand {

  void execute();

  void stop();
}

他のヒント

で押しつづけてください?

import java.awt.Robot;
import java.awt.event.KeyEvent;

public class PressAndHold { 
    public static void main( String [] args ) throws Exception { 
        Robot robot = new Robot();
        for( int i = 0 ; i < 10; i++ ) {
            robot.keyPress( KeyEvent.VK_A );
        }
    }
}

私の答えによるエドワードさせて頂きます!!

ありませんkeyDownイベントにjava.lang.ロボットが行います。やってみると自分のコンピュータテストをlinuxコンソールの代わりにメモ帳)たところ、うまくいったので、文字列のです。のではないでしょうかは問題とメモ帳?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top