VB 5/6-Tipp 0528: Position und Größe der Taskleiste ermitteln II
von Konrad Rudolph
Beschreibung
Dieser Tipp beschreibt kurz und bündig, wie man die Höhe, Breite und die Position der Taskbar auslesen kann.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Projekt1.vbp ------------- '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Schaltfläche "Command1" ' Steuerelement: Beschriftungsfeld "Label2" (Index von 0 bis 4) ' Steuerelement: Beschriftungsfeld "Label1" (Index von 0 bis 4) Option Explicit Private Declare Function FindWindow Lib "user32.dll" Alias _ "FindWindowA" (ByVal lpClassName As String, _ ByVal lpWindowName As String) As Long Private Declare Function GetWindowRect Lib "user32.dll" (ByVal hwnd As Long, _ lpRect As xRECT) As Long Private Type xRECT ' Datentyp Rechteck (Koordinaten) rX1 As Long ' links rY1 As Long ' oben rX2 As Long ' rechts rY2 As Long ' unten End Type Private Function GetTaskBarProps(ByVal hProperty As String) As Long Dim hRect As xRECT Dim hwnd As Long Dim hRes As Long ' hProperty = UCase(Trim$(hProperty)) If hProperty = "" Then GetTaskBarProps = 0 Exit Function End If ' hwnd = FindWindow("Shell_traywnd", "") ' Handle TBarWindow ermitteln hRes = GetWindowRect(hwnd, hRect) ' Fenster d. TaskBar Select Case hProperty Case "TOP" GetTaskBarProps = hRect.rY1 ' Pos. oben (inkl. Rand) Case "LEFT" GetTaskBarProps = hRect.rX1 ' Pos. links ( inkl.Rand) Case "HEIGHT" GetTaskBarProps = hRect.rY2 - hRect.rY1 ' Höhe (unten - oben) Case "WIDTH" GetTaskBarProps = hRect.rX2 - hRect.rX1 ' Breite (rechts - links) Case "ALIGN" If hRect.rY1 < 1 Then If hRect.rX1 < 1 Then If hRect.rY2 > hRect.rX2 Then GetTaskBarProps = 1 ' links If hRect.rX2 > hRect.rY2 Then GetTaskBarProps = 3 ' oben End If End If If hRect.rY1 < 1 Then If hRect.rX1 > 0 Then GetTaskBarProps = 2 ' rechts End If If hRect.rX1 < 1 Then If hRect.rY1 > 0 Then GetTaskBarProps = 4 ' unten End If End Select With Form1 .Label2(0).Caption = hRect.rY1 .Label2(1).Caption = hRect.rX1 .Label2(2).Caption = hRect.rY2 - hRect.rY1 .Label2(3).Caption = hRect.rX2 - hRect.rX1 .Label2(4).Caption = GetTaskBarProps End With End Function Private Sub Command1_Click() Call GetTaskBarProps("Align") End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Projekt1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 3 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von max am 08.04.2010 um 16:36
nö
Kommentar von Igor am 12.07.2004 um 14:32
Hallo, ich bin ein WinXP nutzer und brauche eine Dualgrafikkarte für meine Arbeit. Das problem ist, dass die Taskleiste bei jedem Neustart die Grösse verädert. Ich habe die am rechten Monitor auf der linken Seite (Vertikal) und brauche die Grösse, dass das "Start" ausgeschrieben wird! Wie kriege ich es hin?
Für die Antwort wäre ich sehr Dankbar!
PS. Benutze die XP Startleiste
Kommentar von VB-Newbie am 27.10.2003 um 16:43
Hi!
Kann man die Größe der Taskleiste auch ändern?