【发布时间】:2011-04-11 05:37:54
【问题描述】:
为了防止用户运行我的应用程序的多个实例,我使用以下代码:-
Process[] pArry = Process.GetProcesses();
int nCount = 0;
foreach (Process p in pArry)
{
string ProcessName = p.ProcessName;
ProcessName = ProcessName.ToLower();
if (ProcessName.CompareTo("myApp") == 0)
{
nCount++;
}
}
if (nCount > 1)
{
MessageBox.Show(AppAlreadyRunning,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
Process.GetCurrentProcess().Kill();
}
但是正如我们所知,如果更改 exe 名称,进程名称会更改。 因此,如果用户将“myApp.exe”更改为“UserApp.exe”,此补丁将不起作用! 有什么办法吗?
我在 VS2010 中使用 C#。 谢谢!
【问题讨论】: