问题是这样的,如果我在另外一个应用程序的窗口将鼠标按下,然后再在我HOOK的应用程序的窗口内移动,并不能hook到mousemove事件,如果不在其他窗口的将鼠标按下,在我HOOK的窗口内我关心的消息都可以截获到~~~请教,是否有啥蹊跷在里面呢?
解决方案 »
- richedit怎么复制GIF
- extern的使用问题,请各位师兄师姐帮帮忙吧!
- 自定义的函数参数传递有错,该怎么修改这个函数?
- 类似BCGControlBar的界面开发库有哪些?
- 请各位帮忙,如何得到当前窗口名为"XXXX"的所有的窗口的handle!
- 我用SHGetSetSettings显示所有的文件和隐藏的系统文件。现在可以显示所有文件了,但系统文件却显示不出来,为什么?
- VC6.0启动一个工程后的错误
- VC 封装的DLL 在DEPHI中的调用,部分参数传不进去。
- 请问怎样把整型转换成字符串型?
- 不好意思,请指教下,DLL里的函数到底怎么用
- 【每月都散分】 留下300分备用提问,其余全贡献出来 5
- 关于spy++的问题
#pragma data_seg(push, "Shared")
HHOOK NextHook = NULL;
#pragma data_seg(pop)
#pragma comment(linker, "/SECTION:Shared,RWS")HMODULE Module;BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
Module = hModule;
break;
}
return TRUE;
}LRESULT CALLBACK LowLevelMouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == 0)
{
if (wParam == WM_LBUTTONUP)
{
MessageBox(NULL, "OK", NULL, MB_OK);
}
}
return CallNextHookEx(NextHook, nCode, wParam, lParam);
}
__declspec(dllexport) void StartHook()
{
NextHook = SetWindowsHookEx(WH_MOUSE_LL, LowLevelMouseProc, Module, 0);
}__declspec(dllexport) void StopHook()
{
UnhookWindowsHookEx(NextHook);
}
你提醒我的找显示网页的那个窗口,得到指针为NULL的时候会有问题,我就不知道他为啥会为NULL,IE6.0看起来,窗口的布局都是那样的呢~~
HHOOK NextHook = NULL 这句话放在共享数据段里,会造成,再次InstallHook失败,我之前也是你那么写的,后来发现会失败,所以MS不放在共享里。
全局Hook必须把SetWindowsHookEx的返回值保存在共享变量中,因为Hook函数将会在各个进程中被调用,CallNextHookEx要使用这个值。如果要用多个Hook,应该定义多个变量分别保存各次SetWindowsHookEx的返回值。