2014-07-14 2 views
0

나는 멈추지 않고 브라우저의 버튼을 여러 번 클릭하는 스크립트로 가장 추측 할 수있는 것을 작성하려고합니다. java.awt.Robot 클래스를 사용하여 키 언론 광고 무한을 할 수 있지만 내가 가진 문제는 올바른 액티베이터/인터럽트를 코딩하는 것입니다. 나는 Java가 키보드 명령을 듣는 방법을 모르지만 (F3을 누르면 시작/중단하고 싶다), 청취자를 사용하지 않고 UI 구성 요소에 추가해야한다. 어떻게해야합니까? 현재 내가 가지고있는 것 :UI 구성 요소없이 Java의 키 누르기 듣기

public static void main(String[] args) throws Exception 
    { 
     final Robot robot = new Robot(); 
      robot.delay(10000); 
      while (true) 
      { 
       robot.mousePress(InputEvent.BUTTON1_MASK); 
       robot.delay(1000); 
       robot.mouseRelease(InputEvent.BUTTON1_MASK); 
      } 
    } 

나는 그것이 Jython이나 Groovy에서 매우 단순하다는 것을 알고 있지만 그럼에도 불구하고 골치 아는 사람이다.

+0

@ JigarJoshi 그는 키보드를 연결하고 키를 누르지 않으려 고합니다. 그는 벌써 중요한 프레스를 할 수 있다고 말했다. – user1071777

+0

@ 사용자 권한

+0

이렇게하면 문제가 해결됩니다. [global hotkey listener] (http://stackoverflow.com/questions/79658/react-on-global-hotkey-in-a-java-program-on-windows- linux-mac) – kajacx

답변

2

필자가 아는 바로는 바로 자바에서는 이것을 할 방법이 없다. 키보드 커맨드는 OS에 의해 처리되기 때문에, 자바가이를 수행하게하는 유일한 방법은 저수준 JNI를 작성하는 것입니다. C++ (* nix 기반 OS 용)에서 X 이벤트 처리기를 작성하여 이와 비슷한 작업을 수행했습니다. Java의 주요 이벤트는 GUI 구성 요소마다 있기 때문에이를 글로벌 차원에서 수행 할 방법이 없습니다. X 이벤트 핸들을 작성할 때 한 번에 하나의 응용 프로그램 만 키를 가져올 수 있다는 제한 사항을 처리해야했습니다. (XGrabKey).

+0

@ kajacx 님의 의견이 당신이 원하는 것을 얻을 수 있도록해야합니다. 보시다시피 JNA 기반 구현을 사용하여 OS 계층에 도달했습니다. – lordoku