我有一个 C# 应用程序,它在启动时显示登录表单,并在用户通过身份验证后显示主表单。我使用 Mutex 来限制我的应用程序只能运行一个实例。而且,这仅适用于登录表单。显示主表单后,它不会限制用户重新打开登录表单。我正在寻找一种解决方案,一旦主窗体已经打开,登录屏幕就无法显示。
这是我的 Program.cs
[STAThread]
static void Main()
{
bool mutexCreated=true;
using (Mutex mutex = new Mutex(true, "eCS", out mutexCreated))
{
if (mutexCreated)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Login());
}
else
{
Process current = Process.GetCurrentProcess();
foreach (Process process in Process.GetProcessesByName(current.ProcessName))
{
if (process.Id != current.Id)
{
XtraMessageBox.Show("Another instance of eCS is already running.", "eCS already running", MessageBoxButtons.OK, MessageBoxIcon.Information);
SetForegroundWindow(process.MainWindowHandle);
break;
}
}
}
}
}