ProcessHelper.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System.Diagnostics;
  2. using System.Text.Json;
  3. namespace IES.ExamServer.Helpers
  4. {
  5. public class ProcessHelper
  6. {
  7. /// <summary>
  8. /// 获取所有名为 "conhost.exe" 的进程
  9. /// </summary>
  10. public static void CloseConhost()
  11. {
  12. Process[] conhostProcesses = Process.GetProcessesByName("conhost");
  13. var CurrentProcess = Process.GetCurrentProcess();
  14. var stime = CurrentProcess.StartTime;
  15. if (conhostProcesses.Length == 0)
  16. {
  17. //Console.WriteLine("没有找到 conhost.exe 进程。");
  18. return;
  19. }
  20. // 遍历并关闭每个 conhost.exe 进程
  21. foreach (Process process in conhostProcesses)
  22. {
  23. TimeSpan difference = stime- process.StartTime ;
  24. if (CurrentProcess.ProcessName.Equals(process.ProcessName))
  25. {
  26. if (difference.Seconds>10)
  27. {
  28. continue;
  29. }
  30. try
  31. {
  32. // 关闭进程
  33. process.Kill();
  34. //Console.WriteLine($"已关闭进程 ID: {process.Id},{process.MachineName},{process.ProcessName}");
  35. }
  36. catch (Exception ex)
  37. {
  38. //Console.WriteLine($"无法关闭进程 ID: {process.Id}, 错误: {ex.Message}");
  39. }
  40. }
  41. }
  42. //Console.WriteLine("操作完成。");
  43. }
  44. }
  45. }