場景:
當我們的電腦可以使用多用戶同時登錄時候,每個使用者只允許執行一次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 (); }