【发布时间】:2011-11-09 02:11:36
【问题描述】:
有没有办法使用 Python 隐藏 Windows 任务栏?如果没有 - 有没有办法使用注册表禁用或重新调整大小并锁定它?
【问题讨论】:
标签: python
有没有办法使用 Python 隐藏 Windows 任务栏?如果没有 - 有没有办法使用注册表禁用或重新调整大小并锁定它?
【问题讨论】:
标签: python
Microsoft 支持文档KB186119 演示了如何使用 Visual Basic 隐藏任务栏。这是 Python 的 ctypes 版本,但使用 ShowWindow 而不是 SetWindowPos:
import ctypes
from ctypes import wintypes
user32 = ctypes.WinDLL("user32")
SW_HIDE = 0
SW_SHOW = 5
user32.FindWindowW.restype = wintypes.HWND
user32.FindWindowW.argtypes = (
wintypes.LPCWSTR, # lpClassName
wintypes.LPCWSTR) # lpWindowName
user32.ShowWindow.argtypes = (
wintypes.HWND, # hWnd
ctypes.c_int) # nCmdShow
def hide_taskbar():
hWnd = user32.FindWindowW(u"Shell_traywnd", None)
user32.ShowWindow(hWnd, SW_HIDE)
def unhide_taskbar():
hWnd = user32.FindWindowW(u"Shell_traywnd", None)
user32.ShowWindow(hWnd, SW_SHOW)
【讨论】:
只是为了添加到@eryksun 的答案,如果你在 Windows 7 中尝试这个,你仍然会看到开始按钮......我在他的代码中做了我的小 tweek
1) 隐藏开始按钮(使用hWnd_btn_start = user32.FindWindowW(u"Button", 'Start'))
2) 现在您可以将 Hide(默认行为)或 Show 传递给命令行以显示或隐藏任务栏。
import ctypes
import sys
from ctypes import wintypes
user32 = ctypes.WinDLL("user32")
SW_HIDE = 0
SW_SHOW = 5
HIDE = True;
for idx,item in enumerate(sys.argv):
print(idx, item);
if (idx == 1 and item.upper() == 'SHOW'):
HIDE = False;
#HIDE = sys.argv[1] = 'HIDE' ? True : False;
user32.FindWindowW.restype = wintypes.HWND
user32.FindWindowW.argtypes = (
wintypes.LPCWSTR, # lpClassName
wintypes.LPCWSTR) # lpWindowName
user32.ShowWindow.argtypes = (
wintypes.HWND, # hWnd
ctypes.c_int) # nCmdShow
def hide_taskbar():
hWnd = user32.FindWindowW(u"Shell_traywnd", None)
user32.ShowWindow(hWnd, SW_HIDE)
hWnd_btn_start = user32.FindWindowW(u"Button", 'Start')
user32.ShowWindow(hWnd_btn_start, SW_HIDE)
def unhide_taskbar():
hWnd = user32.FindWindowW(u"Shell_traywnd", None)
user32.ShowWindow(hWnd, SW_SHOW)
if (HIDE):
hide_taskbar();
else:
unhide_taskbar();
用法:
显示任务栏python hideTaskBar.py Show
隐藏任务栏python hideTaskBar.py Hide
再次感谢@eryksun
【讨论】: