VBA Obtenir les noms des programmes et de l'ID de la tâche de processus en cours d'exécution

Comment obtenir les noms des programmes et des Id de tâche de processus en cours d'exécution. shell() retourne l'ID de la tâche de lancé le processus. Similaire, j'aimerais obtenir l'ID de tâche et nom de processus qui sont déjà en cours d'exécution et n'est pas créée par la macro. J'ai trouvé un code qui renvoie programmes de noms, mais sa sortie manque des Id de tâche de l'information :

http://www.vbaexpress.com/forum/archive/index.php/t-36677.html

Sub Test_AllRunningApps()
    Dim apps() As Variant
    apps() = AllRunningApps

    Range("A1").Resize(UBound(apps), 1).Value2 = WorksheetFunction.Transpose(apps)
    Range("A:A").Columns.AutoFit
End Sub

'Similar to: http://msdn.microsoft.com/en-us/library/aa393618%28VS.85%29.aspx
Public Function AllRunningApps() As Variant
    Dim strComputer As String
    Dim objServices As Object, objProcessSet As Object, Process As Object
    Dim oDic As Object, a() As Variant

    Set oDic = CreateObject("Scripting.Dictionary")

    strComputer = "."

    Set objServices = GetObject("winmgmts:\\" _
        & strComputer & "\root\CIMV2")
    Set objProcessSet = objServices.ExecQuery _
        ("SELECT Name FROM Win32_Process", , 48)

    For Each Process In objProcessSet
       If Not oDic.exists(Process.Name) Then oDic.Add Process.Name, Process.Name
    Next

    a() = oDic.keys

    Set objProcessSet = Nothing
    Set oDic = Nothing

    AllRunningApps = a()
End Function
à l'aide de ProcessId à la place du Nom dans le script ci-dessus ne fonctionne pas

OriginalL'auteur Qbik | 2014-10-09