ref: http://www.jb51.net/article/17747.htm
//在程序的main函數中加入以下代碼 bool createdNew; System.Threading.Mutex instance = new System.Threading.Mutex(true, "MutexName", out createdNew); if (createdNew) { Application.Run(new LoginForm()); instance.ReleaseMutex(); } else { Application.Exit(); } //還可以寫成以下形式,一個窗體只能啟動一次 Form1 a = new Form1(); bool createdNew; System.Threading.Mutex instance = new System.Threading.Mutex(true, "MutexName", out createdNew); if (createdNew) { a.ShowDialog(); instance.ReleaseMutex(); } else { a.Close(); }
private static bool HasRunning() { Process currentProcess = Process.GetCurrentProcess(); Process[] processCollection = Process.GetProcessesByName(currentProcess.ProcessName); foreach (Process p in processCollection) { if (p.Id == currentProcess.Id) //檢查ID是否相同 { return true; } } return false; }