以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何用代码设置隐藏(或显示)WIN10的任务栏?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=140531)

--  作者:FoxMan
--  发布时间:2019/9/7 17:22:00
--  [求助]如何用代码设置隐藏(或显示)WIN10的任务栏?
如题,多谢!
--  作者:有点蓝
--  发布时间:2019/9/8 20:28:00
--  
全局代码

Public Structure RECT
        Public Left As Integer
        Public Top As Integer
        Public Right As Integer
        Public Bottom As Integer
    End Structure

    Public Structure APPBARDATA
        Public cbSize As Integer
        Public hwnd As Integer
        Public uCallbackMessage As Integer
        Public uEdge As Integer
        Public rc As RECT
        Public lParam As Integer
    End Structure

    Public Const ABS_ALWAYSONTOP As Integer = &H002
    Public Const ABS_AUTOHIDE As Integer = &H001
    Public Const ABS_BOTH As Integer = &H003
    Public Const ABM_ACTIVATE As Integer = &H006
    Public Const ABM_GETSTATE As Integer = &H004
    Public Const ABM_GETTASKBARPOS As Integer = &H005
    Public Const ABM_NEW As Integer = &H000
    Public Const ABM_QUERYPOS As Integer = &H002
    Public Const ABM_SETAUTOHIDEBAR As Integer = &H008
    Public Const ABM_SETSTATE As Integer = &H00A

    Public Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwmsg As Integer, ByRef app As APPBARDATA) As Integer

    Public Declare Function FindWindowX Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer

    Public Sub SetAppBarAutoDisplay(ByVal IsAuto As Boolean)
        Dim abd As APPBARDATA = New APPBARDATA()
        abd.hwnd = FindWindowX("Shell_TrayWnd", "")

        If IsAuto Then
            abd.lParam = ABS_AUTOHIDE
            SHAppBarMessage(ABM_SETSTATE, abd)
        Else
            abd.lParam = ABS_ALWAYSONTOP
            SHAppBarMessage(ABM_SETSTATE, abd)
        End If
    End Sub

调用 
SetAppBarAutoDisplay(True ) ‘True 设置为自动隐藏,False 取消自动隐藏

--  作者:FoxMan
--  发布时间:2019/9/8 20:54:00
--  
多谢蓝版主!