2015-10-19 96 views
-1

我想運行一個exe文件,如果這個exe文件關閉了,windows服務必須通過檢查是否關閉或者沒有時間間隔來重新啓動這個exe文件。用windows服務連續運行.exe文件

static class Program 
{ 
    /// <summary> 
    /// The main entry point for the application. 
    /// </summary> 
    static void Main() 
    { 
     ServiceBase[] ServicesToRun; 
     ServicesToRun = new ServiceBase[] 
     { 
      new Service1() 
     }; 
     string filename = "C:\\a.exe"; 
     Process.Start(filename); 
     ServiceBase.Run(ServicesToRun); 
    } 
} 
+0

什麼是你的問題? –

回答

0

我想這就是你要找的

public partial class App : System.Windows.Application 
{ 
    public bool IsProcessOpen(string name) 
    { 
     foreach (Process clsProcess in Process.GetProcesses()) { 
      if (clsProcess.ProcessName.Contains(name)) 
      { 
       return true; 
      } 
     } 
     return false; 
    } 

protected override void OnStartup(StartupEventArgs e) 
{ 
    // Get Reference to the current Process 
    Process thisProc = Process.GetCurrentProcess(); 
    if (IsProcessOpen("name of application.exe") == false) 
    { 
     //System.Windows.MessageBox.Show("Application not open!"); 
     //System.Windows.Application.Current.Shutdown(); 
    } 
    else 
    { 
     // Check how many total processes have the same name as the current one 
     if (Process.GetProcessesByName(thisProc.ProcessName).Length > 1) 
     { 
      // If ther is more than one, than it is already running. 
      System.Windows.MessageBox.Show("Application is already running."); 
      System.Windows.Application.Current.Shutdown(); 
      return; 
     } 
     base.OnStartup(e); 
    } 
} 
相關問題