只需三步:
1.定义钩子
HHOOK MyHook; //接收由SetWindowsHookEx返回的旧的钩子
2. 安装钩子
BOOL CVLifeClient2App::InitInstance()
{
// _CrtSetBreakAlloc(1467);//内存泄露检测
//安装钩子
MyHook = SetWindowsHookEx( WH_KEYBOARD_LL,
(HOOKPROC)&KeyboardProc, //回调函数地址
GetModuleHandle(NULL),
NULL);
。。。。
}
3. 编写钩子的消息处理函数
int CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= HC_ACTION && wParam==WM_KEYDOWN)
{
KBDLLHOOKSTRUCT* pStruct = (KBDLLHOOKSTRUCT*)lParam;
// LPWORD tmpVirtualKey = g_lpdwVirtualKey;
if (pStruct->vkCode == VK_ESCAPE)
PostQuitMessage(0);
return TRUE;
}
return CallNextHookEx(MyHook,nCode,wParam,lParam); //将消息还给钩子链,不要影响别人
}
完毕。