我有一个C#Windows窗体应用程序,它是手动启动的,然后主要在后台运行。在我的注册表中,该程序设置为处理“dstel”URL协议。也就是说,href="dstel:1234567890"
将成功打开我的程序。
问题是我的程序需要在任何给定时间只运行一个实例。我的研究表明,为了确保多个实例不同时运行,我应该使用互斥锁(由How to check if another instance of the application is running提供)。
假设有效,我现在离开了当有人点击网页上的特殊dstel链接时该做什么。我需要的是如何将命令行输入重定向到我已经运行的应用程序的方法xyz()?
为了清楚起见,我按照以下顺序设想了以下事件:
我有一些可能有用的事情,最值得注意的是使用帮助应用程序或通过WCF设置命名管道。我愿意接受你的任何建议。
谢谢!
答案 0 :(得分:1)
如果为基础应用程序覆盖此类并将其受保护的IsSingleInstance
属性设置为true,则可以覆盖方法OnStartupNextInstance()
,该方法会在程序的后续实例启动时随时调用。 / p>
这应该像你想要的那样做!