2012-09-24 3 views
0

모든 키를 눌렀을 때 이벤트를 발생시키는 프로그램을 생성해야합니다 (키 로거처럼). 나는 핵심 가치를 얻을 수 없었다. 이 프로그램은 모든 키를 눌렀을 때마다 실행됩니다. 나는 그물에 이것과 관련된 것을 찾지 못했습니다.키 스트로크에서 값을 얻는 방법/누르기?

+0

키 로거와 같은가요? 아니면 키 로거입니까? 프로그램이 "모든 키를 누를 때마다 실행됩니다 ..."라고 말하면 키 로거처럼 들립니다. 그것이 다른 경우 어떻게 작동하는지 설명 할 수 있습니까? – user1201210

+0

의 키 누르기를 추적하고자하는 컴포넌트에 java.awt.event.KeyListener를 추가하십시오. OS 전반의 키 리스너를 작성하려면, JNI 등의 네이티브 라이브러리를 사용할 필요가 있습니다. – Vulcan

+0

@Dynguss 예, 실제로 키 로거라고 말할 수 있습니다. 그러나 약간 다른 방식으로 작동합니다. 우편으로 보내기보다는 모든 상자를 기록합니다. –

답변

0

아무 것도 찾을 수 없다는 것은 매우 이상합니다. 키 이벤트를 기록하려면 사용자 KeyListener이어야합니다. 하나의 이벤트 (예 : keyUP, keyDown 또는 keyPress) 만 관련된 경우 KeyAdapter을 대신 사용하십시오.

키 수신기는 모든 자바 스크린 요소에 연결될 수 있으며이 요소에만 전달 된 이벤트를 포착 할 수 있습니다. 예를 들어 프레임을 생성하고 키 리스너를 추가하고이 프레임을 사용하여 모든 키 이벤트를 캡처 할 수 있습니다.

Java 응용 프로그램 외부에서 키 이벤트를 캡처 할 수 없습니다.

그래도이 작업을 수행하려는 경우 다음 해결 방법을 사용할 수 있습니다. 투명한 윈도우를 만들고 리스너를 추가합니다. 청취자는 이벤트를 감지하고 로그 한 다음 java.awt.Robot을 사용하여 화면의 동일한 위치에서이를 모방해야합니다.

이 참조하면 투명 윈도우를 생성하는 데 도움이 될 것입니다 : http://docs.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html

다른 방법은 직접 또는 간접적으로 JNI/JNA를 사용하는 것입니다. 예를 들어 xdotools가 도움이 될 수 있습니다.

관련 문제