2010-08-16 3 views
5

마우스 또는 키보드 활동이있는 경우이를 감지해야합니다. 내 응용 프로그램은 백그라운드 (트레이)에서 실행되며 내 응용 프로그램이 포커스가 없을 때도이 활동을 감지해야합니다.Java 키보드/마우스 동작 (내 응용 프로그램 외부에서도)

어떤 키를 눌렀는지 알 필요는 없지만 키를 눌렀을 때만 알 수 있습니다.

자바로도이 작업을 수행 할 수 있습니까? 나는 JNI와 C++/C를 사용하는 몇 가지 해결책을 읽었지만, OS마다 다른 것 같다. Windows, Linux 및 Mac에서 사용할 수있는 간단한 솔루션이 있습니까?

감사합니다.

+1

것은 이런 종류의에 대한

는 반드시 플랫폼 별이다. –

+0

OK 업데이트 : 그래서, 윈도우 용 라이브러리 (jintellitype)와 리눅스 용 라이브러리 (jxgrabkey)를 찾았습니다. 누구든지 MAC OSX에 대해 알고 있습니까? –

+0

나는 이것이 당신이 좋은 대답을 얻을 수있는 질문이 아닐 것이라고 말할 것입니다. 본질적으로 프로그램은 키 로거처럼 작동해야하며, 일반적으로 프로그램은 커널에 스스로 접속해야합니다. 자바는 그렇게 할 능력이 없기 때문에 당신은 운이 좋다. –

답변

3

OS 특정 API에 의존하는 JNI가 필요하기 때문에 에 지원되는 각 OS에 대한 구현이 있고 응용 프로그램에서 OS를 감지 한 후 동적으로로드하는 것이 유일한 방법입니다. 다른 OS 플랫폼은 다른 방법으로이 기능을 제공하며, 일부 구성도 전혀 제공하지 않을 수도 있기 때문에 윈도우 Java Global Keyboard/Mouse Hook – JNI

+0

Jotschi (Keyboard/Mouse Hook의 원저자)의 허락을 받아 몇 년 전에 도서관을 이용하여 새 버전을 만들었습니다. GitHub의 최신 릴리스 및 예제 (https://github.com/kristian/system-hook)를 찾으십시오. [블로그 게시물] (http://kra.lc/blog/2016/02/java-global-system-hook/)의 라이브러리에 대한 설명. –