문제

나는 이와 같은 로컬 핫키를 설정할 수있었습니다

 RegisterHotKey(hwndDlg, 100, MOD_ALT | MOD_CONTROL, 'S');

핫키를 어떻게 글로벌로 설정할 수 있습니까? 창문이 숨겨져있을 때에도 거기에 있기를 원합니다.

도움이 되었습니까?

해결책

나는 그것을 직접 해결했지만 당신의 답장에 감사드립니다. 여기에 무엇이 잘못되었는지 ...

ShowWindow(hwndDlg, SW_HIDE);
RegisterHotKey(hwndDlg, 100, MOD_ALT | MOD_CONTROL, 'S');

먼저 핫키를 등록한 다음 창문을 숨기면 ... 어떤 이유로 핫키를 무시합니다 ... 오 잘 .. 지금 작동하고 있습니다 :)

다른 팁

http://msdn.microsoft.com/ru-ru/library/windows/desktop/ms646309(v=vs.85).aspx

HWND [in, 선택 사항

유형 : HWND

<...>이 매개 변수가 NULL 인 경우 WM_HOTKEY 메시지가 호출 스레드의 메시지 대기열에 게시되며 메시지 루프에서 처리해야합니다.

그것은 글로벌 핫키를 등록하는 더 좋은 방법입니다.

창문이 보이는지 여부는 중요하지 않습니다. 대화 상자와 같은 hwnd를 사용해서는 안됩니다 (대화 상자와 같이). 다른 적절한 창이없는 경우 별도의 (보이지 않는) 창을 만듭니다.

먼저 핫키에 대해 하나 이상의 상수를 정의합니다.

#define HOTKEY1 1000
#define HOTKEY2 1002

그런 다음이 핫 키를 등록합니다

RegisterHotKey(NULL, HOTKEY1, MOD_ALT + MOD_SHIFT, 0x53); // ALT+SHIFT+s
RegisterHotKey(NULL, HOTKEY2, MOD_ALT + MOD_SHIFT, 0x51); // ALT+SHIFT+q

마지막으로 메인 이벤트에서는이 핫 키를 모니터링하고 응답합니다.

         if (msg.message == HOTKEY1)
         {
             switch (LOWORD(msg.wParam))
             {
             case HOTKEY1:
                 // do such and such
                 break;
             case HOTKEY2:
                 // do such and such
                 break
             }
         }
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top