Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#使用system.diagnostics process打开现有正在运行的进程的文件_C#_Process - Fatal编程技术网

C#使用system.diagnostics process打开现有正在运行的进程的文件

C#使用system.diagnostics process打开现有正在运行的进程的文件,c#,process,C#,Process,我最初认为这个过程可能会使用现有的过程。但是事实并非如此。以下代码的结果将启动CAD软件的两个单独会话-我需要在CAD软件的一个现有会话中打开多个文件。。我先试了一下: Process.Start(@"C:\Program Files\Autodesk\AutoCAD 2018\acad.exe", "/product \"C3D\" " + @"C:\folder\1.dwg"); Process.Start(@"C:\Program Files\Autodesk\AutoC

我最初认为这个过程可能会使用现有的过程。但是事实并非如此。以下代码的结果将启动CAD软件的两个单独会话-我需要在CAD软件的一个现有会话中打开多个文件。。我先试了一下:

Process.Start(@"C:\Program Files\Autodesk\AutoCAD 2018\acad.exe",
         "/product \"C3D\" " + @"C:\folder\1.dwg");
Process.Start(@"C:\Program Files\Autodesk\AutoCAD 2018\acad.exe",
        "/product \"C3D\" " + @"C:\folder\2.dwg");
然后我做了这个,这很有效。。。但我还是希望在现有进程中打开一个文件。。。我想唯一的办法就是使用互操作。。。但我需要为每个软件应用程序添加互操作

Process.Start(@"C:\Program Files\Autodesk\AutoCAD 2018\acad.exe",
"/product \"C3D\""
+ " " + @"C:\folder\1.dwg"
+ " " + @"C:\folder\2.dwg"
+ " " + @"C:\folder\3.dwg"
);

是的,没错。没有通用的机制要求正在运行的程序加载新文件。大多数程序都不太可能有互操作层。为什么不使用SDK?此外,“我需要为每个软件应用程序添加互操作”-对于不支持同时打开多个文件的程序概念的任何应用程序,您都需要不同的策略。并非所有应用程序,即使是以文档为中心的应用程序,都必须是MDI应用程序。作为一个简单的应用程序示例,您几乎肯定可以访问您面前的应用程序—尝试在一个Visual Studio实例中加载两个不同的解决方案。