C# WinForm中如何让当前应用程序只允许启动一个实例

时间:2022-08-29 19:31:13

我们在WinForm开发中,很多情况下是需要只允许让用户运行一个实例,那么代码其实很简单。只需要修改Program.cs文件,代码如下

 static class Program
{


/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
//Application.EnableVisualStyles();
//Application.SetCompatibleTextRenderingDefault(false);
//Application.Run(new Fm_Login());
bool noRun;
//判断是否已经有需要运行一个实例,如果系统没有,则运行一个
using (System.Threading.Mutex m = new System.Threading.Mutex(true, Application.ProductName, out noRun))
{
if (noRun)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(
false);
Form Login
= new Fm_Login();
Login.ShowDialog();
//显示登陆窗体
if (Login.DialogResult == DialogResult.OK)
{
Application.Run(
new Fm_main());
}
//判断登陆成功时主进程显示主窗口
else return;
}
else {
MessageBox.Show(
"目前已有一个程序在运行,请勿重复运行程序","提示");
}
}

}
}