Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName 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 TypePrivate Sub Command1_Click() Dim hTaskBar As Long hTaskBar = FindWindow("Shell_TrayWnd", vbNullString) Debug.Print hTaskBar Dim RC As RECT Dim i As Long i = GetWindowRect(hTaskBar, RC) Debug.Print RC.Right - RC.Left '任务栏宽度 Debug.Print RC.Bottom - RC.Top '任务栏高度 End Sub
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 Private Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long Private Sub Command1_Click() Dim data As APPBARDATA data.cbSize = Len(data) Call SHAppBarMessage(ABM_GETTASKBARPOS, data) ' data.rc.Left 等於工作列的左边界 ' data.rc.Top 等於工作列的上边界 ' data.rc.Right 等於工作列的右边界 ' data.rc.Bottom 等於工作列的下边界 Debug.Print data.rc.Right - data.rc.Left Debug.Print data.rc.Bottom - data.rc.Top End Sub
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 TypePrivate Sub Command1_Click()
Dim hTaskBar As Long
hTaskBar = FindWindow("Shell_TrayWnd", vbNullString)
Debug.Print hTaskBar
Dim RC As RECT
Dim i As Long
i = GetWindowRect(hTaskBar, RC)
Debug.Print RC.Right - RC.Left '任务栏宽度
Debug.Print RC.Bottom - RC.Top '任务栏高度
End Sub
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
Private Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long
Private Sub Command1_Click()
Dim data As APPBARDATA
data.cbSize = Len(data)
Call SHAppBarMessage(ABM_GETTASKBARPOS, data)
' data.rc.Left 等於工作列的左边界
' data.rc.Top 等於工作列的上边界
' data.rc.Right 等於工作列的右边界
' data.rc.Bottom 等於工作列的下边界
Debug.Print data.rc.Right - data.rc.Left
Debug.Print data.rc.Bottom - data.rc.Top
End Sub
单位为像素
//怎么转换成Twip
不是有
Screen.TwipsPerPixelX
Screen.TwipsPerPixelY
吗?
<script language=javascript>
// 感谢csdn网友 梅花雨 提供这段代码
/*@cc_on @*/
/*@if (@_win32 && @_jscript_version>5)
function window.confirm(str)
{
execScript("n = msgbox('"+ str +"', 257)", "vbscript");
return(n == 1);
}
@end @*/
</script>