如何使系统托盘图标在多个桌面上可见?

How to make a System Tray Icon visible in multiple desktops?

我不确定我是否使用了正确的术语来提问,但我希望足够清楚。我正在开发一个类似于 kiosk 的应用程序。应用程序启动后,它会创建一个功能有限的新桌面。使用组合键,我可以在桌面之间来回移动。为了通知用户它当前正在使用的桌面或任何其他信息,我创建了一个系统托盘图标,它显示气球消息。

问题是新创建的桌面使用 CreateProcess 函数启动了一个新的 explorer.exe 进程,因此我的系统托盘图标是不显示,只有 "system" 图标,如音量、互联网连接状态、电池状态等。

我没想到我的托盘图标会在新桌面上可见,但我想知道是否有办法让这成为可能。

感谢阅读,希望我说得够清楚。

每个通知图标都显示在其所属进程的桌面上。因此,对于您希望在其上显示通知图标的每个桌面,您需要从该桌面内的进程创建该图标。

您也很可能需要使用 IPC 在不同进程之间进行通信。