我試圖獲取當前運行的Outlook版本,或者在未運行Outlook的情況下啓動Outlook,但我在獲取或創建Outlook應用程序時遇到了一些問題對象在Windows 7中。我認爲這與在Vista和7中限制用戶權限有關。我正在使用Outlook 2010.在Windows 7中獲取/創建Outlook應用程序
編輯:這些錯誤只會出現,如果我已經有一個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應用實例:
Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005.
當我試圖讓Outlook應用實例:
Operation unavailable (Exception from HRESULT: 0x800401E3 (MK_E_UNAVAILABLE))
當我試圖通過激活
Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005.
感謝您創建一個實例!
安德烈我也有同樣的問題。你是如何解決它的?在我的情況下,即使未手動打開Outlook,它也會出現此錯誤「檢索具有CLSID {0006F03A-0000-0000-C000-000000000046}的組件的COM類工廠失敗,原因如下:80080005.」 – ANP 2011-10-13 09:28:17
ANP,從我記得,這個錯誤被觸發是因爲我運行的是Outlook和以不同的用戶權限訪問Outlook的應用程序。對我而言,這是因爲我以管理員權限運行Visual Studio,並試圖檢索以普通權限(而不是管理員權限)啓動的Outlook。無論是那個還是那裏都存在一個我無法訪問的掛起的Outlook進程,因爲它是由另一個應用程序實例啓動的。 – Andrei 2011-10-13 15:28:40
哇!感謝分享這個。對於相同的錯誤代碼,我有一個完全不同的問題,這很可能是確切的問題! – Keng 2013-01-28 19:34:41