C# 使用Microsoft Word在C中打开*.docx#

C# 使用Microsoft Word在C中打开*.docx#,c#,ms-word,C#,Ms Word,在做了一些研究之后,您似乎可以使用Word Interlop来操作Word文档(打开、修改、更改等)。像这样: class Program { static void Main(string[] args) { Application ap = new Application(); Document doc = ap.Documents.Open(@"C:\temp\TestDoc.docx"); doc.Activate();

在做了一些研究之后,您似乎可以使用Word Interlop来操作Word文档(打开、修改、更改等)。像这样:

class Program
{
    static void Main(string[] args)
    {
        Application ap = new Application();

        Document doc = ap.Documents.Open(@"C:\temp\TestDoc.docx");
        doc.Activate();
    }
}
但是这样做的话,带有GUI的MS word应用程序本身并没有显示出来。我怀疑它根本就没有开始。我只能在Windows任务管理器的进程选项卡中看到
WINWORD.EXE
,但在应用程序选项卡中看不到

我想做的是:

  • 启动MS Word应用程序
  • 打开文档
  • 向最终用户显示它,以便他们可以修改/保存它
    我如何才能做到这一点?

    除非您需要控制Word应用程序,否则简单可能就足够了:

     Process.Start(@"C:\temp\TestDoc.docx")
    

    除非您需要控制Word应用程序,否则简单即可:

     Process.Start(@"C:\temp\TestDoc.docx")
    
    改用

    这就是您在这里所需要的,并将产生您所追求的行为。

    请改用


    这就是您在这里所需要的一切,并将产生您想要的行为。

    如果您想继续使用Office Interop,那么我认为您可以在打开文档后将
    应用程序
    实例的
    Visible
    属性设置为true,从而获得所需的内容

    ap.Visible = true;
    

    如果您想继续使用Office Interop,那么我认为您可以通过在打开文档后将
    应用程序
    实例的
    Visible
    属性设置为true来获得所需的内容

    ap.Visible = true;
    

    Word上的这些解决方案与*.docx关联,如果根本没有这种关联(包括OpenOffice),或者Word未安装,会发生什么情况。我需要处理任何异常吗?@PaulL,如果shell找到文件类型的处理程序,我想你不会得到通知。。。埃里克(+1)有你想要的答案。谢谢阿列克谢。你的回答非常直截了当且简单,我选择Eric的解决方案是因为它看起来更健壮。这些解决方案依赖于Word与*.docx关联,如果根本没有这种关联(包括OpenOffice),或者Word没有安装,会发生什么情况。我需要处理任何异常吗?@PaulL,如果shell找到文件类型的处理程序,我想你不会得到通知。。。埃里克(+1)有你想要的答案。谢谢阿列克谢。你的回答非常直接和简单,我选择Eric的解决方案,因为它看起来更健壮。很酷的技巧,谢谢。我尝试了
    ap.Documents。用
    Visible:true
    打开
    ,但不起作用。很酷的技巧,谢谢。我尝试了
    ap.Documents。用
    Visible:true
    打开
    ,但不起作用。感谢编辑Ryan,阅读和理解更容易。感谢编辑Ryan,阅读和理解更容易。