基本上我需要我的应用程序从系统启动直到系统关闭运行。我想通了以下方法:保持应用程序始终运行
- 创建MyApp.exe将和MyService.exe
- MyApp的应该安装的MyService作为服务
- 为MyService应该在启动时运行,并定期检查,如果MyApp的运行。如果它不是启动它。
这是我写我的服务的代码:
protected override void OnStart(string[] args)
{
while(true)
{
int processesCount =
Process.GetProcessesByName(Settings.Default.MyAppName).Count() +
Process.GetProcessesByName(Settings.Default.MyAppName + ".vshost").Count() +
Process.GetProcessesByName(Settings.Default.MyAppUpdaterName).Count();
if(processesCount==0)
{
//restore
var p = new Process { StartInfo = { FileName = Settings.Default.MyAppName, Arguments = "" } };
p.Start();
}
else
{
}
System.Threading.Thread.Sleep(3000);
}
}
- 我怎样才能使其开始在Windows上安装这个过程开始的?
- 我不确定OnStart方法中的这个无限循环是否是一个好主意。是吗?
- 总体思路是否正确?
为什么不只是有myservice.exe? –
这只是对用户不利。毫无意义的是,她当然会杀了你的服务。编写真正有用的代码,用户返回并保持运行状态。 –
@HansPassant这只是我老板给我的要求。这个应用程序应该监视工作人员的效率,所以我必须让他们很难关闭它或忘记开始它。 :) – gisek