winform 防止多開

 場景:

當我們的電腦可以使用多用戶同時登錄時候,每個使用者只允許執行一次exe程式。

例如:一台公用電腦,有多個用戶A、B。

用戶A進入系統第一次運行C:\XX.exe,OK。第二次運行XX.exe提醒“已經重複開啟”。

用戶B進入系統第一次運行C:\XX.exe,OK。第二次運行XX.exe提醒“已經重複開啟”。

 

VB.NET代碼,放在mdi主窗體

   Dim createdNew As Boolean
        Dim instance = New System.Threading.Mutex(True, System.Diagnostics.Process.GetCurrentProcess().ProcessName, createdNew)
        If createdNew Then
            instance.ReleaseMutex()
        Else
            MessageBox.Show("該程序已經啟動,請先關閉!", "系統信息", MessageBoxButtons.OK, MessageBoxIcon.Error)
            Me.Close()
            Application.Exit()
        End If

 

 C#代碼,放在程式啟動的Program.cs

            bool createdNew;
System.Threading.Mutex instance = new System.Threading.Mutex(true, System.Diagnostics.Process.GetCurrentProcess().ProcessName, out createdNew); if (createdNew) { Application.Run ( new Form1() ); instance.ReleaseMutex (); } else { MessageBox.Show ( "已经启动了一个程序,请先退出!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error ); Application.Exit (); }

 

你可能感兴趣的:(WinForm)