Закрыть приложение Outlook

Вполне возможно, что этот вопрос задавался (много раз) раньше, но я не могу найти решение.

У меня есть программа, которая отправит письмо. Код выглядит примерно так:

Dim oApp As Interop.Outlook.Application = Nothing
While oApp Is Nothing
    Try
        oApp = New Interop.Outlook.Application
    Catch ex As Exception
        oApp = Nothing
        Dim result As Integer = MessageBox.Show("Outlook is already running, close Outlook and click OK to continue sending this email or click Cancel to skip sending this email.", "Outlook", MessageBoxButtons.OKCancel)
        If result = DialogResult.Cancel Then
            Exit Sub
        End If
    End Try
End While

Все идет нормально. Пользователь вынужден закрыть Outlook, чтобы использовать приложение Outlook. Когда это сделано, я делаю это:

Dim eMail As Interop.Outlook._MailItem
eMail = oApp.CreateItem(Interop.Outlook.OlItemType.olMailItem)

'To who?
eMail.To = "person@domain.com"

'Sbuject
eMail.Subject = "Foo"

'Message
Dim message As String = "Bar"
eMail.HTMLBody = message

'Send
eMail.Send()

Работает как обаяние, но когда это сделано, у меня в трее появляется маленькая иконка, которая говорит меду, что outlook запущен, и если я пытаюсь открыть свой клиент Outlook, я получаю сообщение, что Outlook уже запущен. Мне нужно нажать на иконку в трее, чтобы закрыть, прежде чем я смогу использовать клиент. Как закрыть это приложение из моего кода при отправке почты?

Я попробовал это без успеха:

oApp.Quit()
oApp.Application.Quit()
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(oApp)
oApp = Nothing

Любая помощь приветствуется.

0 ответов

Другие вопросы по тегам