LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
if
( wParam == VK_HOME && (lParam & (1<<31)) && code == HC_ACTION)
{
AfxMessageBox(_T(
"按下HOME键"
));
}
return
CallNextHookEx(g_HookState, code, wParam, lParam);
}
BOOL CdllApp::InitInstance()
{
CWinApp::InitInstance();
g_HookState = SetWindowsHookExA(WH_KEYBOARD, KeyboardProc, NULL, ::GetCurrentThreadId());
if
(g_HookState != NULL)
{
AfxMessageBox(_T(
"钩子安装成功"
));
}
else
{
AfxMessageBox(_T(
"钩子安装失败"
));
}
return
TRUE;
}