是否可以在 Windows Vista 或更高版本下从 Delphi 服务应用程序创建托盘图标?
问问题
1503 次
1 回答
5
不它不是。服务在会话 0 中运行。您的交互式进程、您的桌面都在不同的会话中运行,每个登录用户一个。
这种隔离很重要,旨在增强安全性。即使在 Windows XP 中,您也不打算在服务和桌面之间进行直接交互。无论如何,开发人员都这样做了,所以微软在 Vista 中禁止了它。
标准做法是通过其他方式创建托盘图标进程,例如 HKLM\Software...\Run。然后,该交互式进程可以使用 IPC 与服务进行通信。例如命名管道。
现在,在某些极其有限的情况下,服务可以在桌面上启动进程,这在技术上是可行的。在这里阅读:http: //blogs.msdn.com/b/winsdk/archive/2009/07/14/launching-an-interactive-process-from-windows-service-in-windows-vista-and-later .aspx
如果你还想尝试,读完之后,祝你在世界上一切顺利!
于 2012-09-08T13:42:07.483 回答