在另一个地方重新创建Windows自己的托盘图标窗口

时间:2010-11-05 12:29:18

标签: winapi system-tray

我有一个像WindowBlinds这样的应用程序可以重新创建窗口。但我现在用托盘窗口盯着。 我反汇编Shell_NotifyIcon()func,发现它使用Shell_NotifyIconW()func然后只是通过ordinal(来自shellw.dll)函数215来创建,修改和删除图标。

在这个函数中,我发现我可以通过hwnd找到WndProc(在反汇编代码中我通过FindWindowW得到了hwnd(L“Shell_TrayWnd”,0);)但是如何?

有人合作吗? 请帮忙。

1 个答案:

答案 0 :(得分:0)

资源管理器只获取一个WM_COPYDATA消息IIRC,因此你可以继承(你需要在同一个进程中)并捕获该消息,或者使用工具栏消息与托盘图标列表进行交互,请参阅开源TraySaver应用

你还可以看看一些开源的替代shell,他们有很多未记录的东西。我linked给他们中的几个人做了一些相关的答案。