ProcessHelper.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace MainForm.ClassFile.XiaomiClass
  8. {
  9. public class ProcessHelper
  10. {
  11. Process pro = new Process();
  12. ProcessHelper(string FileName, string Arguments)
  13. {
  14. if (System.IO.File.Exists(FileName))
  15. {
  16. pro.StartInfo.FileName = FileName;
  17. pro.StartInfo.Arguments = Arguments;
  18. pro.Start();
  19. }
  20. }
  21. public void Close()
  22. {
  23. // 这里是资源释放代码
  24. try
  25. {
  26. pro.Kill();
  27. }
  28. catch
  29. {
  30. }
  31. }
  32. /// <summary>
  33. /// 启动其他程序
  34. /// </summary>
  35. /// <param name="FileName">需要启动的外部程序名称</param>
  36. /// <param name="Arguments">一个文件夹路径</param>
  37. public bool OpenPress(string FileName, string Arguments)
  38. {
  39. pro = new Process();
  40. if (System.IO.File.Exists(FileName))
  41. {
  42. pro.StartInfo.FileName = FileName;
  43. pro.StartInfo.Arguments = Arguments;
  44. pro.Start();
  45. return true;
  46. }
  47. return false;
  48. }
  49. /// <summary>
  50. /// 启动包含路径的某exe
  51. /// </summary>
  52. /// <param name="FileName"></param>
  53. public void StartPress(string FileName)
  54. {
  55. ProcessStartInfo info = new ProcessStartInfo();
  56. info.FileName = FileName;
  57. info.Arguments = "";
  58. //指定程序运行状态,最大化、最小化等
  59. info.WindowStyle = ProcessWindowStyle.Maximized;
  60. pro = Process.Start(info);
  61. pro.WaitForExit();
  62. }
  63. /// <summary>
  64. /// 关闭程序
  65. /// </summary>
  66. /// <param name="name"></param>
  67. public void ClosePress(string name)
  68. {
  69. //获得任务管理器中的所有进程
  70. Process[] process = Process.GetProcesses();
  71. foreach (Process p1 in process)
  72. {
  73. try
  74. {
  75. string processName = p1.ProcessName.ToLower().Trim();
  76. //判断是否包含阻碍更新的进程
  77. if (processName == name)
  78. {
  79. p1.Kill();
  80. }
  81. }
  82. catch { }
  83. }
  84. }
  85. }
  86. }