Page 1 sur 1

Rechercher une fenêtre par son titre, ou une partie du titre

Publié : mer. 08/mars/2006 10:50
par Flype
Ce code permet de trouver une fenêtre en spécifiant son titre ou au moins juste une partie du titre.
Dans cette version le texte du titre n'est pas sensible à la casse.
Elle renvoie 0 si aucune fenetre ne correspond ou le handle (hWindow) de la première fenêtre trouvée. (attention PB4 mais c'est convertible).

Code : Tout sélectionner

Procedure.l FindWindowEx(*hWnd,*Param)
  bufLen.l = GetWindowTextLength_(*hWnd)
  If bufLen
    bufStr.s = Space(bufLen+1)
    If GetWindowText_(*hWnd,@bufStr,bufLen+1)
      If FindString(LCase(bufStr),PeekS(PeekL(*Param)),1)
        PokeL(*Param+4,*hWnd) : ProcedureReturn #False
      EndIf
    EndIf
  EndIf
  ProcedureReturn #True
EndProcedure

Procedure.l FindWindow(text.s)
  PokeL(@param.q,@text)
  If EnumWindows_(@FindWindowEx(),@param) = 0
    ProcedureReturn PeekL(@param+4)
  EndIf
EndProcedure

hPureBasic = FindWindow("basic")
If hPureBasic
  SendMessage_(hPureBasic,#WM_SYSCOMMAND,#SC_MINIMIZE,0)
  Delay(500)
  SendMessage_(hPureBasic,#WM_SYSCOMMAND,#SC_MAXIMIZE,0)
EndIf

Publié : jeu. 21/août/2008 14:27
par gildev
Je sais que ça fait plus de 2 ans que ce post est refroidi, mais j'ai pour habitude de remercier ceux qui me permettent d'avancer, directement ou indirectement.

Donc merci Flype pour ce code car ça m'évite de chercher. :wink: