打开C#windows应用程序的新实例

打开C#windows应用程序的新实例,c#,window,instance,C#,Window,Instance,我在windows环境下工作,需要在运行应用程序时以编程方式打开应用程序的新实例,这可能吗 我非常感谢任何指导或帮助。当然!您已经创建了主项目类的新距离 您必须创建对项目的引用,然后才能创建主窗体 已更新 我错了!我知道您必须从第一个应用程序调用第二个现有应用程序 试试这个: var info = new System.Diagnostics.ProcessStartInfo(Application.ExecutablePath); System.Diagnostics.Process.Star

我在windows环境下工作,需要在运行应用程序时以编程方式打开应用程序的新实例,这可能吗


我非常感谢任何指导或帮助。

当然!您已经创建了主项目类的新距离

您必须创建对项目的引用,然后才能创建主窗体

已更新

我错了!我知道您必须从第一个应用程序调用第二个现有应用程序

试试这个:

var info = new System.Diagnostics.ProcessStartInfo(Application.ExecutablePath);
System.Diagnostics.Process.Start(info );
您可以使用以下方法:

如果您的应用程序需要获取参数:

Process.Start(@"c:\work\myapp\foo.exe", "-a arg1 -b arg2");

对于Winforms应用程序。

您可以使用该方法启动任何应用程序


但是,根据您想做什么,最好直接使用您的一个应用程序中的类,例如。打开另一个应用程序中的窗口。

是的,但绝对不要硬编码路径。(我意识到这可能只是为了举例,但无论如何都值得重复。)@Cody Gray,当然,路径外部化更好。“主项目类”是什么?同样,不要硬编码路径。甚至只是EXE的路径。两个原因:1)EXE的名称可能会更改,如果不进行大量测试,很难检测到由此产生的错误。2) 无法保证在程序执行期间,工作目录始终是应用程序的根目录。您不希望依赖于这种情况。已更改为Application.ExecutablePath在monodevelop中有办法做到这一点吗?没有名为
Application.ExecutablePath
的静态变量如果使用的是Monodevelop,请使用以下代码:
System.Diagnostics.Process.Start(Environment.GetCommandLineArgs()[0])
Process.Start(@"c:\work\myapp\foo.exe", "-a arg1 -b arg2");
System.Diagnostics.Process.Start(Application.ExecutablePath);