判断程序是否已启动

方法1:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Diagnostics;
namespace MonitorHardDisk
{
    static class Program
    {
        private static System.Threading.Mutex mutex;
        /// 
        /// 应用程序的主入口点。
        /// 
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            mutex = new System.Threading.Mutex(true, "OnlyRun");
            if (mutex.WaitOne(0, false))
            {
                Application.Run(new Form1());
            }
            else
            {
                MessageBox.Show("程序已经在运行!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                Application.Exit();
            }
        }
    }
}
方法2:
            #region 禁止多进程启动控制
            bool b;
            Mutex m = new Mutex(true, "PharmeyesDDIWinUIThreadCs", out b);
            int i = 0;
            foreach (System.Diagnostics.Process p in System.Diagnostics.Process.GetProcesses())
            {
                if ("Pharmeyes.DDI.WinUI".ToLower().Equals(p.ProcessName.ToString().ToLower()))
                {
                    i++;
                }
            }
            if (!b || i > 1)
            {
                log.Info(string.Format("程序在系统进程中已存在!...................................."));
                return;
            }
            #endregion











你可能感兴趣的:(Winform)