|
我查找了有关资料
WH_JOURNALPLAYBACK Hook使应用程序可以插入消息到系统消息队列。可以使用这个
Hook回放通过使用WH_JOURNALRECORD Hook记录下来的连续的鼠标和键盘事件。只要
WH_JOURNALPLAYBACK Hook已经安装,正常的鼠标和键盘事件就是无效的
所以我在wince下利用QASetWindowsJournalHook函数安装WH_JOURNALPLAYBACK钩子
代码如下:
安装函数:
hHookMouse = QASetWindowsJournalHook(WH_JOURNALPLAYBACK, MouseHookCallback, &msg);
钩子处理函数
LRESULT CALLBACK MouseHookCallback(int nCode, WPARAM wParam, LPARAM lParam) {
if(nCode >= HC_ACTION)
{
AfxMessageBox(L"已触发鼠标Hook",MB_ICONINFORMATION,0);
PEVENTMSGMSG pMsg = (PEVENTMSGMSG)lParam;
if(pMsg)
{
if(pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_LBUTTONUP)
{
AfxMessageBox(L"已触发鼠标Hook",MB_ICONINFORMATION,0);
return (1);
}
}
}
AfxMessageBox(L"不能够触发鼠标Hook",MB_ICONINFORMATION,0);
return 1;
//return CallNextHook(hHookMouse, nCode, wParam, lParam);
}
以上代码可以捕抓到鼠标信号,但是不能拦截鼠标信号
也有资料说 用WH_JOURNALRECORD 钩子,不用WH_JOURNALPLAYBACK钩子,而当我用WH_JOURNALRECORD
钩子时候,就根本不能捕抓到鼠标信号,因为WH_JOURNALRECORD 只是记录,而WH_JOURNALPLAYBACK回放
鼠标的点击动作。所以我认为用 WH_JOURNALPLAYBACK钩子是对的。
现在问题是可以捕抓到信号,而不能拦截信号?
|
|