只需三步:
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)标签:wParam,MyHook,lParam,nCode,钩子,关闭程序,ESC,NULL From: https://blog.51cto.com/u_15045304/5963090
{
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); //将消息还给钩子链,不要影响别人
}完毕。