请问低级鼠标钩子如何使用?我的这程序哪里错了?最好给出例程来。
想写个钩子把鼠标上的一个键变成键盘上的键。准备用低级鼠标钩子。在主窗口过程的WM_CREATE消息里面使用下面的代码装载钩子。hinstDLL=LoadLibrary(T...
想写个钩子把鼠标上的一个键变成键盘上的键。准备用低级鼠标钩子。
在主窗口过程的WM_CREATE消息里面使用下面的代码装载钩子。
hinstDLL = LoadLibrary(TEXT("Mydll.dll"));
hkprcLmouse = (HOOKPROC)GetProcAddress(hinstDLL,"Lproc");
hhLmouse = SetWindowsHookEx(WH_MOUSE_LL,hkprcLmouse,hinstDLL,0);
dll中的钩子进程为:
extern "C" __declspec( dllexport ) LRESULT Lproc(int nCode,WPARAM wParam,LPARAM lParam)
{
return CallNextHookEx(0,nCode,wParam,lParam);
}
程序运行之后出现主窗口,然后只要鼠标一动,就会在消息循环的GetMessage()函数那里出现异常,说Access Violation。这是怎么回事呢?
问题找到了,声明的时候没有加上WINAPI。然后使用的导出表就可以了。
第一个回答的人给分。 展开
在主窗口过程的WM_CREATE消息里面使用下面的代码装载钩子。
hinstDLL = LoadLibrary(TEXT("Mydll.dll"));
hkprcLmouse = (HOOKPROC)GetProcAddress(hinstDLL,"Lproc");
hhLmouse = SetWindowsHookEx(WH_MOUSE_LL,hkprcLmouse,hinstDLL,0);
dll中的钩子进程为:
extern "C" __declspec( dllexport ) LRESULT Lproc(int nCode,WPARAM wParam,LPARAM lParam)
{
return CallNextHookEx(0,nCode,wParam,lParam);
}
程序运行之后出现主窗口,然后只要鼠标一动,就会在消息循环的GetMessage()函数那里出现异常,说Access Violation。这是怎么回事呢?
问题找到了,声明的时候没有加上WINAPI。然后使用的导出表就可以了。
第一个回答的人给分。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询