我的HOOK程序是放在DLL里面的,代码如下:
LRESULT CALLBACK CursorChangeProc(int nCode,WPARAM wParam,LPARAM lParam)
{
TRACE0("Get HOOK!");
PMSG pmsg;
pmsg = (MSG*)lParam;
switch(pmsg->message)
{
case WM_SETCURSOR:
if(HitFlag){
TRACE0("Set FALSE");
HitFlag = FALSE;
}
else{
TRACE0("Set TRUE");
HitFlag = TRUE;
}
break;
default:
break;
}
LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam );
return RetVal;
}然后在我的主程序里面安装的HOOK:
SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)hCursorChangeProc,hinstDLL,0);我是想对整个系统包括其他进程进行捕捉SETCURSOR这个事件。
我现在发现程序运行时,“Get HOOK!”这句话是可以打印出来的。可是HitFlag一直没有变,而且其中的"Set FALSE"和“Set TRUE”也一直都没有打印出来。也就是我的SETCURSOR没有被捕捉到。
郁闷中!!!
请问一下,我这里哪里写错了???在线等待。高分相送
LRESULT CALLBACK CursorChangeProc(int nCode,WPARAM wParam,LPARAM lParam)
{
TRACE0("Get HOOK!");
PMSG pmsg;
pmsg = (MSG*)lParam;
switch(pmsg->message)
{
case WM_SETCURSOR:
if(HitFlag){
TRACE0("Set FALSE");
HitFlag = FALSE;
}
else{
TRACE0("Set TRUE");
HitFlag = TRUE;
}
break;
default:
break;
}
LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam );
return RetVal;
}然后在我的主程序里面安装的HOOK:
SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)hCursorChangeProc,hinstDLL,0);我是想对整个系统包括其他进程进行捕捉SETCURSOR这个事件。
我现在发现程序运行时,“Get HOOK!”这句话是可以打印出来的。可是HitFlag一直没有变,而且其中的"Set FALSE"和“Set TRUE”也一直都没有打印出来。也就是我的SETCURSOR没有被捕捉到。
郁闷中!!!
请问一下,我这里哪里写错了???在线等待。高分相送
解决方案 »
- TNetConnectionParams 大家有没听说过这个结构,怎么报答都行
- 散分,缓解郁闷心情.....
- 求高手帮忙:windows drag&drop问题
- 冲击波病毒
- 急,关于页故障。
- 如何检测access某一数据库中的数据表的存在与否
- 有人了解 大连现代高技术发展有限公司 么?
- 高分求助:我想学学vc++有没有哪位高人指点一个合适的路子
- 如何隐藏透明窗体在任务栏中的图标
- 谁有FlashFXP (Version 1.4 Build 800)的注册码?
- 也不知道起什么标题好,大家进来看看吧。技术问题。
- ~~~~~~~~~~~~~~~关于移动窗体的简单问题,在线等~~~~~~~~~~~~~~~~
可是TRACE0("Get HOOK!");这句话是打出来的阿.这不是一样的嘛???