我用vc做了一个键盘钩子的dll,可是每次只能监听一次,我都没有卸载过钩子,怎么回事啊?代码如下:
DllExport void WINAPI InstallLaunchEv()
{
hook = ::SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)LauncherHook,theApp.m_hInstance,0);
}LRESULT CALLBACK LauncherHook(int nCode,WPARAM wParam,LPARAM lParam)
{
LRESULT result = CallNextHookEx(hook,nCode,wParam,lParam);
if(nCode==HC_ACTION)
{
if(lParam & 0x80000000)
{
AfxMessageBox(_T("进入成功!"));
}
}
return result;
}
DllExport void WINAPI InstallLaunchEv()
{
hook = ::SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)LauncherHook,theApp.m_hInstance,0);
}LRESULT CALLBACK LauncherHook(int nCode,WPARAM wParam,LPARAM lParam)
{
LRESULT result = CallNextHookEx(hook,nCode,wParam,lParam);
if(nCode==HC_ACTION)
{
if(lParam & 0x80000000)
{
AfxMessageBox(_T("进入成功!"));
}
}
return result;
}
解决方案 »
- MFC 程序在vista里运行问题。
- SendInput模拟键盘按键按下的问题
- 关于windows media play 的制作
- Vc不能自动添加头文件
- InternetReadFile的问题(能解决的多加分)
- 请问高手,如何得到ComboBox中Edit的句柄?
- 求系统学习hook的书籍名称和资料
- 关于windowsXP的问题:我的硬盘问题 XP的安装问题
- SOS!为什么我不能设定ComboBox的下拉框的高度?(sorry,只有这么多分了)
- MFC 打开了一幅图片 如何点下菜单实现再显示同样图片的视图
- 在OnSize函数中用GetWindowRect函数的问题
- CSerialPort的问题,在线等待
if( nCode==HC_ACTION && (lParam&0xc000ffff)==1 )//表明参数wParam和lParam包含关于鼠标消息的信息,且键盘按下然后最后return CallNextHookEx(hook,nCode,wParam,lParam);
if (nCode < 0) // do not process message
return CallNextHookEx(myhookdata[CALLWNDPROC].hhook, nCode,
wParam, lParam);