gpt4 book ai didi

c# - 如何切换到特定文档的处理

转载 作者:可可西里 更新时间:2023-11-01 12:00:26 28 4
gpt4 key购买 nike

假设我们有一个文本编辑器应用程序,每个表单运行一个单独的进程。该应用程序是单个文档(即没有选项卡或 MDI)。

我们打开了三个表单,其中包含三个文档,A.txt、B.txt 和 C.txt。现在用户双击桌面上的 B.txt 文件。这将启动相关应用程序的新实例。这个已启动的编辑器实例现在应该退出并聚焦/将已加载此文件的已运行进程置于最前面,这样用户就不会以两种不同的形式加载相同的文档。

我怎样才能最轻松地实现这一点?换句话说,我如何找到哪个进程已经在显示文档?

文件一旦打开就不会被应用程序保持打开状态,因此我不能依靠枚举进程的文件句柄来查找进程。我认为这需要进程之间进行某种形式的通信。理想情况下,我正在寻找 .NET 解决方案,但问题实际上与 Windows 相关/与语言无关。

编辑:我应该提到,出于各种原因,我正在尝试使用单独的进程,而不是在单个进程中运行所有表单。

最佳答案

解决这个问题的一个好方法是使用 Mutex: Run single instance of an application using Mutex

您可以使用当前应用程序名称 + 文件名(或其他名称)打开一个互斥体,然后在它已经打开时切换到该进程。

第二种解决方案是将 WCF 与管道绑定(bind)结合使用。在服务上调用某种“激活”方法以使应用程序自行激活。 This link提供了一些进行进程间通信的方法。

关于c# - 如何切换到特定文档的处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10479095/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com