【问题标题】:How to load MS Word file in new instance?如何在新实例中加载 MS Word 文件?
【发布时间】:2014-11-14 16:57:04
【问题描述】:

我想使用Process.Start()方法在不同的实例中加载word文档。

这是我的代码。

ProcessStartInfo info = new ProcessStartInfo();
info.FileName = @"D:\MyWordFile.doc";
info.Arguments = "/n"; //I have tried like this but it doesn't work
Process p = new Process();
p.StartInfo = info;
p.Start();

好的,我正在尝试保留该过程,直到使用p.WaitForExit() 方法退出文档为止。当没有加载任何单词应用程序时,它工作正常。如果 Word 已经加载到任务管理器中,那么它会引发错误 No process is associated with this object. 我认为这是因为它只是在现有进程中加载​​文档。所以,我想我可以通过在新的 Word 实例中加载我的 Word 文档来解决这个问题。

我还阅读了support 文档并找到了一些允许我在新实例中加载 word 文件的参数。我在ProcessStartInfo.Argument 属性中尝试过/n,但是它不起作用。我认为我在过程中分配参数或分配无效参数时犯了错误。我不知道这里有什么问题。 任何帮助将不胜感激

感谢和问候。

【问题讨论】:

    标签: c# process ms-word command-line-arguments


    【解决方案1】:

    Arguments 参数仅在FileName 是可执行程序时使用。当FileName 参数是文档文件时,使用文件类型关联的命令行(来自注册表)并忽略Arguments 参数。

    你需要构建整个命令行:

    Process.Start("winword", @"/n ""D:\MyWordFile.doc""");
    

    【讨论】:

    • 感谢您的回答,当文件名不包含空格时,它可以在没有双引号的情况下工作,即。 mydoc.doc 但是,如果文件名类似于my doc.doc,那么它将每个单词作为文件名。我也尝试过像"my word.doc" 这样的双引号,但是即使我尝试从Windows 的Run 命令调用它,它也会在同一个实例中加载文档。我正在使用 MS Word 2007。你让我刚刚接近它。 /n 参数不适用于双引号。
    猜你喜欢
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多