通过Windows服务运行桌面应用程序

时间:2015-01-10 14:11:33

标签: c# .net windows-services

我创建了一个Windows服务,用于检查特定应用程序是否正在运行,如果该应用程序之前未运行或用户已关闭,则该服务会尝试再次运行它。

但问题是,该服务在Windows 8上正常运行,当我关闭该Windows应用程序时,该服务尝试再次启动它,但此服务在Windows Server 2008 R2中不起作用并且当我关闭时应用程序,该服务无法启动应用程序

有没有人帮我这个?

我用Dot Net framework 4.5和VS 2013编写了应用程序

更新1:

Tick = new Timer();
Tick.Interval = 3000;
Tick.Elapsed += new System.Timers.ElapsedEventHandler(this.Tick_Elapsed);
Tick.Start();

/////

 public void Tick_Elapsed(object sender, ElapsedEventArgs e)
       {
           List<IOTools.AppStruct> applist = new List<IOTools.AppStruct>();
           applist = IOTools.GetApplicationList();

           var NotRun = applist.Select(c => new { AppName = System.IO.Path.GetFileName(c.AppName).ToLower() })
               .Except(System.Diagnostics.Process.GetProcesses().Select(r => new { AppName = r.ProcessName.ToLower() + ".exe"}));

           var FinallList = from app in applist
                            join nr in NotRun on System.IO.Path.GetFileName(app.AppName).ToLower() equals nr.AppName
                   select app;

           foreach (var app in FinallList)
           {
               Process.LaunchChildProcess(app.AppName, app.args);
           }
       }

0 个答案:

没有答案