创建新的/重用应用程序的实例(Windows,.NET,WPF)

时间:2016-04-27 04:58:40

标签: c# .net wpf windows

我一直在努力解决这个问题超过几个小时,并且无法想出解决方案。

我有一个可以这种方式启动的应用程序:

TestApplication.exe ID={GUID} filename={filename}

如果没有具有相同GUID的应用程序实例,则应使用ID = {GUID}启动新实例,并且应在其中加载指定的文件。

如果应用程序的实例具有相同的GUID,则应询问用户是否要关闭正在处理的文件以及是否确认该文件 - 然后应在运行的实例中打开指定的新文件

有任何想法如何实现这个?

2 个答案:

答案 0 :(得分:0)

使用Mutex。看到这个问题的第一个答案: What is the correct way to create a single-instance application?

答案 1 :(得分:0)

  

有任何想法如何实现这个?

是。问题回答了。你从不要求我们向我们展示我们的想法。

让我们变得真实。

  • 一种方法是通过窗口标题,但是GUID严重不合理。

  • 因此,请阅读NAMED MUTEXES。您可以使用该标识来识别已在运行的程序。

  • 或者 - 更好的是你必须发送一个信号 - 命名管道。您可以使用GUID注册命名管道。失败:已经存在。这允许新应用程序实际发出旧应用程序的信号,或发送关闭命令。