none
Microsoft Interop Excel RRS feed

  • Question

  • J 'utilise Microsoft Interop Excel dans une application VB (Visual Studio 10).

    Quand je quitte le fichier Excel nouvellement créé (xlApp.Quit, xlApp = Nothing), je voudrais qu'il n'y en ait plus trace dans le Gestionnaire des Tâches sous Windows... Hélas ça n'arrive que quand je quitte L'application VB... Est-ce réalisable ?

    vendredi 26 février 2016 15:15

Toutes les réponses

  • Bonjour,

    Ce problème est connu et arrive par exemple lorsque qu'une des méthodes est mal qualifiée et que l'objet enfant de l'application n'a pas ou a mal terminé ce que vous lui aviez demandé de faire.

    Typiquement, un On Error Resume Next qui est encore valable sous VS10 peut être employé à mauvais escient.

    Donc même le Quit et le Nothing n'y feront rien...

    Dans l'absolu, vous pouvez via Interrop utiliser l'API un TerminateProcess() ou mieux, System.Diagnostics.Process :

        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Me.txtProcessName.Text = "EXCEL"
        End Sub
    
        Private Sub cmdKillProcess_Click(sender As System.Object, e As System.EventArgs) Handles cmdKillProcess.Click
            If KillProcess(Me.txtProcessName.Text) Then
                MsgBox(Me.txtProcessName.Text & " n'est plus instancié.", 64)
            End If
        End Sub
    
        Private Function KillProcess(ByVal ProcessName As String) As Boolean
            Dim oProcess As System.Diagnostics.Process
            Dim strProcessEXEName As String = ProcessName & ".EXE"
    
            Try
                For Each oProcess In System.Diagnostics.Process.GetProcessesByName(ProcessName)
                    If (oProcess.MainModule.ModuleName.ToUpper().Equals(strProcessEXEName)) Then
                        oProcess.Kill()
                        oProcess.WaitForExit()
                    End If
                Next
                Return True
            Catch ex As Exception
                Return False
            End Try
        End Function



    Argy

    vendredi 4 mars 2016 15:13
    Modérateur