控制.exe重复打开,以及给.exe传参数

static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            if (args.Length==0)
            {
                bool bExist;
                Mutex myMutex = new Mutex(true, "任务管理器→应用程序中.exe的名称", out bExist);
                if (bExist)
                {
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run(new 窗体构造函数());
                }
                else
                {
                    MessageBox.Show("You can only one instance of this application!", "任务管理器→应用程序中.exe的名称", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else//自动
            {
                bool bExist;
                Mutex myMutex = new Mutex(true, "任务管理器→应用程序中.exe的名称", out bExist);
                if (bExist)
                {
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run(new 窗体构造函数(args));
                }
                else
                {
                    MessageBox.Show("You can only one instance of this application!", "任务管理器→应用程序中.exe的名称", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }              
            }           
        }
    }

//==============================================

窗体.cs文件中

string[] args = null;

public 窗体构造函数名(string[] args)
        {
            InitializeComponent();
            this.args = args;
        }

原文地址:https://www.cnblogs.com/gerryge/p/2575708.html