Sie wollen eine eigene Taskleiste oder so was ähnliches? Dann brauchen Sie die Fenster, die sich so in der Taskleiste auch tummeln... Nehmen Sie ein leeres Formular mit Listbox (List1) und Button (Command1), und fügen Sie folgenden Code ein: Private Sub Command1_Click() List1.Clear ew_go End Sub Folgender Code kommt in ein Modul: Option Explicit ' Benötigte API's Private Declare Function EnumWindows Lib "user32" ( _ ByVal lpEnumFunc As Long, _ ByVal lParam As Long) As Long Private Declare Function GetWindowLong Lib "user32" _ Alias "GetWindowLongA" ( _ ByVal hWnd As Long, _ ByVal nIndex As Long) As Long Private Declare Function GetParent Lib "user32" ( _ ByVal hWnd As Long) As Long Private Declare Function IsWindowVisible Lib "user32" ( _ ByVal hWnd As Long) As Long 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 GetClassName Lib "user32" _ Alias "GetClassNameA" ( _ ByVal hWnd As Long, _ ByVal lpClassName As String, _ ByVal nMaxCount As Long) As Long Private Declare Function GetWindow Lib "user32" ( _ ByVal hWnd As Long, _ ByVal wCmd As Long) As Long ' Noch ein paar Konstanten Private Const GWL_EXSTYLE = (-20) Private Const GWL_STYLE = (-16) Private Const GW_OWNER = 4 Private Const WS_EX_TOOLWINDOW = &H80& Private Const WS_EX_APPWINDOW = &H40000 ' Diese Funktion initialisiert das Ganze Sub ew_go() ' Aufrufen, und ew_callback() übergeben. ' Der zweite Parameter ist egal, kann frei definiert werden EnumWindows AddressOf ew_callback, 0 End Sub ' Diese Function nimmt die Callbacks entgegen. ' param ist der zweite Parameter von EnumWindows, ' handle stellt ein enumeriertes Fenster dar Private Function ew_callback(ByVal handle As Long, ByVal param As Long) As Long ' Die Funktion ew_fenster() prüft das Fenster ew_fenster handle ' TRUE zurückgeben, um Windows zu sagen: Alles OK ' und evtl. Fehler zu vermeiden ;) ew_callback = True End Function ' Diese Funktion prüft, ob das gefundene Fenster ' in der Taskleiste angezeigt wird Private Sub ew_fenster(handle As Long) Dim i1 As Long Dim i2 As Long Dim d1 As String Dim d2 As String ' Fenster muss sichtbar sein UND darf kein Elternfenster haben If IsWindowVisible(handle) And GetParent(handle) = 0 Then ' erweiterte Optionen abrufen i1 = GetWindowLong(handle, GWL_EXSTYLE) ' nochmals Elternfenster prüfen: i2 = GetWindow(handle, GW_OWNER) ' Prüfen, ob: ' - Kein ToolWindow und kein Childfenster oder ' - Anwendungsfenster und Childfenster If ((i1 And WS_EX_TOOLWINDOW) = 0 And i2 = 0) Or _ ((i1 And WS_EX_APPWINDOW) And (i2 <> 0)) Then ' Titel / Klasse auslesen GetWindowInfo handle, d1, d2 ' und anzeigen (Handle, Titel, Klasse) ' Hier können Sie machen was Sie wollen ;) Form1.List1.AddItem handle & ": " & d1 & " (" & d2 & ")" End If End If End Sub ' Diese Funktion liest lediglich Titel und Klassenname ' eines Fensters aus und übergibt sie mittels ByRef Sub GetWindowInfo(handle As Long, p1 As String, p2 As String) ' Variablen reservieren p1 = Space(1024) p2 = Space(1024) ' Informationen holen GetWindowText handle, p1, 1024 GetClassName handle, p2, 1024 ' Nullzeichen entfernen p1 = Left(p1, InStr(1, p1, Chr(0))) p2 = Left(p2, InStr(1, p2, Chr(0))) End Sub Mit diesem Code haben Sie nun die Möglichkeit, Ihre eigene Taskleiste zu schreiben ;) Dieser Tipp wurde bereits 18.792 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (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. |
sevOutBar 4.0 Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Tipp des Monats März 2024 Dieter Otter UTF-8 Konvertierung von Dateien und Strings VB6 selbst verfügt über keine Funktionen zur UTF-8 Konvertierung von Daten. Mit Hilfe des ADODB.Stream-Objekts lassen sich diese fehlenden Funktionen aber schnell nachrüsten. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
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. |