Найти существующий экземпляр приложения 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);
}
Надеюсь, я помог!