1、C#如何让同一个窗口只能打开一次
public Form2()
{
InitializeComponent();
}
private static Form2 f2 = new Form2();
public static Form2 getf2()
{
if (f2.IsDisposed)
{
f2 = new Form2();
return f2;
}
else
{
return f2;
}
}
form1中的
private void button1_Click(object sender, EventArgs e)
{
Form2.getf2().Show();
Form2.getf2().Activate();
}
//=====创建互斥体法:=====
//bool blnIsRunning;
//Mutex mutexApp = new Mutex(false, Assembly.GetExecutingAssembly().FullName, out blnIsRunning);
//if (!blnIsRunning)
//{
// MessageBox.Show("程序已经运行!", "提示",
// MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
// return;
//}
2、一个程序只能运行一个
//=====判断进程法:(修改程序名字后依然能执行)=====
Process current = Process.GetCurrentProcess();
Process[] processes = Process.GetProcessesByName(current.ProcessName);
foreach (Process process in processes)
{
if (process.Id != current.Id)
{
if (process.MainModule.FileName
== current.MainModule.FileName)
{
MessageBox.Show("程序已经运行!", Application.ProductName,
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
}
}