如何动态隐藏和取消隐藏任务栏?

如何动态隐藏和取消隐藏任务栏?

我希望能够在我关注桌面而非任何窗口时自动隐藏任务栏。我应该能够将鼠标悬停在底部以显示任务栏,但我只想在关注桌面时启用自动隐藏功能。

我知道可以运行一些脚本来启用和禁用自动隐藏功能,但我不知道如何检测我是否专注于背景。

我正在运行 Windows 11,但我认为在这种情况下它与 Windows 10 没有任何不同。

答案1

这里的回答真的很晚。我不知道有任何原生方法可以做到这一点,但我编写了这个 Autohotkey 脚本,如果桌面具有焦点,它会隐藏任务栏。如果桌面具有焦点,我无法让它在鼠标悬停时自动显示任务栏,但如果首先激活任何其他窗口,鼠标悬停就会起作用。此脚本还完全隐藏了任务栏(至少在最新的 Win 10 上)。所以底部没有难看的灰线。我还添加了以下热键:

显示任务栏:左 Ctrl + 右 Alt + s

隐藏任务栏:左 Ctrl + 右 Alt + h

终止脚本:左 Ctrl + 右 Alt + Escape

“Kill script”热键在任何地方都有效,另外两个热键在桌面处于焦点时有效。如果您的键盘有 Altgr 键,则可以使用该键代替左 Ctrl + 右 Alt。如果您花几分钟使用 Autohotkey,您可以将其更改为您想要的任何内容。运行它需要 Autohotkey(当前稳定版本)(免费且开源)。

#NoEnv
#SingleInstance,Force
#Persistent
SetWinDelay,0



GroupAdd, DesktopGroup, ahk_class Progman ; Adding both classes of desktop to the group "DesktopGroup" 
GroupAdd, DesktopGroup, ahk_class WorkerW ; 


Loop {
  IfWinActive, ahk_group DesktopGroup
    IfWinExist, ahk_class Shell_TrayWnd
    {
      WinHide,ahk_class Shell_TrayWnd
      WinHide,Start ahk_class Button
    }
    Else
      WinWaitNotActive, ahk_group DesktopGroup
  Else
    IfWinNotExist, ahk_class Shell_TrayWnd
      WinShow,ahk_class Shell_TrayWnd
      WinShow,Start ahk_class Button
    
}

<^>!Esc::ExitApp

#IfWinActive, ahk_group DesktopGroup
<^>!s::
{
  WinShow,ahk_class Shell_TrayWnd
  WinShow,Start ahk_class Button
  Return
}
<^>!h::
{
  WinHide,ahk_class Shell_TrayWnd
  WinHide,Start ahk_class Button
  Return
}
#IfWinActive

许可证:WTFPL

相关内容