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 |