SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)HookFun,(HINSTANCE)AfxGetApp()->m_hInstance,0);(HINSTANCE)AfxGetApp()->m_hInstance 该如何改?
程序可能运行多个实例,需要各自hook各自的消息
谢谢
程序可能运行多个实例,需要各自hook各自的消息
谢谢
解决方案 »
- 知道内存里图片的HGLOBAL句柄,怎样在Document区域显示
- 关于树控件 排序的一个“简单而恶心的问题”,解决者100分全囊相赠....(最大上限了) 还可加
- 隐式加载DLL模块时,如何让程序能搜索我指定的路径?
- 关于钩子很奇怪的问题
- 服务器端select socket频繁连接客户端
- 关于SetViewportExt 和 SetScrollSizes冲突
- msxml的Bug?
- 在MDI主框架窗口中添加位图
- 各位高手,救救俺吧,实在是搞得头晕了,分数不是问题!!!!
- vc2010操作excel怎么设置单元格格式
- socket编程
- CFile的二进制文件读取问题,CFile::modeReadWrite标记和CFile::modeRead标记
在exe内安装的钩子void CTextDlg::OnHook()
{
// TODO: Add extra validation here
hkb =SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)HookFun,(HINSTANCE)AfxGetApp()->m_hInstance,0);//(HINSTANCE)GetModuleHandle(NULL)
}LRESULT CALLBACK HookFun(int nCode,WPARAM wParam,LPARAM lParam)
{
switch(wParam)
{
.......
} LRESULT RetVal = CallNextHookEx(hkb, nCode, wParam, lParam );
return RetVal;
}发觉一运行 本程序可以正确相应键盘消息 执行回调函数
但是失去焦点后 不能正确处理消息 其他运行的程序马上出错。
explore.exe 都要重启。
我想肯定是 在失去焦点后没自动 卸载钩子 或者 hook的对象不正确。