Я пытаюсь получить текущую запущенную версию Outlook или запустить Outlook на случай он не работает , но у меня возникают некоторые проблемы с получением или созданием объекта Outlook Application в Windows 7. Я думаю, это как-то связано с ограничительными правами пользователя в Vista и 7. Я работаю с Outlook 2010.
редактировать: Эти ошибки появляются только в том случае, если у меня уже запущен экземпляр Outlook 2010. Если Outlook не запущен, приложение может работать без сбоев (оно может запускать экземпляр Outlook самостоятельно).
Если кто-нибудь может сказать мне, как правильно получить версию приложения Outlook, это будет действительно полезно.
Код Я использую длинный блок try-catch, который продолжает запускать исключения:
try
{
// create an application instance of Outlook
oApp = new Microsoft.Office.Interop.Outlook.Application();
}
catch(System.Exception ex)
{
try
{
// get Outlook in another way
oApp = Marshal.GetActiveObject("Outlook.Application") as Microsoft.Office.Interop.Outlook.Application;
}
catch (System.Exception ex2)
{
// try some other way to get the object
oApp = Activator.CreateInstance(Type.GetTypeFromProgID("Outlook.Application")) as Microsoft.Office.Interop.Outlook.Application;
}
}
Приложение выдает мне следующие исключения:
Когда я пытаюсь создать новый экземпляр приложения Outlook:
Получение фабрики классов COM для компонента с CLSID {0006F03A-0000-0000-C000-000000000046} произошел сбой из-за следующей ошибки: 80080005.
Когда я пытаюсь получить экземпляр приложения Outlook:
Операция недоступна (исключение из HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))
Когда я пытаюсь создать экземпляр с помощью активатора
Получение фабрики класса COM для компонента с CLSID {0006F03A-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80080005.
Спасибо!