首页 > 解决方案 > 设置 Windows 任务栏自动隐藏的命令或消息或 DLL 调用?

问题描述

我需要以编程方式设置或切换 Windows 10 任务栏的自动隐藏。绑定到热键的操作以提高生产力和便利性。是否有命令行命令或 DLL 调用可以实现等效于翻转以下开关:

在此处输入图像描述

目前,我通过打开上面的设置窗口并发送按键进行搜索来实现这一点,然后是DownsSpaceAlt+ F4,但它很慢且不可靠。

这个问题不是特定于语言的,因为 DLL 调用在任何地方看起来都几乎相同,尽管我的最终实现将在AutoHotKey中。

预期结果:运行命令后,Windows 资源管理器将更改其行为,就像启用(或禁用或切换)设置在桌面模式下自动隐藏任务栏一样。

标签: winapiwindows-10windows-explorertaskbar

解决方案


它是ABM_SETSTATE消息。

在找到正确的 Windows消息后,我还在AutoHotKey 中找到了实现

ABM_SETSTATE    := 10
ABS_NORMAL      := 0x0
ABS_AUTOHIDE    := 0x1
ABS_ALWAYSONTOP := 0x2
VarSetCapacity(APPBARDATA, 36, 0)
Address := NumPut(36, APPBARDATA)
Address := NumPut(WinExist("ahk_class Shell_TrayWnd"), Address + 0)
NumPut(ABS_NORMAL, Address + 24)
DllCall("Shell32.dll\SHAppBarMessage", UInt, ABM_SETSTATE, UInt, &APPBARDATA)

将第二行中的参数从底部更改ABS_NORMALABS_AUTOHIDE以实现预期的其他状态。


推荐阅读