【发布时间】:2017-08-16 09:34:35
【问题描述】:
我有一个无法多次加载的测试应用程序。它工作正常。
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
这个应用程序应该只加载一次,当它像“Test.exe 2”一样启动时。我在e.Args[0] 中收到了这个数量的实例,然后我需要保留它以与此时此应用程序的另一个快捷方式进行比较。
那么问题来了:我该怎么做?如何将现有进程与不同实例的编号进行比较。任何想法表示赞赏!
【问题讨论】:
-
@ASh 除了使用互斥锁还有其他方法吗,你觉得如何?
-
为什么叫它“实例号”?这只是一个命令行参数。无论如何检查进程名称也没有意义,用户可以复制您的应用程序并重命名可执行文件。