Je voudrais savoir, dans un programme externe, comment trouver une fenetre enfant (child).
La fonction EnumChildWindows devrait me le permettre, mais je ne sait pas l'utiliser correctement. J'arrive a avoir tout une liste de hndl et de classname, mais comment trouver le nom de la fenetre qui m'interesse ?
Je ne suis pas sur que la fenetre qui s'ouvre soit une nouvelle fenetre ou un messagebox.
Je connais deja le handle du programme.
trouver une fenetre enfant
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
voila un exemple
celui ci permet de rechercher parmis les enfant de "Program manager" (le bureau de window)
ca va te montrer commen ca marche
celui ci permet de rechercher parmis les enfant de "Program manager" (le bureau de window)
ca va te montrer commen ca marche
Code : Tout sélectionner
Global FindWindowName.s, FindWindowFind.l
Procedure FindWindowSearch(hwnd.l, lParam.l)
Protected Tampon.s
Tampon.s = Space(50)
GetClassName_(hwnd, @Tampon, 50)
If Tampon = "WindowClass_0" ; Non de l'objet rechercher
Txt.s = Space(256)
GetWindowText_(hwnd, Txt, 256)
If Txt = FindWindowName
FindWindowFind = hwnd
EndIf
EndIf
ProcedureReturn #True
EndProcedure
Procedure.l FindWindow(Name.s)
; nom = nom de la fenêtre en cours
; valeur de retour de la procedure :
; <> 0 : OK
; = 0 : Le logiciel n'est pas en cours d'exécution
FindWindowFind = 0
FindWindowName = Name
EnumChildWindows_(FindWindow_(0, "Program Manager"), @FindWindowSearch(), 0)
ProcedureReturn FindWindowFind
EndProcedure
FindWindow("Agenda")
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]