' ----------------------------------------------------------
' Déclarations API
Public Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Public Const GW_CHILD = 5
Public Const GW_HWNDNEXT = 2
Public Declare Function GetDesktopWindow Lib "user32" () As Long
' ----------------------------------------------------------
' Fait la liste des fenêtres
' ----------------------------------------------------------
' Parametres
' tabHWnd() est un tableau de Long (de 0 à UBound) qui sera modifié à la sortie de la fonction.
' Il contiendra les handles de toutes les fenetres ouvertes
' ----------------------------------------------------------
Public Sub ListWindows(ByRef tabHWnd() As Long)
Dim CurrWnd As Long
Dim Compteur As Long
' Redimensionne le tableau
ReDim tabHWnd(0) As Long
' On part d'une première fenetre : le bureau (la première n'a pas d'importance)
CurrWnd = GetWindow(GetDesktopWindow(), GW_CHILD)
Compteur = 0
' Tant qu'on a une fenetre
While CurrWnd <> 0
ReDim Preserve tabHWnd(Compteur) As Long
tabHWnd(Compteur) = CurrWnd
Compteur = Compteur + 1
' On prend la fenetre suivante
CurrWnd = GetWindow(CurrWnd, GW_HWNDNEXT)
Wend
End Sub
Le 30/12/2006 par MadMatt : Petit bug daffichage
Seul les admins et l'auteur du code lui même peuvent modifier ce code.