をシミュレーションキーが押さJava
質問
私のシミュレーションを作用を持つキーボードのキーを下に短期間で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コンソールの代わりにメモ帳)たところ、うまくいったので、文字列のです。のではないでしょうかは問題とメモ帳?
所属していません StackOverflow