Monday, April 11, 2011

How can I start MS Office Word from .NET without Add-ins?

I'm using MS Office 2003 PIA to create a MS Word document from c#.

ApplicationClass officeApplication = new ApplicationClass();

Is there any way to specify that I don't want any office add-ins to be loaded using this method?

EDIT:

I know that one can do this via command line so I'm pretty sure there must be a way to do it from code:

"C:\Program Files\Microsoft Office\Office11\Winword.exe" /a
From stackoverflow
  • Try this

    System.Diagnostics.Process.Start(
      @"C:\Program Files\Microsoft Office\Office11\Winword.exe", 
      @"/a");
    
    Andrew Jackson : Thanks, but I specifically want to use the PIA as above.
  • This code unload the AddIns

    officeApplication.AddIns.Unload(false);
    

    Edited:

    When you need to mix the process start and possibility to use the office "application" interface, you need the Marshal.GetActiveObject command.
    Example :

            //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");
    
    Andrew Jackson : Is there a way to stop them loading in the first place? I'm trying to avoid the startup performance hit when customers have lots of add-ins. I need to start word quickly, do some processing and close it again.
    Avram : @Andrew ,see at my update.
    Andrew Jackson : Ah, Thank you. Thats what I am looking for!

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.