有没有办法使用Python隐藏Windows任务栏?如果没有 - 有没有办法禁用或重新调整大小并使用注册表锁定它?
答案 0 :(得分:6)
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)
答案 1 :(得分:0)
以下是在VisualBasic中执行此操作的方法:http://support.microsoft.com/kb/186119
这是一个类似的主题:How to programmatically move Windows taskbar?
您可以使用PyWinAuto进行此操作,但这会将鼠标移动到屏幕上。不确定这对你是否是一个问题。
答案 2 :(得分:0)
只是为了添加到@eryksun的答案,如果你在Windows 7中尝试这个,你仍然可以看到开始按钮......我在他的代码中做了一点调整
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