2013-07-06 2 views
-1

키를 보유하고 있으면 해당 키에 대한 많은 '키 다운'이벤트가 전송됩니다. win32 API가 사용하는 것과 동일한 접근법.X는 키를 보관할 때 많은 키 업 이벤트를 전송합니다.

그러나 각 '키 다운'후에 '키 업'이벤트가 전송됩니다. 이것은 내가 키를 길게하면 내가 전송받을 것을 의미합니다 :

key down 
key up 
key down 
key up 
... 
key down 
key up 

이 효과적으로가 개최되는 중요한 구별 할 수있는 방법이없고 키가 정말 빨리 누르는 것을 의미한다.

내 윈도우 사용하고 이벤트 마스크는 키가 실제로 해제 될 때까지 '키까지'이벤트를 전송을 중지합니다 어딘가에 X의 일부 비밀 설정은 FocusChangeMask | PointerMotionMask | ButtonPressMask | ButtonReleaseMask | ExposureMask | KeyPressMask | KeyReleaseMask | StructureNotifyMask

있다. 키보드를 먼저 잡아야합니까?

+0

예, 구별 할 수있는 방법이있다 : 각 이벤트의 타임 스탬프를 봐주세요. 아래에 열쇠 (및 누군가의 손가락)를위한 신체적 인 여행 시간이있다 autokey 재료. –

+0

그래서 모든 키 업과 키 다운 이벤트를 확인하고 버퍼에 저장하고 동일한 타임 스탬프로 키 다운이있는 키 업 이벤트를 제거한다고 말하고 있습니까? 나에게 매우 가난한 해결책처럼 보입니다. 마지막 * true * keyup 이벤트는 어떻습니까? 그것은 여전히 ​​동일한 타임 스탬프와 일치하는 keydown을 가질 것이므로이 것이 특별하고 실제로 간주되어야한다는 것을 어떻게 알 수 있습니까? – thecoshman

+0

그것은 자동 반복으로 수행되며'xset r off '로 끌 수는 있지만 멈출 것입니다 모든 프로그램에 대한 자동 반복 – parkydr

답변