0

我们有一个使用 Visual Studio 6 编写的大型旧应用程序。当从会话 0 中的一个服务调用 Shell_NotifyIcon 在 Windows 7 上失败时,我们遇到了问题。该服务正在尝试放置一个托盘图标。

有谁知道是什么导致了这个失败以及如何解决这个问题?

4

2 回答 2

1

可能是因为添加了 Session 0 Isolation 功能,导致服务无法直接与用户桌面交互。要配置具有与用户交互权限的服务,SERVICE_INTERACTIVE_PROCESS修饰符必须存在于服务注册表键类型参数中。(Windows 内部 6)

于 2013-01-08T14:12:54.217 回答
0

您可能已经注意到,会话 0 中没有托盘!Shell_NotifyIcon 在那里失败并不奇怪。

托盘由 Explorer.exe 进程提供。如果您在会话 0 中启动 Explorer 的副本,您的调用应该会神奇地成功,但请谨慎操作,因为不鼓励使用会话 0 中的用户界面。

于 2013-01-08T16:20:43.023 回答