Program.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using DayOf1440.Utils;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Diagnostics;
  5. using System.Reflection;
  6. using System.Windows.Forms;
  7. namespace DayOf1440
  8. {
  9. static class Program
  10. {
  11. /// <summary>
  12. /// 全局窗体List,便于相互跳转
  13. /// </summary>
  14. public static List<Form> formList = new List<Form>();
  15. /// <summary>
  16. /// The main entry point for the application.
  17. /// </summary>
  18. [STAThread]
  19. static void Main()
  20. {
  21. Process instance = RunningInstance();
  22. if (instance == null)
  23. {
  24. Application.EnableVisualStyles();
  25. Application.SetCompatibleTextRenderingDefault(false);
  26. Application.Run(new MainForm());
  27. }
  28. else
  29. {
  30. // MessageBox.Show("程序已经在运行", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  31. }
  32. }
  33. public static Process RunningInstance()
  34. {
  35. // 获取当前活动的进程
  36. Process current = Process.GetCurrentProcess();
  37. // 获取当前本地计算机上指定的进程名称的所有进程
  38. Process[] processes = Process.GetProcessesByName(current.ProcessName);
  39. foreach (Process process in processes)
  40. {
  41. // 忽略当前进程
  42. if (process.Id != current.Id)
  43. {
  44. if (Assembly.GetExecutingAssembly().Location.Replace("/", "\\") == current.MainModule.FileName)
  45. {
  46. return process;
  47. }
  48. }
  49. }
  50. // 如果没有其他同名进程存在,则返回 null
  51. return null;
  52. }
  53. /// <summary>
  54. /// 是否UWP应用
  55. /// </summary>
  56. public static readonly bool IsUWP = ProcessHelper.IsRunningAsUWP();
  57. }
  58. }