SetWindowsHookEx(WH_CALLWNDPROC)可以挂起整个系统吗?

时间:2011-02-25 14:04:53

标签: c winapi

我坚持这个。我甚至无法使用OutputDebugString和debugview看到调试输出 - 系统只是挂起。

一个问题是:如果我在钩子函数中调用SendMessage(),这个消息是否会回到我的钩子函数或系统只是调用另一个处理程序而不是我的?

问题二:当用户点击托盘图标或将鼠标移到图标上时,我正在使用钩子程序来捕获系统发送的消息。

这是使用SetWindowHookEx(WH_CALLWNDPROC,myfunc,hDll,0)的正确方法还是应该使用thread参数并将其设置为收到Shell_NotifyIcon()配置的msgs的线程?

1 个答案:

答案 0 :(得分:0)

您在库中实现了挂钩!?

关于问题1:我不会在钩子内调用SendMessage,因为这个SendMessage会再次调用你的钩子。这可能会导致很好的递归。

关于问题2:当您点击托盘图标时,您正在使用挂钩获得通知?您是否想要在单击任何托盘图标或单击您的托盘图标时?有关托盘图标的通知,您应该使用Shell_NotifyIcon并查看NOTIFYICONDATA :: uCallbackMessage。