MFC学習メッセージフック使用
2425 ワード
HANDLE h_KeyBoard;
// , WH_KEYBOARD_LL, WH_MOUSE_LL , ,
g_hKeyBoard = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, NULL, GetCurrentThreadId());
// , dll , WH_GETMESSAGE .
h_KeyBoard =SetWindowsHookEx(WH_MOUSE, MouseProc, GetModuleHandle("HookGlobal"), NULL); // dll , dll , GetMoudleHandle NULL
UnhookWindowsHookEx(g_hKeyBoard);
LRESULT CALLBACK KeyboardProc( int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam // keystroke-message information
)
{
/*
if(VK_SPACE == wParam || ((lParam >> 29 & 1) && VK_F4 == wParam))
return 1;
else
return CallNextHookEx(g_hKeyBoard, code, wParam, lParam);
*/
if(VK_F2 == wParam)
{
::SendMessage((HWND)g_hWnd, WM_CLOSE, 0, 0);
UnhookWindowsHookEx(g_hKeyBoard);
UnhookWindowsHookEx(g_hMouse);
}
return 1;
}
コードのダウンロード