Page 1 sur 1

handle des fenêtres

Publié : dim. 28/mars/2004 16:46
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

Publié : dim. 28/mars/2004 16:52
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 ?

Publié : dim. 28/mars/2004 16:53
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 :)

Publié : dim. 28/mars/2004 17:04
par Oliv
Non, je n'ai que le handle et il faudrait le nom :cry:

Publié : dim. 28/mars/2004 17:07
par Chris
Avec GetWindowText_(Handle, @Buffer, Longueurdu buffer)

Chris :)

Publié : dim. 28/mars/2004 17:11
par Oliv
Merci :D

Publié : dim. 28/mars/2004 19:04
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()

Publié : dim. 28/mars/2004 20:12
par Oliv
merci :D

Publié : jeu. 01/avr./2004 1:55
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 :)