winform实现只能打开一次
2021-04-24 21:29
标签:orm return foreach ret tin log 函数 show mes winform实现只能打开一次 标签:orm return foreach ret tin log 函数 show mes 原文地址:http://www.cnblogs.com/glzgc/p/7940397.html//在程序的main函数中加入以下代码
bool createdNew;
System.Threading.Mutex instance = new System.Threading.Mutex(true, "MutexName", out createdNew);
if (createdNew)
{
Application.Run(new LoginForm());
instance.ReleaseMutex();
}
else
{
Application.Exit();
}
//还可以写成以下形式,一个窗体只能启动一次
Form1 a = new Form1();
bool createdNew;
System.Threading.Mutex instance = new System.Threading.Mutex(true, "MutexName", out createdNew);
if (createdNew)
{
a.ShowDialog();
instance.ReleaseMutex();
}
else
{
a.Close();
}
private static bool HasRunning()
{
Process currentProcess = Process.GetCurrentProcess();
Process[] processCollection = Process.GetProcessesByName(currentProcess.ProcessName);
foreach (Process p in processCollection)
{
if (p.Id == currentProcess.Id) //检查ID是否相同
{
return true;
}
}
return false;
}
//预防程序启动多个
bool newMutexCreated = true;
using (new Mutex(true, Assembly.GetExecutingAssembly().FullName, out newMutexCreated))
{
if (!newMutexCreated)
{
MessageBox.Show("程序已启动!请不要启动多个程序");
System.Environment.Exit(0);
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new frmMain());
}
}