如何防止多个应用加载,但允许加载其不同的实例?

时间:2017-08-16 09:34:36

标签: c# .net wpf

我有一个无法多次加载的测试应用程序。它工作正常。

 private void App_OnStartup(object sender, StartupEventArgs e)
        {
    if (Process.GetProcessesByName(currentProcess.ProcessName).Length > 1)
                    {
                            MessageBox.Show("Instance already running", "Warning");
                            Application.Current.Shutdown();
                        }
    }
}

但是,如果单个用户想要使用另一个实例创建此应用程序的快捷方式,该怎么办?例如"Test.exe" 2

enter image description here

此应用程序应该只在“Test.exe 2”启动时加载一次。我在e.Args[0]中收到了这个实例,然后我需要保留它以便与此应用程序的另一个快捷方式进行比较。

所以这就是问题:我该怎么做?如何将现有流程与不同实例的编号进行比较。任何想法都赞赏!

1 个答案:

答案 0 :(得分:1)

您可以使用Mutex阻止应用中的多个实例同时运行,而不管可执行文件的名称或路径如何:

Prevent multiple instances of a given app in .NET?