【问题标题】:Hide taskbar using Python in Windows XP在 Windows XP 中使用 Python 隐藏任务栏
【发布时间】:2011-11-09 02:11:36
【问题描述】:

有没有办法使用 Python 隐藏 Windows 任务栏?如果没有 - 有没有办法使用注册表禁用或重新调整大小并锁定它?

【问题讨论】:

    标签: python


    【解决方案1】:

    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)
    

    【讨论】:

    • 这段代码最美妙的地方在于它可以继续工作到 Windows 10。
    • 是否有可能也隐藏开始按钮?现在它仍然存在。
    • @Henrik,对于旧版本的 Windows,尝试使用 FindWindowEx 找到开始按钮或球体,就像我在 this answer 中所做的那样。澄清一下,在 Windows 10 中隐藏任务栏也会隐藏开始按钮。
    • 非常感谢。真的很感激。在 Windows 10 上完美运行
    【解决方案2】:

    只是为了添加到@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

    【讨论】:

      猜你喜欢
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 1970-01-01
      • 2012-04-09
      • 1970-01-01
      • 2013-01-26
      相关资源
      最近更新 更多