zugehörigen Prozesse aller geöffneten Fenster auflistet.
Dies ist z.B. ganz nützlich, um herauszufinden, ob gewisse Fenster gerade geöffnet sind.
Denn mit dieser Prozedur ist es möglich, sofern das entsprechende Fenster geöffnet ist, dessen charakteristische Klasse und den Titel abzufragen.
Diese Werte können dann an anderer Stelle mit FindWindow_() benutzt werden, ob das Fenster gerade geöffnet ist oder nicht, um darauf (z.B. mit Schließen des Fensters) zu reagieren.
Code: Alles auswählen
Procedure EnumWindows(hWnd,ignore) ;Prozedur, die die Handles der Fenster erhält
Visibility=ShowWindow_(hWnd,#SW_HIDE) ;Durch kurzzeitiges Verstecken herausfinden, ob die Fenster
If Visibility<>0 ;Wenn das Fenster sichtbar war...
ShowWindow_(hWnd,#SW_SHOW) ;...wieder sichtbar machen
title.s=Space(1024)
class.s=Space(1024)
PID.l=0
GetWindowText_(hWnd,@title,1024) ;Fenstertitel auslesen
GetClassName_(hWnd,@class,1024) ;Fensterklasse auslesen
GetWindowThreadProcessId_(hWnd,@PID) ;PID des zugehörigen Prozesses auslesen
Debug "[Title]= "+title+" [hWnd]= "+Str(hWnd)+" [ClassName]= "+class+" [PID]= "+Str(PID) ;Werte ausgeben
EndIf
ProcedureReturn #True ;#True wird von der WinAPI als Rückgabewert benötigt
EndProcedure
EnumWindows_(@EnumWindows(),0) ;API, die die Handles von allen Fenstern an die Funktion EnumWindows() übergibt