WH_JOURNALRECORD钩子和WH_GETMESSAGE钩子不能截断消息吗?
我试了一下WH_JOURNALRECORD钩子和WH_GETMESSAGE钩子我发现
这两个钩子只能监听键盘和鼠标消息,不能截断消息.用return 1来代替
return CallNextHookEx(...)也不行.可看书上介绍好像可以.附上我的
WH_JOURNALRECORD钩子源码,请你指教.
//------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (g_hLogHook==NULL)
g_hLogHook = SetWindowsHookEx(WH_JOURNALRECORD,(HOOKPROC)JournalLogProc,HInstance,0); //安装日志钩子
}
//------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if (g_hLogHook!=NULL)
{
UnhookWindowsHookEx(g_hLogHook);
g_hLogHook=NULL;
} //卸载日志钩子
}
//---------------------------------------------------------------------------
LRESULT CALLBACK JournalLogProc(int iCode,WPARAM wParam, LPARAM lParam)
{
if (iCode<0) return CallNextHookEx(g_hLogHook,iCode,wParam,lParam);
if (iCode==HC_ACTION) {
EVENTMSG *pEvt=(EVENTMSG *)lParam;
if (pEvt->message==WM_KEYDOWN){
int vKey;
MessageBeep(-1);
vKey=LOBYTE(pEvt->paramL); // 取得虚拟键值
Form1->Edit1->Text=vKey;
if(vKey==91||vKey==92) return 1;//我的本意是截断左右两个windows键.不好使!
}
}
return CallNextHookEx(g_hLogHook,iCode,wParam,lParam);
}
//---------------------------------------------------------------------------