Heute stellen wir Ihnen die EnumChildWindows API-Funktion vor, mit der sich schnell alle Child-Windows eines bestimmten Parent-Windows ermitteln lassen. Hinweis: Fügen Sie nachfolgenden Code in ein Modul ein: Option Explicit ' benötigte API-Deklarationen Public Declare Function EnumChildWindows Lib "user32.dll" ( _ ByVal hWndParent As Long, _ ByVal lpEnumFunc As Long, _ ByVal lParam As Long) As Long Private Declare Function GetWindowTextLength Lib "user32.dll" _ Alias "GetWindowTextLengthA" ( _ ByVal hwnd As Long) As Long Private Declare Function GetWindowText Lib "user32.dll" _ Alias "GetWindowTextA" ( _ ByVal hwnd As Long, _ ByVal lpString As String, _ ByVal nMaxCount As Long) As Long Private Declare Function GetClassName Lib "user32.dll" _ Alias "GetClassNameA" ( _ ByVal hwnd As Long, _ ByVal lpClassName As String, _ ByVal nMaxCount As Long) As Long ' Diese Prozedur wird für jedes Child-Window aufgerufen Public Function EnumProc(ByVal hwnd As Long, ByVal lParam As Long) As Long Dim Retval As Long Dim WindowText As String Dim WindowClass As String On Error GoTo ErrHandler ' Fenstertext ermitteln WindowText = Space$(GetWindowTextLength(hwnd) + 1) Retval = GetWindowText(hwnd, WindowText, Len(WindowText)) WindowText = Left$(WindowText, Retval) ' Fensterklasse ermitteln WindowClass = Space(256) Retval = GetClassName(hwnd, WindowClass, Len(WindowClass)) WindowClass = Left$(WindowClass, Retval) ' Fenstertext und -klasse in der ListBox anzeigen With Form1.List1 .AddItem CStr(hwnd) & " # " & WindowClass & " # " & WindowText End With ' nächstes Child-Window ermitteln EnumProc = 1 Exit Function ErrHandler: WindowText = Space$(256) Resume Next End Function Platzieren Sie nun auf der Form (Form1) ein ListBox-Control (List1) und fügen nachfolgenden Code in das Form_Load Event ein: Private Sub Form_Load() ' alle Child-Windows ermitteln und in der ' ListBox anzeigen EnumChildWindows Me.hwnd, AddressOf EnumProc, 0 End Sub Beim Starten des Projekts werden jetzt alle Child-Windows (in unserem Fall nur die ListBox) in der Liste angezeigt. Dieser Tipp wurde bereits 14.302 mal aufgerufen.
Anzeige
![]() ![]() ![]() (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevWizard für VB5/6 ![]() Professionelle Assistenten im Handumdrehen Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Tipp des Monats ![]() Dieter Otter Beliebige Zeichen am Anfang und Ende eines Strings entfernen Mit der Trim-Funktion lassen sich nicht nur Leerzeichen, sondern bei Bedarf auch beliebige Zeichen entfernen. Access-Tools Vol.1 ![]() Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |