1:
//在写一些服务型的软件的时候,你可能不希望一个操作系统里有两个副本在运行,这样也许会扰乱你的操作。这时,你就需要限制程序的副本。下面的这个方法,很简单的就可以实现上述功能。 using System; using System.Collections.Generic; using System.Windows.Forms; using System.Diagnostics; namespace TestProcessCount { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { int processCount = 0; Process[] pa = Process.GetProcesses();//获取当前进程数组。 foreach (Process PTest in pa) { if (PTest.ProcessName == Process.GetCurrentProcess().ProcessName) { processCount += 1; } } if (processCount > 1) { //如果程序已经运行,则给出提示。并退出本进程。 DialogResult dr; dr = MessageBox.Show( Process.GetCurrentProcess().ProcessName+"程序已经在运行!", "退出程序", MessageBoxButtons.OK, MessageBoxIcon.Error);//可能你不需要弹出窗口,在这里可以屏蔽掉 return; //Exit; } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new frmBrowser()); } } }
2:
//保证同时只有一个客户端在运行 //System.Threading.Mutex mutexMyapplication = new System.Threading.Mutex(false, "OnePorcess.exe"); //if (!mutexMyapplication.WaitOne(100, false)) //{ // MessageBox.Show("程序" + Application.ProductName + "已经运行!", Application.ProductName, // MessageBoxButtons.OK, MessageBoxIcon.Error); // return; //}