C#应用程序进程启动和关闭

有时候有种需求,一个进程只启动一个,且必须启动一个。

可以创建一个Windows服务,定时执行。每次执行时查询该应用程序进程的数量,如果没有,则启动一个,如果已启动多个,则只留一个

废话不多说,上代码:

 1  public class Class1
 2     {
 3        public void Main()
 4        {
 5            var obj=System.Diagnostics.Process.GetProcessesByName("Calc").ToList();
 6            if (obj.Count == 0)
 7                StartProcess();
 8            else if (obj.Count == 1)
 9                SystemLog.WriteLogLine("只有一个进程启动,无需操作");
10            else
11                KillProcess();
12                StartProcess();
13        }
14 
15        public void StartProcess()
16        {
17            ProcessStartInfo info = new ProcessStartInfo();
18            info.FileName = @"D:\Calc.exe";
19            info.Arguments = "";
20            info.WindowStyle = ProcessWindowStyle.Minimized;
21            Process pro = Process.Start(info);
22            // pro.WaitForExit();  
23        }
24        public void KillProcess()
25        {
26            Process current = Process.GetCurrentProcess();
27            Process[] processes = Process.GetProcessesByName("Calc");
28            foreach (Process process in processes)
29            {
30                if (process.ProcessName == "Calc")
31                    process.Kill();
32            }   
33        }
34     }

 

posted @ 2017-05-05 16:28  枫林余晖  阅读(3238)  评论(0编辑  收藏  举报