Отключение iTunes COM

В настоящее время я работаю с iTunes COM с .NET, и что-то, с чем я столкнулся ранее, что помешало мне его использовать, произошло снова, и я не могу понять это.

Когда я закрываю iTunes во время или после закрытия моей программы, он говорит мне, что что-то все еще использует «Интерфейс сценариев приложений», COM все еще подключен.

Это то, что у меня есть (удалил то, что не требуется)

    Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
         AddHandler itunes.OnAboutToPromptUserToQuitEvent, AddressOf itunes_OnAboutToPromptUserToQuitEvent
    End Sub

    Private Sub itunes_OnAboutToPromptUserToQuitEvent()
        System.Runtime.InteropServices.Marshal.ReleaseComObject(itunes)
    End Sub

Таким образом, приведенный выше код отключает COM до такой степени, что мне нужно перезапустить iTunes, чтобы использовать его снова, но он не избавляет от ошибки сценария приложения. Это означает, что мне все еще нужно нажать «Выход» после появления диалогового окна с ошибкой. Все остальное работает нормально, кроме этого.

Любая идея?

-- Я просмотрел другие вопросы, связанные с этой проблемой, но ни один из них не решил ее для меня. Я не уверен, что событие больше не работает с этой текущей версией iTunes, но, похоже, в настоящее время оно не работает в любом случае.


person Laim McKenzie    schedule 20.12.2016    source источник


Ответы (1)


Была такая же проблема с COM и Office, это решило ее;

  While System.Runtime.InteropServices.Marshal.ReleaseComObject(itunes) <> 0
            Application.DoEvents()
        End While
person Rabtok    schedule 01.04.2017