vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Windows API
Re: Eigenschaften der Windows-Taskleiste 
Autor: alluju
Datum: 13.09.05 12:32

Private Declare Function SHAppBarMessage Lib "shell32.dll" _
        (ByVal dwMessage As Long, pData As APPBARDATA) As _
        Long
 
Private Declare Function GetDC Lib "User32" _
 (ByVal hwnd As Long) As Long
 
Private Declare Function GetDeviceCaps Lib "gdi32" _
 (ByVal hdc As Long, ByVal nIndex As Long) As Long
 
Private Declare Function ReleaseDC Lib "User32" _
 (ByVal hwnd As Long, ByVal hdc As Long) As Long
 
Private Const HORZRES = 8
Private Const VERTRES = 10
 
Private Const ABM_GETTASKBARPOS = &H5
 
Private Type RECT
  Left As Long
  Top As Long
  Right As Long
  Bottom As Long
End Type
 
Private Type APPBARDATA
  cbSize As Long
  hwnd As Long
  uCallbackMessage As Long
  uEdge As Long
  rc As RECT
  lParam As Long
End Type
 
Public Enum tBarAlign
  tbaLinks = 0
  tbaRechts = 1
  tbaOben = 2
  tbaUnten = 3
End Enum
 
 
Private Const SPI_GETWORKAREA = 48
 
Public hoehe As Long
Public breite As Long
 
 
 
Private Sub Form_Load()
 
 
    Form1.height = ScreenHoehe * 20
    Form1.width = ScreenBreite * 20
    Form1.Top = 0
    Form1.Left = 0
 
    Dim tbPosition As Byte
    Dim tbHoehe As Integer
    Dim tbBreite As Integer
    Dim tbVordergrund As String
 
    tbPosition = TaskBarAlign
    tbHoehe = TaskBarHeight * 20
    tbBreite = TaskBarWidth * 20
    tbVordergrund = IsTaskBarOnTop
 
    Select Case TaskBarAlign
    Case 0  'links
        Form1.Left = Form1.Left + tbBreite
        Form1.width = Form1.width - tbBreite     
    Case 1  'rechts
        Form1.width = Form1.width - tbBreite     
    Case 2  'oben
        Form1.Top = Form1.Top + tbHoehe
        Form1.height = Form1.height - tbHoehe
    Case 3  'unten
        Form1.height = Form1.height - tbHoehe
    Case Else
        MsgBox ("fehler")
    End Select
 
End Sub
 
Public Function IsTaskBarOnTop() As Boolean
  Dim AppBar As APPBARDATA
  Dim State As Long
 
  Const ABM_GETSTATE = &H4
  Const ABS_ALWAYSONTOP = &H2
 
  AppBar.cbSize = Len(AppBar)
  State = SHAppBarMessage(ABM_GETSTATE, AppBar)
 
  IsTaskBarOnTop = (State = ABS_ALWAYSONTOP)
End Function
 
Public Function TaskBarAlign() As tBarAlign
  Dim AppBar As APPBARDATA
  Dim lResult As Long
  Dim tbHeight As Long
  Dim tbWidth As Long
 
  Const ABM_GETTASKBARPOS = &H5
 
  lResult = SHAppBarMessage(ABM_GETTASKBARPOS, AppBar)
 
  ' Größe der Taskbar
  With AppBar.rc
    tbHeight = .Bottom - .Top
    tbWidth = .Right - .Left
  End With
 
  ' Anhand der Größe die Position ermitteln
  If tbHeight < Screen.height / Screen.TwipsPerPixelY Then
    If AppBar.rc.Top <= 0 Then
      TaskBarAlign = tbaOben
    Else
      TaskBarAlign = tbaUnten
    End If
  Else
    If AppBar.rc.Left <= 0 Then
      TaskBarAlign = tbaLinks
    Else
      TaskBarAlign = tbaRechts
    End If
  End If
End Function
 
' Höhe in Pixel
Public Function TaskBarHeight() As Long
  Dim AppBar As APPBARDATA
  Dim lResult As Long
 
  Const ABM_GETTASKBARPOS = &H5
 
  lResult = SHAppBarMessage(ABM_GETTASKBARPOS, AppBar)
 
  ' Größe der Taskbar
  With AppBar.rc
    TaskBarHeight = .Bottom - .Top
  End With
 
End Function
 
' Breite in Pixel
Public Function TaskBarWidth() As Long
  Dim AppBar As APPBARDATA
  Dim lResult As Long
 
 
  Const ABM_GETTASKBARPOS = &H5
 
  lResult = SHAppBarMessage(ABM_GETTASKBARPOS, AppBar)
 
  ' Breite der Taskbar
  With AppBar.rc
    TaskBarWidth = .Right - .Left
  End With
 
End Function
 
Public Property Get ScreenBreite() As Long
  Dim BnDC As Long
 
  BnDC = GetDC(0)
  ScreenBreite = GetDeviceCaps(BnDC, HORZRES)
  ReleaseDC 0, BnDC
 
End Property
 
Public Property Get ScreenHoehe() As Long
 
  Dim HnDC As Long
 
  HnDC = GetDC(0)
  ScreenHoehe = GetDeviceCaps(HnDC, VERTRES)
  ReleaseDC 0, HnDC
 
End Property
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Eigenschaften der Windows-Taskleiste1.711alluju09.09.05 09:29
Re: Eigenschaften der Windows-Taskleiste1.091ModeratorMartoeng09.09.05 15:29
Re: Eigenschaften der Windows-Taskleiste1.032alluju13.09.05 07:02
Re: Eigenschaften der Windows-Taskleiste943ModeratorMartoeng13.09.05 09:54
Re: Eigenschaften der Windows-Taskleiste942alluju13.09.05 12:14
Re: Eigenschaften der Windows-Taskleiste939ModeratorMartoeng13.09.05 12:22
Re: Eigenschaften der Windows-Taskleiste1.116ModeratorMartoeng13.09.05 12:31
Re: Eigenschaften der Windows-Taskleiste1.008alluju13.09.05 12:32
Re: Eigenschaften der Windows-Taskleiste963alluju13.09.05 12:45

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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