16,554
社区成员
发帖
与我相关
我的任务
分享
''' <summary>
''' 任务栏
''' </summary>
''' <remarks></remarks>
Public Structure TaskBar
''' <summary>
''' 任务栏区域
''' </summary>
''' <remarks></remarks>
Public Bounds As Rectangle
''' <summary>
''' 任务栏方向
''' </summary>
''' <remarks></remarks>
Public DirectionF As Direction
''' <summary>
''' 任务栏方向
''' </summary>
''' <remarks></remarks>
Public Enum Direction
''' <summary>
''' 底
''' </summary>
''' <remarks></remarks>
Bottom = 0
''' <summary>
''' 左
''' </summary>
''' <remarks></remarks>
Left = 1
''' <summary>
''' 顶
''' </summary>
''' <remarks></remarks>
Top = 2
''' <summary>
''' 右
''' </summary>
''' <remarks></remarks>
Right = 3
End Enum
End Structure
Public Function GetTaskBarRect() As TaskBar
Try
Dim Tskb As New TaskBar
'获取主显示器工作区
Dim wRct As Rectangle = Screen.GetWorkingArea(New Point(0, 0))
'获取主显示器大小
Dim sRct As Rectangle = Screen.GetBounds(New Point(0, 0))
'判断左上角位置以确定任务栏方向
With wRct.Location
If .X = 0 AndAlso .Y = 0 AndAlso wRct.Width = sRct.Width Then
Tskb.DirectionF = TaskBar.Direction.Bottom
Tskb.Bounds.X = 0 : Tskb.Bounds.Y = 0 : Tskb.Bounds.Width = wRct.Width : Tskb.Bounds.Height = sRct.Height - wRct.Height
ElseIf .X > 0 Then
Tskb.DirectionF = TaskBar.Direction.Left
Tskb.Bounds.X = sRct.Width - wRct.Width : Tskb.Bounds.Y = 0 : Tskb.Bounds.Width = sRct.Width - wRct.Width : Tskb.Bounds.Height = wRct.Height
ElseIf .X = 0 AndAlso .Y > 0 Then
Tskb.DirectionF = TaskBar.Direction.Top
Tskb.Bounds.X = 0 : Tskb.Bounds.Y = sRct.Height - wRct.Height : Tskb.Bounds.Width = wRct.Width : Tskb.Bounds.Height = sRct.Height - wRct.Height
ElseIf .X = 0 AndAlso .Y = 0 AndAlso wRct.Width < sRct.Width Then
Tskb.DirectionF = TaskBar.Direction.Right
Tskb.Bounds.X = wRct.Right : Tskb.Bounds.Y = 0 : Tskb.Bounds.Width = wRct.Width : Tskb.Bounds.Height = wRct.Height
End If
End With
Return Tskb
Catch ex As Exception
End Try
End Function