Как запустить MS Office Word из .NET без надстроек? - PullRequest
5 голосов
/ 03 марта 2009

Я использую MS Office 2003 PIA для создания документа MS Word из c #.

ApplicationClass officeApplication = new ApplicationClass();

Можно ли указать, что я не хочу, чтобы какие-либо офисные надстройки загружались этим методом?

EDIT:

Я знаю, что это можно сделать из командной строки, поэтому я почти уверен, что должен быть способ сделать это из кода:

"C:\Program Files\Microsoft Office\Office11\Winword.exe" /a  

Ответы [ 2 ]

6 голосов
/ 04 марта 2009

Этот код выгружает надстройки

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");
2 голосов
/ 04 марта 2009

Попробуйте это

System.Diagnostics.Process.Start(
  @"C:\Program Files\Microsoft Office\Office11\Winword.exe", 
  @"/a");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...