#If VBA7 Then
Private Declare PtrSafe Function GetWindow Lib "user32" (ByVal hwnd As LongPtr, ByVal uCmd As Long) As LongPtr
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As LongPtr, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare PtrSafe Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As LongPtr, ByVal lpString As String, ByVal cch As Long) As Long
#Else
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal uCmd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
#End If
Sub testx()
'Application.EnableEvents = True
Dim fen_Mère&, fen_Fille&, nom$, captext$
Const WM_SETFOCUS As Long = &H7
Const WM_CLOSE As Integer = &H10
nom = Space(100)
captext = String(120, " ")
fen_Mère = FindWindow(vbNullString, "fenetre principale") 'adapter le titre de la fenetre ici
fen_Mère = Application.hwnd 'test avec l'application.hwnd 'directe
GetClassName fen_Mère, nom, 200 'récupération de la classe de la fenetre mère
GetWindowText fen_Mère, captext, 200
'captext = Replace(captext, Chr$(0), vbNullString)
Debug.Print " fenetre mère " & fen_Mère & " classe --->" & Trim(nom) & " caption--->" & Trim(captext)
fen_Fille = GetWindow(fen_Mère, 5) 'on passe a l'etage inferieur (les fenetres enfant)
Do While Not fen_Fille = 0 'on passe en revue les suivantes dans le meme etage
GetClassName fen_Fille, nom, 200 'récupération de la classe de la fenetre fille
nom = Trim(nom)
GetWindowText fen_Fille, captext, 200 ' récupération du texte de la caption de la fenetre fille
captext = Trim(captext)
Debug.Print fen_Fille & " classe--->" & nom & " caption---->" & captext
fen_Fille = GetWindow(fen_Fille, 2) ' on passe a la suivante
Loop
'Conbient de handle arrive dans la console "debug"??????????????????
'LAISSER BLOQUE CE QUI SUIT POUR L INSTANT
'Do While Not fen_Fille = 0'ferme toutes les fenetre fille
'Call SendMessage(fen_Fille, WM_CLOSE, 0, 0)
'DoEvents
'Loop
'Call SendMessage(fen_fille, WM_CLOSE, 0, 0)'laisser bloqué pour l'instant
'Call SendMessage(fen_Mère, WM_SETFOCUS, 0, 0)'laisser bloqué pour l'instant
End Sub