.net 如何将命令行参数传递给已经运行的进程?

.net 如何将命令行参数传递给已经运行的进程?,.net,wcf,.net,Wcf,我正在写一个联系人管理程序。我知道如何读取命令行参数,并根据我的发现执行不同的方法 例如,program.exe“John Doe”将启动程序的新实例并打开它找到的第一个名为John Doe的联系人,program.exe-s John将启动程序的新实例并搜索名为“John”的联系人而只需运行program.exe即可打开并启动一个新的程序实例,并显示一个空白的搜索屏幕 但是,我只想运行该程序的一个实例。因此,当另一个程序调用program.exe“John Doe”时,如果已经有一个进程在运行

我正在写一个联系人管理程序。我知道如何读取命令行参数,并根据我的发现执行不同的方法

例如,
program.exe“John Doe”
将启动程序的新实例并打开它找到的第一个名为John Doe的联系人,
program.exe-s John
将启动程序的新实例并搜索名为“John”的联系人而只需运行
program.exe
即可打开并启动一个新的程序实例,并显示一个空白的搜索屏幕

但是,我只想运行该程序的一个实例。因此,当另一个程序调用
program.exe“John Doe”
时,如果已经有一个进程在运行,参数将传递给该进程并切换到新的搜索,而不是打开新窗口


我知道这需要寻找以前运行过的进程和进程间的通信,但我在.Net中没有做太多工作,在正确的方向上开始或找到任何关于特定主题的好教程方面遇到困难。

这篇文章可能会对您有所帮助。

一种方法是让program.exe托管WCF服务(正如您从标记中猜到的那样)。然后,当使用命令行参数启动另一个实例时,它将是该服务的WCF客户端,并将参数发送到该服务,然后退出。

Visual basic dll有一个WindowsFormsApplicationBase,该应用程序库具有StartupNextInstance事件,在该事件中,您可以获取第二个实例的参数,并且第二个实例可以在检测到其他实例时自杀


这已经被问到了

你是“拥有”program.exe,还是它属于第三方?
program.exe
是我正在编写的程序。只是还没有名字。是的,我拥有它,复制品?我没有找到它。哈桑·汗在下面找到了它。