Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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# 如何要求正在运行的进程打开文件?_C#_.net_File_Process - Fatal编程技术网

C# 如何要求正在运行的进程打开文件?

C# 如何要求正在运行的进程打开文件?,c#,.net,file,process,C#,.net,File,Process,我知道如何在C#中的新进程中启动文件(例如,在NewWord进程窗口中打开.doc文件) 但是,如何在“运行”过程中打开文件?例如,我已经有一个正在运行的Word进程,如何要求它从C#程序打开一个文件 我在网上搜索过,不知道(您可以使用类中的方法获取word的活动/现有实例 其他一切都和创建新单词实例时一样 编辑: 是“”的一部分,因此您需要将此引用添加到项目中 如果您不想使用早期绑定(添加引用),则可以通过后期绑定来实现。您可以查看以下示例:没有通用技术可以为您实现这一点。某些应用程序可能允许

我知道如何在C#中的新进程中启动文件(例如,在NewWord进程窗口中打开.doc文件)

但是,如何在“运行”过程中打开文件?例如,我已经有一个正在运行的Word进程,如何要求它从C#程序打开一个文件


我在网上搜索过,不知道(

您可以使用类中的方法获取word的活动/现有实例

其他一切都和创建新单词实例时一样

编辑:

是“”的一部分,因此您需要将此引用添加到项目中


如果您不想使用早期绑定(添加引用),则可以通过后期绑定来实现。您可以查看以下示例:

没有通用技术可以为您实现这一点。某些应用程序可能允许您从命令行指定额外参数或在某处设置选项

如果您需要特定应用程序的此功能,我建议您为该应用程序寻找API。Word本身的COM API周围有一个托管包装器。

这就是你想要的

ShellExecute是具有所需行为的Win32 API。它隐藏在ProcessStartInfo.UseShellExecute for.NET后面

或在其他情况下:

如果您使用Process.Start(“mydoc.doc”),那么如果存在现有的Word进程,它将被重用。 根据:

如果流程已在运行,则不会启动其他流程。相反,将重用现有流程资源,并且不会创建新的流程组件


你好,Habjan,我想这是为了创建一个新的word进程,但是如何要求“正在运行”的word进程打开一个文件?这是一个创建word依赖项的非常具体的例子。@Phanix:GetActiveObject将使您运行实例。说明:从运行对象表(ROT)中获取指定对象的运行实例@Jonas Van der Aa:你说“创建依赖项”是什么意思?@Jonas:那将是一个毫无意义的观点。目标是让Word打开一个文档。这不是一个对Word的严格依赖吗:)我想你可以用DDE。我认为这就是explorer向运行中的ups发送消息的方式,告诉他们打开一些文件。不是吹毛求疵,但你的意思是“Process.Start就是你想要的”?不是真的。ShellExecute是具有所需行为的Win32 API。它就隐藏在.NET的
ProcessStartInfo.UseShellExecute
后面;我明确地把它称为ShellExecute,这样我就不去了unnoticed@sehe是的,就像那样:等等等等。这就是你想要的。炮弹。。。我提到过ShellExecute吗?这是正确的。每个应用程序都有不同的功能。查找DDE并开始在注册表中查找不同的文件类型,以查看命令通常的样子。
Word.Application wordApp = (Word.Application)Marshal.GetActiveObject("Word.Application");