C#判断用户是否重复打开当前应用程序¶
用winform写了个程序,希望防止用户重复打开该程序。那么,怎么判断用户有没有重复打开呢?
代码¶
原理就是,遍历当前所有进程,看是否有和自己同名的进程。
public static bool HasMultiInstance()
{
// 获取当前所有进程
Process[] pros = Process.GetProcesses();
// 获取当前进程
Process curPro = Process.GetCurrentProcess();
// 尝试找到同名的其他进程
foreach (Process p in pros)
{
if (p.ProcessName == curPro.ProcessName && p.Id != curPro.Id)
{
return true;
}
}
return false;
}
注意,这里根据Process.ProcessName
来判断两个进程是否“同名”,根据Process.Id
来判断两个进程是否是同一个进程。
本文为kyleblog.cn原创,转载请注明出处:https://www.kyleblog.cn/posts/csharp_duplicated_process
发布日期:2022-09-14 联系作者