Найти существующий экземпляр приложения Office

Есть ли способ получить существующий экземпляр MS Publisher как Microsoft.Office.Interop.Publisher.Application?

Я нашел это:

System.Diagnostics.Process.GetProcessesByName("Microsoft Publisher")

Так что я могу проверить, работает ли он уже, но как преобразовать его в приложение MS Publisher? Так что я могу позвонить Microsoft.Office.Interop.Publisher.Application.Open например?

1 ответ

Решение

Вы можете попробовать этот Microsoft getActiveObject. Вот пример.

    object word;
    try
    {
        word = System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
//If there is a running Word instance, it gets saved into the word variable
    }
    catch (COMException)
    {
//If there is no running instance, it creates a new one
        Type type = Type.GetTypeFromProgID("Word.Application");
        word = System.Activator.CreateInstance(type);
    }

Надеюсь, я помог!

Другие вопросы по тегам