我试图使用全局钩子壳监听创建和销毁活动窗口,但它好像我的程序只注册本地线程的破坏事件。根本没有创作活动,绝对不是我认为他们应该成为的全球事件。网壳钩只有注册当地的活动
我已经花了最后一天淘到谷歌和codeguru,codeproject和msdn,但它看起来像我这样做是正确的,但我显然不是。任何人都可以帮助我指出正确的方向吗?
#pragma data_seg(".SHARE")
HWND hWndServer = NULL;
HHOOK g_shell_hook = NULL;
#pragma data_seg()
#pragma comment(linker, "/section:.SHARE,RWS")
TASKBAR_API int StartShellHook(HWND hWnd)
{
g_shell_hook = SetWindowsHookEx(WH_SHELL, ShellProc, g_dll_module_handle, 0);
if(g_shell_hook)
hWndServer = hWnd;
return (g_shell_hook != NULL);
}
这里是我的钩入壳,这一切似乎是正确的我的代码,但同样,它不给适当的输出。眼下ShellProc功能刚刚成立做琐碎的变量递增的窗口创建和销毁的消息,只是一条线,把一个破发点,但该程序只打本地窗口销毁消息的休息。再次,任何帮助将是太棒了,非常感谢你提前。
我编译一个32位的DLL,但我也是一个32位的操作系统,所以这不应该成为问题。我想写一个对的RocketDock,其作用类似于Windows任务栏,它显示了您运行的是什么程序添加,就算的RocketDock还没有它的快捷方式程序,即使程序未最小化。如果有更好的方法来实现这个目标,我就会全神贯注,但是在互联网上似乎没有什么关于这种东西的信息。 – etna 2009-11-22 18:45:38