在Windows 7上会话0中从服务器调用Shell\u NotifyIcon时失败

在Windows 7上会话0中从服务器调用Shell\u NotifyIcon时失败,windows,windows-7,windows-services,Windows,Windows 7,Windows Services,我们有一个使用VisualStudio6编写的大型、旧的应用程序。当在会话0中从我们的一个服务调用Shell_NotifyIcon时,Windows 7上的Shell_NotifyIcon出现故障。该服务正在尝试放置一个托盘图标 有人知道是什么原因导致了此故障以及如何解决此问题吗?可能是因为添加了会话0隔离功能,其结果是服务无法直接与用户桌面交互。要配置具有与用户交互权限的服务,修饰符必须显示为services registry keys Type参数。(Windows内部构件6)您可能注意到,

我们有一个使用VisualStudio6编写的大型、旧的应用程序。当在会话0中从我们的一个服务调用Shell_NotifyIcon时,Windows 7上的Shell_NotifyIcon出现故障。该服务正在尝试放置一个托盘图标


有人知道是什么原因导致了此故障以及如何解决此问题吗?

可能是因为添加了会话0隔离功能,其结果是服务无法直接与用户桌面交互。要配置具有与用户交互权限的服务,修饰符必须显示为services registry keys Type参数。(Windows内部构件6)

您可能注意到,会话0中没有托盘!Shell_NotifyIcon在这方面失败并不奇怪


托盘由Explorer.exe进程提供。如果您的呼叫神奇地成功了,但由于不鼓励会话0中的用户界面,请谨慎进行。

交互式进程允许服务显示UI,但其UI位于特殊会话中。它们无法与用户登录会话通信。一旦你进行了快速用户切换,该应用程序在Windows XP上已经收支平衡。谷歌“会话0隔离”来找出这不再可能的原因。