Autor: Peter Haserodt --- Aus Excel VBA - Gruppe:
VerschiedenesFenster und ihre Informationen (API)
Autor: Peter Haserodt - Erstellt: -- - Letzte Revision: --
Fenster und Informationen.
Immer mehr greifen auf Api's zu.
Manchmal ist es gewünscht, alle Fenster aufzulisten und Informationen zu erhalten.
Nachfolgendes Modul listet alle Hauptfenster (Mit Titel) und deren Handle sowie Titel und Klassenname.
Kopieren Sie das Modul in eine leere Arbeitsmappe.
' ********************************************************
' Modul: mdlFenster Typ: Allgemeines Modul
' ********************************************************
Option Explicit
' Erst ab Excel 2000
Private Declare Function EnumWindows _
Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean
Private Declare Function GetWindowText _
Lib "user32" Alias "GetWindowTextA" _
(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength _
Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Declare Function GetClassName Lib _
"user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, _
ByVal nMaxCount As Long) As Long
Dim iRowCount As Long
Public Sub StartFenster()
iRowCount = 0
ThisWorkbook.Worksheets(1).UsedRange.ClearContents
EnumWindows AddressOf FensterCallBack, ByVal 0&
End Sub
Private Function FensterCallBack(ByVal DasHwnd As Long, ByVal lParam As Long) As Boolean
Dim sTemp As String, retVal As Long, sClassTemp As String * 100
retVal = GetWindowTextLength(DasHwnd)
sTemp = Space(retVal)
GetWindowText DasHwnd, sTemp, retVal + 1
'Ausgabe in erstes Worksheet, Fauler ZeilenZähler
If retVal <> 0 Then ' Nur Fenster mit Titeln ausgeben
iRowCount = iRowCount + 1
GetClassName DasHwnd, sClassTemp, 100
With ThisWorkbook.Worksheets(1)
.Cells(iRowCount, 1) = DasHwnd ' Handle des Fensters
.Cells(iRowCount, 2) = sTemp ' Titel
.Cells(iRowCount, 3) = Trim(sClassTemp) ' Klassenname
End With
End If
FensterCallBack = True
End Function
Weitere Artikel der Gruppe: Verschiedenes Aus Excel VBA
Nach oben