当应用程序是 运行 来自 process.start 时托盘图标不出现
tray icon doesnt appear when app is run from process.start
我有一个 C#/winforms 应用程序,运行已最小化到系统托盘。如果我双击此应用程序的 EXE,它会按预期运行 运行s,我会在任务管理器中看到该进程,并且该图标会出现在系统托盘中。我还有一个 windows 服务,它充当另一个应用程序的看门狗。如果 winforms 应用程序关闭,服务将使用 process.start
重新启动
如果应用程序是使用 process.start 从服务启动的,则在 运行 秒的过程中启动相同的 EXE 文件,但不会出现托盘图标。
需要说明的是,winforms 应用程序放置托盘图标而不是 windows 服务。
知道为什么应用对 process.start 和双击的反应不同吗?
编辑:我可能已经部分回答了我自己的问题。该服务 运行ning 作为本地系统。不确定某些 运行 作为本地系统是否能够以与双击相同的方式将图标添加到我的用户系统托盘。这听起来像是我在正确的轨道上吗?
是的,您走对了。不同会话(会话 0)中的服务 运行。如果他们打开 window(非常不鼓励),他们现在被称为 "interactive services"。在这种情况下,Windows 会弹出一个对话框(请参阅 MSDN blog 的屏幕截图)。
托盘图标可能会发生类似情况。由于你没有window,你没有得到交互式服务的弹出对话框,但托盘图标仍然存在于会话 0 中,所以你看不到它。
如果您在 Windows 8,互动服务 have been disabled (MSDN) 完全。
我有一个 C#/winforms 应用程序,运行已最小化到系统托盘。如果我双击此应用程序的 EXE,它会按预期运行 运行s,我会在任务管理器中看到该进程,并且该图标会出现在系统托盘中。我还有一个 windows 服务,它充当另一个应用程序的看门狗。如果 winforms 应用程序关闭,服务将使用 process.start
重新启动如果应用程序是使用 process.start 从服务启动的,则在 运行 秒的过程中启动相同的 EXE 文件,但不会出现托盘图标。
需要说明的是,winforms 应用程序放置托盘图标而不是 windows 服务。
知道为什么应用对 process.start 和双击的反应不同吗?
编辑:我可能已经部分回答了我自己的问题。该服务 运行ning 作为本地系统。不确定某些 运行 作为本地系统是否能够以与双击相同的方式将图标添加到我的用户系统托盘。这听起来像是我在正确的轨道上吗?
是的,您走对了。不同会话(会话 0)中的服务 运行。如果他们打开 window(非常不鼓励),他们现在被称为 "interactive services"。在这种情况下,Windows 会弹出一个对话框(请参阅 MSDN blog 的屏幕截图)。
托盘图标可能会发生类似情况。由于你没有window,你没有得到交互式服务的弹出对话框,但托盘图标仍然存在于会话 0 中,所以你看不到它。
如果您在 Windows 8,互动服务 have been disabled (MSDN) 完全。