【轉】winform 程序實現一次只能打開一個該程序


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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM