读书人

关于SetWindowsHookEx3大疑惑猛求中

发布时间: 2013-10-01 12:15:56 作者: rapoo

关于SetWindowsHookEx三大疑惑,猛求中
如何在其他线程完成并鼠键函数有回调消息?

疑惑一:
CloseHandle (CreateThredMy (0, 0, 回调函数, 0, 0, 0))
回调函数(p)
{
SetWindowsHookEx(13,鼠键函数,GetModuleHandle(0),0);//全局HOOK
}
这样为什么没有鼠键函数回调消息?


疑惑二:
CloseHandle (CreateThredMy (0, 0, 回调函数, 0, 0, 0))
回调函数(p)
{
SetWindowsHookEx(13,鼠键函数,GetModuleHandle(0),0);//全局HOOK
MessageBox(NULL,NULL,NULL,0);
}
这样为什么有鼠键函数回调消息?但是信息框一关又没回调了?但是把MessageBox换成whlie(1)又没回调。。。


疑惑三:
直接在主线程SetWindowsHookEx(13,鼠键函数,GetModuleHandle(0),0);//全局HOOK
为什么我的应用程序会很卡?鼠键函数回调里是空的什么都没写。是POSTMSG太多吗?SetWindowsHookEx和其他什么API有冲突导致卡呢?

好郁闷啊。求解.. HOOK
[解决办法]
回调消息你首先得有消息循环,并且不能阻塞消息循环。
[解决办法]
http://www.autohotkey.com
[解决办法]
参考
MSDN98\SAMPLES\MSDN\TECHART\1566\HOOKS32.C
MSDN98\SAMPLES\MSDN\TECHART\1566\HOOKSDLL.C
MSDN98\SAMPLES\VC98\SDK\SDKTOOLS\SPY\APP\HOOK.C

读书人网 >C++

热点推荐