工控编程吧
标题:
上位机MFC如何实现钩子
[打印本页]
作者:
qq263946146
时间:
2019-8-16 11:18
标题:
上位机MFC如何实现钩子
可以3步走,使用钩子函数。
1.SetWindowsHookEx,挂上钩子,传递函数HookProc可监视事件。
2.UnhookWindowsHookEx 卸载钩子。
3.在HookProc内监视事件。
对应三步为
void CDemoDlg::OnTest1()
{
//安装键盘钩子
m_Hook = ::SetWindowsHookEx(WH_KEYBOARD_LL, HookProc,
AfxGetApp()->m_hInstance, 0);
AfxMessageBox(_T("钩子安装成功。"));
}
void CDemoDlg::OnTest2()
{
//卸载钩子
UnhookWindowsHookEx(m_Hook);
AfxMessageBox(_T("钩子卸载成功。"));
}
LRESULT WINAPI HookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
LPKBDLLHOOKSTRUCT pKB = (LPKBDLLHOOKSTRUCT)lParam;
//屏蔽Alt+F4消息
if (nCode == HC_ACTION)
{
if ((pKB->vkCode == VK_F4) && (pKB->flags & 0x20))
{
AfxMessageBox(_T("已拦截屏蔽Alt+F4消息"));
return 1;
}
}
//传递
::CallNextHookEx(0, nCode, wParam, lParam);
return 0;
}
复制代码
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4