【发布时间】:2011-03-20 04:43:39
【问题描述】:
我创建了一个应用程序,其唯一的 UI 是 Windows 任务栏图标。当应用程序直接启动时(例如在 Windows 资源管理器中双击它),它会正确显示任务栏图标。我需要确保这个应用程序一直在运行。为此,我在 C# 中创建了一个 Windows 服务,它每 10 秒检查一次应用程序是否仍在运行,如果没有,它将通过调用重新启动它
System.Diagnostics.Process.Start("MyApp.exe");
我可以从任务管理器中看到该过程已启动。但是,我找不到任务栏图标。我注意到的一件事是,当它从窗口服务启动时,它以系统用户名运行。
如何使任务栏图标在从 Windows 服务启动时可见?
【问题讨论】:
-
请尽量避免以 SYSTEM 身份运行您的服务。为此,我认为 LOCALSERVICE 是您所需要的。
-
为什么需要确保它始终运行?是什么阻止用户停止你的警卫服务然后杀死应用程序?还是应用程序只是不稳定并且经常崩溃?
标签: windows service taskbar notifyicon