handle des fenêtres

Programmation d'applications complexes
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

handle des fenêtres

Message par Oliv »

Il me semblait que ça avait été dit dans le musée mais non dnc :
Comment réupérer les handles de fenêtres ouvertes sous windows ? (je crois que ça à aussi été posé sur ce forum par Régis mais bon : quand on a le handle, comment retrouver le nom ?)
Merci
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Régis avait trouvé pour son bi-explorer

Code : Tout sélectionner

  ; On liste les fenêtres ouvertes 
  hWnd.l = FindWindow_( 0, 0 ) 
  While hWnd <> 0 
    If GetwindowLong_(Hwnd, #GWL_STYLE) & #WS_VISIBLE = #WS_VISIBLE 
        Debug hWnd 
    EndIf 
    hWnd = GetWindow_(hWnd, #GW_HWNDNEXT) 
  Wend
Mais comment récupérer les noms ?
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Si tu as au moins le nom ou la classe de la fenêtre, tu peux utiliser FindWindow_() ou FindWindowEx_()

Il doit y avoir d'autres moyens.

Chris :)
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Non, je n'ai que le handle et il faudrait le nom :cry:
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Avec GetWindowText_(Handle, @Buffer, Longueurdu buffer)

Chris :)
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

Merci :D
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Code : Tout sélectionner

Procedure Window()
  hWnd.l = FindWindow_( 0, 0 )
  While hWnd <> 0
    If GetwindowLong_(Hwnd, #GWL_STYLE) & #WS_VISIBLE = #WS_VISIBLE
      ; If GetwindowLong_(Hwnd, #GWL_EXSTYLE) & #WS_EX_TOOLWINDOW <> #WS_EX_TOOLWINDOW
        txt.s = Space(256)
        GetWindowText_(hwnd, txt, 256)
        If txt <> ""
          Debug txt
        EndIf
      ; EndIf
    EndIf
    hWnd = GetWindow_(hWnd, #GW_HWNDNEXT)
  Wend
EndProcedure

Window()
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)]
Oliv
Messages : 2117
Inscription : mer. 21/janv./2004 18:39

Message par Oliv »

merci :D
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

Le Soldat Inconnu>"If GetwindowLong_(Hwnd, #GWL_STYLE) & #WS_VISIBLE = #WS_VISIBLE"

Tu peux enlever le "egal", tu fais justement un test logique & donc c'est implicitement = si le test retourne 1 :)
"Qui baise trop bouffe un poil." P. Desproges
Répondre