如何在.NET中启动MS Office Word而无需使用Add-ins?

6
我正在使用MS Office 2003 PIA从c#创建一个MS Word文档。
ApplicationClass officeApplication = new ApplicationClass();

有没有办法通过这种方法指定不加载任何Office插件?
编辑:
我知道可以通过命令行做到这一点,所以我相信一定有一种从代码中实现的方法。
"C:\Program Files\Microsoft Office\Office11\Winword.exe" /a  
2个回答

6

这段代码卸载了AddIns插件

officeApplication.AddIns.Unload(false);

编辑:

当您需要结合进程启动和使用办公室“应用程序”界面时,您需要使用Marshal.GetActiveObject命令。
示例:

        //startup without plugins
        System.Diagnostics.Process.Start(
            @"Winword.exe",
            @"/a");
        //give a time for startup
        Thread.Sleep(2000);
        //attach to office
        Application officeApplication = (Application)Marshal.GetActiveObject("Word.Application");

有没有办法在一开始就停止它们的加载?我试图避免当客户有很多插件时启动性能受到影响。我需要快速启动 Word,进行一些处理,然后再关闭它。 - Andrew Jackson
你能否使用这行代码从SharePoint位置打开Word文档?例如:System.Diagnostics.Process.Start("winword.exe" "https:\sharepoint.com\documentlibrary\Winword.exe", username, password, domain) - user1166085

2

试试这个

System.Diagnostics.Process.Start(
  @"C:\Program Files\Microsoft Office\Office11\Winword.exe", 
  @"/a");

谢谢,但我特别想使用上述的PIA。 - Andrew Jackson
你能否使用这行代码从SharePoint位置打开Word文档呢?例如:System.Diagnostics.Process.Start("winword.exe", "https:\sharepoint.com\documentlibrary\Winword.exe", username, password, domain); - user1166085
您不能使用Process处理URL。但是SharePoint的URL确实映射到实际文件夹。我看到您的URL包括https。我不是SharePoint的专家,但我认为这意味着该文件夹已加密。如果是这样,您将需要一个解密密钥。 - Mark Ainsworth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接