Re: [WDx] Comment récupérer le titre d'une fenêtre en second plan

Posté par Anonyme le 1/5/2005 19:19:49
Bonjour,

J'ai pu récupérer sur le site de Cyrille Beaussier le code suivant que j'ai adapté et qui me permet de récupérer la liste des fenêtres présentes en arrière de mon application.
Dans ce code la dernière fenêtre ayant eu le focus ( donc celle que je viens de capturer est toujours la 1ère de la liste à condition que j'élimine 2 noms de fenêtres, "M" et "DEFAULT IME"
Pensez-vous que cette solution est suffisante ou dois-je prendre une autre précaution ?

Cordialement


Lg, Ok sont des entiers
hWnd est un entier
lpString est une chaîne fixe sur 255
WNomLu est une chaîne
hWnd = AppelDLL32("User32", "GetWindow", Handle(), 2)
ListeSupprimeTout(Liste1)
WFenetreCapturee = ""
TANTQUE hWnd <> Handle()
Multitache()
Lg = AppelDLL32("User32", "GetWindowTextLengthA", hWnd)
Ok = AppelDLL32("User32", "GetWindowTextA", hWnd, &lpString, Lg + 1)
SI Ok ALORS
WNomLu = Gauche(lpString,Lg)
SI PAS Majuscule(WNomLu) = "M" ET PAS Majuscule(WNomLu) = "DEFAULT IME" ALORS
ListeAjoute(Liste1,WNomLu)
ListeSelectPlus(Liste1,1)
WFenetreCapturee = Liste1[Liste1]
SORTIR
FIN
FIN
hWnd = AppelDLL32("User32", "GetWindow", hWnd, 2)
SI hWnd = 0 ALORS
SORTIR
FIN
FIN
Info(WFenetreCapturee)

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=12&topic_id=2187&post_id=9130