我按照孙鑫视频里写了个屏蔽鼠标消息的全局钩子,能够启动,但是却屏蔽不了鼠标消息,这是为什么...?照着做都出错..郁闷啊!
以下是dll的代码:
#include <windows.h>
#include <TCHAR.h>HHOOK g_hMouse=NULL;#pragma data_seg("MySec")
HWND g_hwnd=NULL;
#pragma data_seg()#pragma comment(linker,"/section:MySec,RWS")
LRESULT WINAPI MouseProc(
int nCode,
    WPARAM wParam,
    LPARAM lParam
)
{
return 1;
}bool SetHook(HWND hwnd)
{
g_hwnd=hwnd;
HINSTANCE hIns=(HINSTANCE)GetModuleHandle(_T("Lesson202"));
g_hMouse=SetWindowsHookEx(WH_MOUSE,(HOOKPROC)MouseProc,hIns,0);
if(g_hMouse==NULL)
{
MessageBox(NULL,_T("Error"),_T("Caption"),MB_OK);
return false;
}
return true;
}以下是对话框程序部分相关代码:
LoadLibrary(_T("Lesson202.dll"));
if(!SetHook(m_hWnd))
return false;
请高人帮忙看下这是什么问题?顺便问下VS08里怎么链接lib文件?(像vc6里面用对话框,VS08里我都用的#pragma comment(lib,"***.lib")).第1次发贴,希望好心人能帮忙解答,万分感谢!~

解决方案 »

  1.   

    LoadLibrary(_T("Lesson202.dll")); 
    if(!SetHook(m_hWnd)) 
    return false; 你检查LoadLibrary的返回值了吗?你肯定加载DLL成功了?
      

  2.   

    因为你挂的不是低级钩子,所以不会屏蔽。低级钩  WH_MOUSE_LL,普通钩WH_MOUSE 不会屏蔽终点事件
      

  3.   

    哦,忘了。
    应该用底层钩子,并且要写在DLL中。
      

  4.   

    Thank you very much!~~
    我改成WH_MOUSE_LL可以屏幕了~不过好像过头了...动都不能动,有办法让它可以移动,但是屏蔽buttondown一类的消息吗?还有怎么给你分?
      

  5.   

    都检查了,搞了我2个多钟头...过程没什么问题,就是不知道为什么不能屏幕,代码和视频里的基本一样.
    对了还有视频用的WH_MOUSE为什么可以屏幕所有进程的鼠标消息,而我要用WH_MOUSE_LL?能帮忙告诉我下吗?