2011-05-15 2 views
1

에서 RegisterHotKey 수정으로 SCROLL LOCK : 나는 가정에서만 사용할 수있는 참조사용 NUM/CAPS/I는 매우 잘 알려진 WinAPI를 기능이 WinAPI를

BOOL WINAPI RegisterHotKey(
    __in_opt HWND hWnd, 
    __in  int id, 
    __in  UINT fsModifiers, 
    __in  UINT vk 
); 

MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN 키, MOD_NOREPEAT도 포함됩니다. 이제

RegisterHotKey(NULL,1,MOD_SHIFT,0x41); 

중요한 질문 :

그래서 나는이 말을위한 시스템 전체 단축키는 Shift+A 조합에 대한 키를 생성하려면 다음을 사용할 수 있습니다 :

NUM LOCK/SCROLL LOCK/Caps Lock (MOD_SHIFT과 다른 것)을 시스템 전체에 적용 할 단축 키의 수식어로 사용하여 그러한 "LOCK"키 중 하나라도 해당 키 조합에 대해 등록 된 키가 단축키로 동작하도록합니다 "LOCK"키 중 하나가 꺼져있을 때 정상적인 비 트래핑 키로 작동합니까?

나는 단축키를 등록/등록 해제하기 위해 GetKeyState(VK_NUMLOCK)&0xFFFF과 같은 것으로 모니터링하는 것이 해결책이 너무 어색하거나 시스템 성능을 저해하거나 어쩌면 불완전한 방식으로 진행될 것이라고 생각한다. 시스템 전반의 주요 동작과 관련이 있습니다.

더 좋은 방법이 있습니까?

답변

1

상황에 따라 이벤트 코드 시작 부분에 "LOCK"키의 상태를 확인할 수 있습니다.

그렇지 않으면 SetWindowsHookEx을 사용하여 모니터링을 수행하는 키보드 후크를 만들 수 있습니다.

+0

'SwtWindowsHookEx' 함수가 재미있을 것 같습니다. 그러나 일단 단축키로 등록 된 열쇠는 단축키로 등록되지 않은 한 정상적인 작동은 ** 시스템 전체 **로 돌아 가지 않기 때문에 LED-LOCK 키의 상태를 확인하는 것만으로는 충분하지 않다고 생각합니다. 나는 그것에 대해 더 많은 것을 할 수 있는지보기 위해 그것에 대한 자세한 내용을 두 번 다시 확인하겠습니다. –

관련 문제