| |

Visual-Basic EinsteigerRe: Titelzeilen aller Fensters auslesen | |  | Autor: RalfH | Datum: 05.12.03 15:00 |
| Servus,
na klar, so gehts:
Einfach neues Projekt erstellen und auf die Form 3 Checkboxen (Check1, Check2, Check3) und 1 Listbox (List1) platzieren. Die Checkboxen und die Listbox werden automatisch beim Starten angepasst
Option Explicit
' ermittelt das Handle eines Fenster durch Klasse oder Titel
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, ByVal lpWindowName As String) As Long
' ermittelt die Beschriftung/Titel eines Fenster
Private Declare Function GetWindowText Lib "user32" Alias _
"GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, _
ByVal cch As Long) As Long
' ermittelt das nachfolgende Fenster (mit GW_HWNDNEXT)
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, _
ByVal wCmd As Long) As Long
' Fensterstile ermitteln
Private Declare Function GetWindowLong Lib "user32" _
Alias "GetWindowLongA" (ByVal hwnd As Long, _
ByVal wIndx As Long) As Long
' ermittelt den Fenster-Besitzer
Private Declare Function GetParent Lib "user32" ( _
ByVal hwnd As Long) As Long
' Wert für den wCmd-Parameter von GetWindow
Private Const GW_HWNDNEXT = 2 ' liefert das nächste Fenster
' Wert für den wIndx-Parameter von GetWindowLong
Private Const GWL_STYLE = (-16) ' liefert die Fensterstile
Private Const WS_VISIBLE = &H10000000
Private Const WS_BORDER = &H800000
Private Const STR_BUF_SIZE = 1280
' ermittelt die Fenstertitel
Private Sub GetWindowTitle()
Dim tbuf As String, lRet As Long, Handle As Long, lStyle As Long
Dim bParent As Boolean, bVisible As Boolean, bBorder As Boolean
' Handle des ersten Fensters ermitteln
Handle = FindWindow(vbNullString, vbNullString)
List1.Clear
Do Until Handle = 0
' Fensterstile des Fensters ermitteln
lStyle = GetWindowLong(Handle, GWL_STYLE)
' Status Fensterbesitzer ermitteln
bParent = (GetParent(Handle) = 0) Or (Check1.Value = 0)
' Status "Fenster sichtbar" ermitteln
bVisible = ((lStyle And WS_VISIBLE) <> 0) Or (Check2.Value = 0)
' Status "Fenster hat Rahmen" ermitteln
bBorder = ((lStyle And WS_BORDER) <> 0) Or (Check3.Value = 0)
' wenn alles stimmt, dann hier weiter
If bParent And bVisible And bBorder Then
tbuf = Space(STR_BUF_SIZE)
' Fenstertitel ermitteln
lRet = GetWindowText(Handle, tbuf, Len(tbuf))
' wenn ein Fenstertitel existiert, dann in Liste einfügen
If lRet > 0 Then
tbuf = UCase(Left(tbuf, lRet))
List1.AddItem tbuf
End If
End If
' Handle des nächsten Fensters ermitteln
Handle = GetWindow(Handle, GW_HWNDNEXT)
Loop
Me.Caption = CStr(List1.ListCount) & " Fenstertitel"
End Sub
' Nur elternlose Fenster
Private Sub Check1_Click()
GetWindowTitle
End Sub
' Nur sichtbare Fenster
Private Sub Check2_Click()
GetWindowTitle
End Sub
' Nur Fenster mit Rahmen
Private Sub Check3_Click()
GetWindowTitle
End Sub
Private Sub Form_Load()
On Error Resume Next
With Check1
.Caption = "Nur elternlose Fenster"
.Top = 60
.Left = 60
.Width = 2355
.Height = 315
.Value = 1
End With
With Check2
.Caption = "Nur sichtbare Fenster"
.Top = 60
.Left = 2460
.Width = 2355
.Height = 315
.Value = 1
End With
With Check3
.Caption = "Nur Fenster mit Rahmen"
.Top = 60
.Left = 4860
.Width = 2355
.Height = 315
.Value = 1
End With
With List1
.Top = 420
.Left = 0
End With
GetWindowTitle
End Sub
Private Sub Form_Resize()
On Error Resume Next
With List1
.Width = Me.ScaleWidth
.Height = Me.ScaleHeight - .Top
End With
End Sub Viel Spass,
R@lf |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Neu! sevCommand 4.0 
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
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.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|