2014-02-22 4 views
0

Java 로봇을 사용하여 일정 시간 동안 키를 누르고 싶습니다. 다른 유사한 스레드를 읽었지만 아무 것도 작동하지 않습니다. 키를 반복해서 누르면 키가 해제되지 않습니다. 여기 자바 로봇이 키를 누르고있는 방법?

지금까지 (그것은 단지 한 번 키를 누르면 이후가 작동하지 않습니다) 내 코드입니다 :

new Thread(new Runnable() { 
     public void run() { 
      final int keyP = 0; //the key to press 

          final int duration = 2000 //2 seconds 
          Robot r = null; 
          try { 
           r = new Robot(); 
          } catch (AWTException e1) { 
                 e1.printStackTrace(); 
          } 
          r.keyPress(keyP); 
          r.delay(duration); //Thread.sleep does the same thing 
          r.keyRelease(keyP); 

          } 
       }).start(); 
+0

기본적으로 무슨 일을하면 키를 누른 것과 동일 키보드를 아래로 내립니다. 초기 지연이 있으며 키가 해제 될 때까지 키가 반복됩니다. 당신이하려는 일에 대해 더 잘 설명해 주시겠습니까 ...? – MadProgrammer

답변

0

시도 :

boolean keepPressing=true; 
long startTime = System.currentTimeMillis(); 
long endTime=null; 
long totalTime=null; 

while(keepPressing){ 
    r.keyPress(keyP); 
    endTime=System.currentTimeMillis(); 
    totalTime = endTime - startTime; 
    if(totalTime>1999) { 
     keepPressing=false; 
     r.keyRelease(keyP); 
    } 
} 
+0

빠른 답장을 보내 주셔서 감사합니다. 그러나 웬일인지, 원하는 것보다 더 많은 글자가 입력됩니다. –

+0

'keyP '가 하나의 키로 정의되지 않았습니까? 왜 다른 편지를 입력 해야할지 이해가 안되니? – ltalhouarne

+0

키패드를 여러 번 눌러야한다는 뜻입니다. –

관련 문제