1. 控制.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);
                }               
            }            
        }
    }


2. 给.exe传参数

窗体.cs文件中

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


原文地址:http://www.cnblogs.com/geqinggao/archive/2012/07/04/2575708.html