有时候有种需求,一个进程只启动一个,且必须启动一个。
可以创建一个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 }
时间: 2024-09-30 19:56:34