有谁知道我可以通过命令行或其他方法自动隐藏Windows 7中的任务栏吗?
这里有一个C程序,它将切换任务栏窗口的隐藏/显示状态。 请注意,当它被隐藏时,它实际上完全从屏幕上消失了(它不处于自动隐藏模式)。
#include <windows.h> int main() { HWND hwnd = FindWindow("Shell_traywnd", ""); if (IsWindowVisible(hwnd)) SetWindowPos(hwnd,0,0,0,0,0,SWP_HIDEWINDOW); else SetWindowPos(hwnd,0,0,0,0,0,SWP_SHOWWINDOW); return 0; }
使用SHAppBarMessage。 这个切换自动隐藏状态。
#include <windows.h> #include <shellapi.h> // This isn't defined for me for some reason. #ifndef ABM_SETSTATE #define ABM_SETSTATE 0x0000000A #endif int main() { APPBARDATA abd = {sizeof abd}; UINT uState = (UINT) SHAppBarMessage(ABM_GETSTATE, &abd); LPARAM param = uState & ABS_ALWAYSONTOP; if (uState & ABS_AUTOHIDE) abd.lParam = param; else abd.lParam = ABS_AUTOHIDE | param; SHAppBarMessage(ABM_SETSTATE, &abd); return 0; }
自动隐藏cmd提示或者.cmd或.txt文件中的任务栏。 bat文件:
powershell -command "&{$p='HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StuckRects2';$v=(Get-ItemProperty -Path $p).Settings;$v[8]=3;&Set-ItemProperty -Path $p -Name Settings -Value $v;&Stop-Process -f -ProcessName explorer}"
powershell -command "&{$p='HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StuckRects3';$v=(Get-ItemProperty -Path $p).Settings;$v[8]=3;&Set-ItemProperty -Path $p -Name Settings -Value $v;&Stop-Process -f -ProcessName explorer}"
存储此值的注册表项还会存储其他一些设置。 由于我们只想修改注册表设置的位置9( $v[8]
cmd),所以我们需要保留其他设置。
通常从cmd,使用reg add
命令来修改注册表就足够了,但我们使用powershell,因为它可以很容易地保存存储在同一个注册表项下的其他设置。
还需要重新启动资源管理器才能接收更改。 我们使用Stop-Process
因为Windows在停止时会自动重新启动资源管理器。
注意:在上面的命令中将$v[8]=3
更改$v[8]=3
$v[8]=2
,以撤消此更改(如果您希望任务栏始终可见)。