'---------------------------------------------------------------------------------------
' Procedure : ListThreadsFromProcessID
' DateTime : 23/11/2006 15:50
' Author : Vb System Library
' Purpose : Fait la liste de tous les threads du processus
' Params : ProcessID : ID du processus créateur des threads
' tabThreadID() : Tableau contenant la liste des ID des threads
'---------------------------------------------------------------------------------------
Public Sub ListThreadsFromProcessID(ByVal ProcessID As Long, ByRef tabThreadID() As Long)
Dim hSnapshot As Long
Dim Thread As THREADENTRY32, Compteur As Long
ReDim tabThreadID(0) As Long
Compteur = 0
' On crée une capture des threads du système
hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, ProcessID)
Thread.dwSize = Len(Thread)
' On prend le premier
If Thread32First(hSnapshot, Thread) Then
Thread.dwSize = Len(Thread)
' On parcourt tous les threads existants
Do
' Si le thread a bien processId pour processus parent, on le liste
If Thread.th32OwnerProcessID = ProcessID Then
ReDim Preserve tabThreadID(Compteur) As Long
' On le liste
tabThreadID(Compteur) = Thread.th32ThreadID
Compteur = Compteur + 1
End If
Loop While Thread32Next(hSnapshot, Thread)
End If
CloseHandle hSnapshot
End Sub
Seul les admins et l'auteur du code lui même peuvent modifier ce code.