该代码能实现同一个exe程序只能打开一个,不能同时打开。
在Program.cs文件中的Main方法中进行写入
//获取当前进程的ID
int pId = Process.GetCurrentProcess().Id;
bool isRun = false;
foreach (Process p in Process.GetProcessesByName("TrainDemo"))//TrainDemo为应用程序名称,在任务管理器中可查看应用程序名称
{
//取得当前程序的进程,进行比较
if (System.Reflection.Assembly.GetExecutingAssembly().Location.ToLower() == p.MainModule.FileName.ToLower())
{
if (pId != p.Id)
{
isRun = true;
break;
}
}
}
if (isRun == true)
{
MessageBox.Show("另一个应用已启动,请勿重复开启");
Application.Exit();
return;
}