2 가지 작업의 차이점은 무엇입니까? WH_KEYBOARD_LL
i read의 경우 하위 수준 키보드 입력 이벤트를 모니터링하는 후크 프로 시저를 설치합니다. 낮은 레벨 키보드 이벤트의 의미는 무엇입니까?WH_KEYBOARD와 WH_KEYBOARD_LL의 차이점은 무엇입니까?
16
A
답변
25
Meh, 용어에 너무 집중하지 마십시오. 아무 것도 명확히하지 않습니다. 둘 사이에 큰 차이가 있습니다. WH_KEYBOARD_LL은 사용자 프로그램에서 콜백을 구현해야하는 훅을 설치합니다. 또한 키보드 메시지를 발송할 때마다 Windows가 콜백을 할 수 있도록 메시지 루프를 펌프해야합니다. 그래서 정말 쉽게 갈 수 있습니다.
WH_KEYBOARD는 매우 다르게 작동하므로, 훅 된 프로세스에 안전하게 삽입 할 수있는 DLL이 필요합니다. 이로 인해 프로세스에 영향을주지 않으면 서 DLL을 주입하는 것이 쉽지 않은 것으로 악명 높게 나타납니다. 특히 64 비트 운영 체제에서. 다른 프로세스가 키 입력에 대해 알아야 할 경우 필요한 프로세스 간 통신도 처리하지 않습니다. 키 로거처럼.
WH_KEYBOARD의 장점은 키보드 상태에 액세스 할 수 있다는 것입니다. Windows의 프로세스 별 속성입니다. 활성화 된 키보드 레이아웃과 수정 자와 죽은 키의 상태는 가상 키를 타이핑 키로 직접 번역하기 위해 후크를 사용하고자 할 때 매우 중요합니다. ToUnicodeEx()는 외부 프로세스에서 안정적으로 호출 할 수 없습니다.
예제 코드를 실행하지 않고 고양이를 스윙 할 수 없으면 Google에서 충분히 제공합니다. 전에는 그런 훅을 쓰지 않았다면 잘 알려진 것을 사용하십시오. 많은 슬픔을 피할 수 있습니다.
_' "... 콜백을 구현해야하는 후크를 설치합니다 ..."_. _ 콜백 _이 무슨 뜻이야? –
이전 질문에서 이미 설명을 드렸습니다. 그것이 아직도 이상한 경우에는 기본 winapi 및 프로그래밍에 대해 더 많은 것을 배울 수있을 때까지이 프로젝트를 선반에 두는 것을 고려하십시오. 후크가가는 것은 사소하지 않습니다. –
_ "훅 체인에서 다음 메서드 호출"을 의미합니까? _ _ –