[英]Outlook 2003 mail window freezes on click of Send button
我用VSTO + VS 2008開發了一個Outlook 2003插件。
有一個VB 6應用程序可創建Outlook郵件實例,將其附加到文檔中,並顯示給用戶發送。
當用戶單擊“發送”按鈕時,郵件窗口將凍結。 它僅在生產機器上發生。
VB6代碼如下:
Private Sub Command1_Click()
Dim objOlApp As New Outlook.Application
Dim objMailItem As Outlook.MailItem
Dim objAttachments As Attachments
Dim arrFilesToAttach(1) As String
Set objOlApp = New Outlook.Application
Set objMailItem = objOlApp.CreateItem(olMailItem)
Set objAttachments = objMailItem.Attachments
arrFilesToAttach(0) = Text1.Text
For l = 0 To 0
strTemp = arrFilesToAttach(l)
If strTemp <> "" Then
objAttachments.Add arrFilesToAttach(l)
End If
Next
objMailItem.Display True
Set objOlApp = Nothing
Set objMailItem = Nothing
Set objAttachments = Nothing
End Sub
看看是否是我的插件正在創建一個問題。 我創建了一個簡單的Outlook加載項,並向try ... catch塊內的啟動事件添加了一些文件IO代碼。 我禁用了以前的插件,並安裝了這個新的示例插件。
結果令人驚訝,樣本加載項也產生了問題。 它將示例加載項的注冊表中的LoadBehaviour更改為2。 try ... catch塊未捕獲異常。 我已經為Appdomain的unhandledException添加了一個處理程序,但是也不會被觸發。
請幫助...預先感謝。
如果Outlook將您的插件的負載行為更改為2,則通常意味着在加載過程中有關該插件的某些操作出現故障,而Outlook則將其禁用。
加載項可能在加載時發生故障的所有種種原因(缺少引用的dll,權限等),所以這是一個問題。
要確定您的插件是否掛斷了發送過程,只需禁用您的插件即可(例如,將loadbehavior設置為0)。 並非真的需要為此創建示例插件。
如果禁用外接程序后一切正常,但啟用外接程序后失敗,則很可能是外接程序出現問題。
那時,我要做的是開始“釋放”代碼塊。
我的意思是我開始注釋掉入口點(或注釋掉所有入口點,並且一次只注釋掉一個注釋)。
例如,如果您在Startup事件中發生了一些事情,請對其進行注釋,重新編譯和測試。 如果沒有失敗,請刪除注釋,然后注釋鏈中其他較高級別的內容。
我也傾向於使用很多日志記錄(通常使用Log4Net,但是您可以使用任何東西)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.