Я пытаюсь получить текущую текущую версию Outlook или запустить Outlook, если она не работает, но у меня возникают некоторые проблемы с получением или созданием объекта приложения Outlook в 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-класса factory для компонента с CLSID {0006F03A-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80080005.
Когда я пытаюсь получить экземпляр приложения Outlook:
Операция недоступна (Исключение из HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))
Когда я пытаюсь создать экземпляр с помощью активатора
Извлечение COM-класса factory для компонента с CLSID {0006F03A-0000-0000-C000-000000000046} не удалось из-за следующей ошибки: 80080005.
Спасибо!