Deklaration: Declare Function GetWindowLong Lib "user32.dll" _ Alias "GetWindowLongA" ( _ ByVal hWnd As Long, _ ByVal nIndex As Long) As Long Beschreibung: Parameter:
nIndex Konstanten: Const GWL_EXSTYLE = -20 ' Ermittelt die erweiterten Fensterstyles Const GWL_HINSTANCE = -6 ' Ermittelt das Instanzhandle der Anwendung Const GWL_HWNDPARENT = -8 ' Ermittelt das Fensterhandle des Elternfensters Const GWL_ID = -12 ' Ermittelt den Fenster ID Const GWL_STYLE = -16 ' Ermittelt die Standard Fensterstyles Const GWL_USERDATA = -21 ' Ermittelt einen 32-Bit Anwendungswert des Fensters Const GWL_WNDPROC = -4 ' Ermittelt die Adresse der Standard-Fensterprozedur Const DWL_DLGPROC = 4 ' Ermittelt die Adresse der Standard Dialogprozedur Const DWL_MSGRESULT = 0 ' Ermittelt das Ergebnis des letzten Ergebnisses einer Fensternachricht Const DWL_USER = 8 ' Ermittelt einen 32-Bit Anwendungswert des Dialogs Rückgabewert: Beispiel: Private Declare Function GetCursorPos Lib "user32.dll" ( _ lpPoint As POINTAPI) 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 Private Declare Function GetWindowLong Lib "user32.dll" _ Alias "GetWindowLongA" ( _ ByVal hWnd As Long, _ ByVal nIndex As Long) As Long Private Declare Function GetClassInfo Lib "user32.dll" _ Alias "GetClassInfoA" ( _ ByVal hInstance As Long, _ ByVal lpClassName As String, _ lpWndClass As WNDCLASS) As Long Private Declare Function WindowFromPoint Lib "user32.dll" ( _ ByVal xPoint As Long, _ ByVal yPoint As Long) As Long Private Declare Function IsZoomed Lib "user32.dll" (ByVal hWnd As Long) As Long Private Declare Function IsWindow Lib "user32.dll" (ByVal hWnd As Long) As Long Private Declare Function IsIconic Lib "user32.dll" (ByVal hWnd As Long) As Long Private Declare Function GetParent Lib "user32.dll" (ByVal hWnd As Long) As Long ' GetWindowLong nIndex-Konstanten Private Const GWL_EXSTYLE = -20 ' Ermittelt die erweiterten Fensterstyles Private Const GWL_HINSTANCE = -6 ' Ermittelt das Instanzhandle der Anwendung Private Const GWL_HWNDPARENT = -8 ' Ermittelt das Fensterhandle des Elternfensters Private Const GWL_ID = -12 ' Ermittelt den Fenster ID Private Const GWL_STYLE = -16 ' Ermittelt die Standard Fensterstyles Private Const GWL_USERDATA = -21 ' Ermittelt einen 32-Bit Anwendungswert des Fensters Private Const GWL_WNDPROC = -4 ' Ermittelt die Adresse der Standard-Fensterprozedur Private Const DWL_DLGPROC = 4 ' Ermittelt die Adresse der Standard-Dialogprozedur Private Const DWL_MSGRESULT = 0 ' Ermittelt das Ergebnis des letzten ' Ergebnisses einer Fensternachricht Private Const DWL_USER = 8 ' Ermittelt einen 32-Bit Anwendungswert des Dialogs Private Type WNDCLASS style As Long lpfnWndProc As Long cbClsExtra As Long cbWndExtra As Long hInstance As Long hIcon As Long hCursor As Long hbrBackground As Long lpszMenuName As String lpszClassName As String End Type Private Type POINTAPI x As Long y As Long End Type Private Sub Form_Load() End Sub ' Informationen über das Fenster an der Mausposition Private Sub Timer1_Timer() Dim Retval As Long, MPos As POINTAPI, hWnd As Long Dim ParentWnd As Long, IsMaximized As Boolean Dim IsMinimized As Boolean, ParentClassInfo As WNDCLASS Dim WndClassInfo As WNDCLASS, TmpBuff As String * 256 Dim TmphInst As Long, TmpClassName As String ' Mausposition ermitteln Retval = GetCursorPos(MPos) ' Fensterhandle des Fensters unter dem Mauscursor ermitteln hWnd = WindowFromPoint(MPos.x, MPos.y) If CBool(IsWindow(hWnd)) = False Then Label1.Caption = "kein Fenster" Exit Sub End If ' Herausfinden ob das Fenster maximiert ist IsMaximized = IsZoomed(hWnd) ' Herausfinden ob das Fenster minimiert ist IsMinimized = IsIconic(hWnd) ' Herausfinden ob das Fenster ein Kindfenster ist ParentWnd = GetParent(hWnd) ' Ermitteln des Instanzhandles des Fenster TmphInst = GetWindowLong(hWnd, GWL_HINSTANCE) ' Ermitteln des Klassennamens Retval = GetClassName(hWnd, TmpBuff, Len(TmpBuff)) TmpClassName = Left$(TmpBuff, Retval) ' ermitteln der Fenster-Klasseninformationen Retval = GetClassInfo(TmphInst, TmpClassName, WndClassInfo) ' Ermittelte Informationen ausgeben With Label1 .Caption = "" .Caption = .Caption & "Fensterklasse: " & TmpClassName & vbCrLf .Caption = .Caption & "Fensterhandle: " & CStr(hWnd) & vbCrLf .Caption = .Caption & "Standardprozedur Adresse: " & _ CStr(WndClassInfo.lpfnWndProc) & vbCrLf .Caption = .Caption & "Maximiert: " & CStr(IsMaximized) & vbCrLf .Caption = .Caption & "Minimiert: " & CStr(IsMinimized) & vbCrLf .Caption = .Caption & "Elternfenster: " & CBool(ParentWnd << 0) & vbCrLf End With ' Informationen des Elternfensters ermitteln If ParentWnd << 0 Then ' Ermitteln des Instanzhandles des Fenster TmphInst = GetWindowLong(ParentWnd, GWL_HINSTANCE) ' Ermitteln des Klassennamens Retval = GetClassName(ParentWnd, TmpBuff, Len(TmpBuff)) TmpClassName = Left$(TmpBuff, Retval) ' ermitteln der Fenster-Klasseninformationen Retval = GetClassInfo(TmphInst, TmpClassName, ParentClassInfo) With Label1 .Caption = .Caption & vbCrLf & "Elternfenster Fensterklasse: _ " & TmpClassName & vbCrLf .Caption = .Caption & "Fensterhandle: " & CStr(ParentWnd) & vbCrLf .Caption = .Caption & "Standardprozedur Adresse: " & _ CStr(WndClassInfo.lpfnWndProc) & vbCrLf End With End If End Sub Diese Seite wurde bereits 19.430 mal aufgerufen. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Buchempfehlung Tipp des Monats Oktober 2024 Heinz Prelle Firewall-Status unter WinXP/Vista prüfen Das Beispiel prüft, ob die Firewall unter Windows XP/Vista eingeschaltet ist oder nicht. Zudem wird eine Abfrage durchgeführt ob es sich bei dem zugrundeliegenden Betriebssystem um Windows XP/Vista handelt oder nicht. TOP! Unser Nr. 1 Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. |
||||||||||||||
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. |