C# winform 防止重新打开程序
时间: 2024-10-07 14:04:11 浏览: 36
在C# Winform程序中防止重新打开可以采用以下方法来实现防止多开:
1. **检测并阻止重复运行**[^2]:
```csharp
static class Program
{
// ...
[STAThread]
static void Main()
{
if (IsRunningAlready())
{
MessageBox.Show("该程序已在运行,请勿重复开启。");
return;
}
// 其他程序初始化逻辑...
}
private static bool IsRunningAlready()
{
var processName = Process.GetCurrentProcess().ProcessName;
using (var psi = new ProcessStartInfo("notepad.exe"))
{
psi.UseShellExecute = false;
psi.RedirectStandardError = true;
psi.RedirectStandardOutput = true;
try
{
var process = Process.Start(psi);
process.WaitForExit();
return process.ExitCode == 0; // 如果返回true,表示有进程正在运行
}
catch (Win32Exception)
{
return false;
}
}
}
// ...
}
```
这段代码会在`Main()`方法开始时检查当前是否有同名进程运行,如果有则显示消息框提示用户。
通过这种方法,当尝试再次启动程序时,如果它已经运行,会阻止新实例的创建,避免多开。
阅读全文