互斥对象防止程序多开
private void Form1_Load(object sender, EventArgs e)
{
bool Exist;
System.Threading.Mutex newMutex = new System.Threading.Mutex(true, "仅一次", out Exist);
if (Exist)
{
newMutex.ReleaseMutex();
}
else
{
MessageBox.Show("本程序一次只能运行一个实例!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Close();
}
}
进程检查
private void Form1_Load(object sender, EventArgs e)
{
string moduleName = Process.GetCurrentProcess().MainModule.ModuleName;
string processName = System.IO.Path.GetFileNameWithoutExtension(moduleName);
Process[] processes = Process.GetProcessesByName(processName);
if (processes.Length > 1)
{
MessageBox.Show("本程序一次只能运行一个实例!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Close();
}