2014-02-21 145 views
1

我有一個情況,我有一個應用程序使用OUTLOOK發送郵件,問題是,當我試圖從管理員打開的應用程序發送郵件時,它會拋出異常如何關閉其他用戶打開的Outlook應用程序

Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).

有沒有什麼辦法可以通過編程來解決它?

回答

2

您可以撥打Process.GetProcessesByName()傳遞OUTLOOK或任何實際進程名稱。

這會爲您提供一個過程數組。然後,您可以遍歷其中每一個,並檢查啓動該過程的用戶。如果用戶不是您想要的用戶,您可以致電Process.Kill()並終止該過程。

獲取用戶可能會很棘手,您可以使用WMI(您也可以使用WMI列出進程)。

檢查此答案here獲取用戶名。

但是我會重新思考你如何發送郵件。我希望作爲用戶的最後一件事是看着我的Outlook消失,因爲您的應用程序正在嘗試發送電子郵件。

+0

正是我要說的。 –

+0

我的最終目標是通過outlook發送郵件,但windows不允許訪問outlook,因爲它是由其他用戶打開的。有沒有解決方案。 – Nkn

相關問題