我找到了几种创建单实例WinForms应用程序的解决方案。我正在使用C#,目前我有三个工作版本。但是,每个版本都缺少我需要的功能。
程序必须只运行一次,使用新的命令参数更新它的视图(显示文件),并在发生这种情况时不获得焦点。
我添加了对VB dll的引用的版本会使用我想要加载的新文档进行更新,但它会获得焦点。这方面的一些例子有一行明确告诉窗口转到行的前面。我的代码没有这个。我的代码与this article中的第一个示例非常相似。
当已经有版本运行时,互斥锁版本会停止。 (我还没有尝试合并版本来处理正在运行的实例。)我的代码类似于this。
并且,命名的实例版本没有获得焦点(好)但不识别新的命令行参数。我的代码类似于this。
这些项目中的每一项都有一个解决方案可以完成我需要的工作,而不是所有这些解决方案。