2010-11-10 89 views
0

我已經編寫了一個應用程序,它使用Outlook和Redemption通過IMAP與Exchange服務器執行一些同步操作。它很好,直到它試圖退出。它執行最後一行代碼,這是打印「服務退出」就好了,但該行發生我在Outlook上調用的Application.Quit()調用後的。而Outlook 2010圖標仍然位於任務欄中!強制.IMAP服務退出

我的問題是:我如何強制Outlook關閉(即使以一種快速和骯髒的方式),以便我的應用程序保證退出,而不會掛在那裏等待Outlook完成關閉,有時它永遠不會完成? (它等待用戶右鍵單擊任務欄圖標,並選擇「退出」來代替)

TIA 戴夫 --Trindaz上Fedang#交易所整合

回答

0

我從未使用過贖回,但它似乎是某種有助於以某種方式自動化Outlook的工具,並且每當您自動執行任何Office應用程序時,您都必須小心地正確清除所有內容,否則將留下一個懸掛參考,並且可能無法正常關閉。

因此,除非您使用兌換方式以某種方式改變了某些內容,否則我建議您可能需要致電Marshal.ReleaseComObject對您使用的任何Outlook的任何引用。

爲了能夠做到這一點,你必須要小心,你總是存儲您訪問某處的所有引用,這樣避免做嵌套調用,如:

SomeOutlookObject.SomeInnerOutLookObject.SomeMethod 

,而是做

Object innerObj = SomeOutlookObject.SomeInnerOutLookObject; 
innerObj.SomeMethod 

這樣,您也可以撥打上的ReleaseComObject