HeightBarStat




Private Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" (ByVallpClassName As String, _
ByVal lpWindowName As String) As Long

Private Declare Function GetWindowRect Lib "user32" _
(ByVal hwnd As Long, lprect As RECT) As Long

Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type

Private Sub Form_Load()
Dim hwnd&, lret&, lprect As RECT

hwnd = FindWindow("shell_traywnd", "")
lret = GetWindowRect(hwnd, lprect)
Debug.Print "Altezza in pixel: ";lprect.Bottom - lprect.Top

End Sub

'Per sapere dov'e' (direttamente dalla mia Bibbia):


Option Explicit

Private Const ABM_NEW = &H0
Private Const ABM_REMOVE = &H1
Private Const ABM_QUERYPOS = &H2
Private Const ABM_SETPOS = &H3
Private Const ABM_GETSTATE = &H4
Private Const ABM_GETTASKBARPOS = &H5
Private Const ABM_ACTIVATE = &H6
Private Const ABM_GETAUTOHIDEBAR = &H7
Private Const ABM_SETAUTOHIDEBAR = &H8
Private Const ABM_WINDOWPOSCHANGED = &H9

Private Const ABN_STATECHANGE = &H0
Private Const ABN_POSCHANGED = &H1
Private Const ABN_FULLSCREENAPP = &H2
Private Const ABN_WINDOWARRANGE = &H3

Private Const ABS_AUTOHIDE = &H1
Private Const ABS_ALWAYSONTOP = &H2

Private Const ABE_LEFT = 0
Private Const ABE_TOP = 1
Private Const ABE_RIGHT = 2
Private Const ABE_BOTTOM = 3

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

Declare Function SHAppBarMessage Lib "shell32.dll" _
(ByVal dwMessage As Long, pData As APPBARDATA) As Long


Private Sub Form_Load()

Dim rc As RECT
Dim ABD As APPBARDATA

Dim state As Long
Dim position As Integer
Dim hWndAppBar As Long
Dim msg As String

ABD.cbSize = Len(ABD)
state = SHAppBarMessage(ABM_GETSTATE, ABD)
msg = "SHAppBarMessage ABM_GETSTATE " & state & ":" & vbCrLf & vbCrLf

Select Case state
Case False
msg = msg & " - Auto Hide= False, Always on Top = False." _
& vbCrLf
Case ABS_ALWAYSONTOP
msg = msg & " - Always on Top = True." & vbCrLf
Case Else
msg = msg & " - Auto Hide = True." & vbCrLf
msg = msg & " - la taskbar si trova "

For position = ABE_LEFT To ABE_BOTTOM
ABD.uEdge = position
hWndAppBar = SHAppBarMessage(ABM_GETAUTOHIDEBAR, ABD)
If hWndAppBar > 0 Then
Select Case position
Case ABE_LEFT: msg = msg & "a sinistra "
Case ABE_TOP: msg = msg & "in alto "
Case ABE_RIGHT: msg = msg & "a destra "
Case ABE_BOTTOM: msg = msg & "in basso "
End Select
End If
Next

End Select
debug.print msg
End Sub










( heightbarstat.html )- by Paolo Puglisi - Modifica del 17/12/2023