繁体   English   中英

在Windows XP中使用Python隐藏任务栏

[英]Hide taskbar using Python in Windows XP

有没有一种方法可以使用Python隐藏Windows任务栏? 如果不是,是否可以使用注册表禁用或重新调整大小并锁定它?

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)现在,您可以将“隐藏”(默认行为)或“显示”传递给命令行以显示或隐藏任务栏。

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

这是在VisualBasic中执行的方法: http : //support.microsoft.com/kb/186119

这是一个类似的线程: 如何以编程方式移动Windows任务栏?

您可能可以使用PyWinAuto来做到这一点,但这会在屏幕上移动鼠标。 不知道这是否对您来说是个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM