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
Vous devez vous connecter pour publier un commentaire.
Vous pouvez modifier le SQL pour lire
Select Name, ProcessID FROM Win32_Process
Ensuite dans ta Boucle For, pour obtenir le nom de la
Process.Properties_("Name").value
etProcess.Properties_("ProcessID").value
en cas de besoin.OriginalL'auteur JNevill