使用windows服务连续运行.exe文件

本文关键字:exe 文件 运行 连续 windows 服务 使用 | 更新日期: 2023-09-27 18:18:18

我想运行一个exe文件,如果这个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);
    }
}

使用windows服务连续运行.exe文件

我想这就是你要找的

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);
    }
}