0

Python で Windows のスタート メニューを置き換えるプログラムを作成しています。以下に示すように、タスクバーを非表示にする方法を見つけることができましたが、開始オーブ (Windows ボタン) を非表示にする方法が見つかりません。

import ctypes
from ctypes import wintypes

FindWindow = ctypes.windll.user32.FindWindowA
FindWindow.restype = wintypes.HWND
FindWindow.argtypes = [
    wintypes.LPCSTR, #lpClassName
    wintypes.LPCSTR, #lpWindowName
]

SetWindowPos = ctypes.windll.user32.SetWindowPos
SetWindowPos.restype = wintypes.BOOL
SetWindowPos.argtypes = [
    wintypes.HWND, #hWnd
    wintypes.HWND, #hWndInsertAfter
    ctypes.c_int,  #X
    ctypes.c_int,  #Y
    ctypes.c_int,  #cx
    ctypes.c_int,  #cy
   ctypes.c_uint, #uFlags
] 

TOGGLE_HIDEWINDOW = 0x80
TOGGLE_UNHIDEWINDOW = 0x40

def hide_taskbar():
    handleW1 = FindWindow(b"Shell_traywnd", b"")
    SetWindowPos(handleW1, 0, 0, 0, 0, 0, TOGGLE_HIDEWINDOW)

def unhide_taskbar():
    handleW1 = FindWindow(b"Shell_traywnd", b"")
    SetWindowPos(handleW1, 0, 0, 0, 0, 0, TOGGLE_UNHIDEWINDOW)
4

1 に答える 1

2

FindWindowOrbのクラス アトム 0xC017を使用して、開始 Orb へのハンドルを取得できます。次に、ShowWindowまたはSetWindowPosを使用してタスクバーとオーブを非表示にします。例えば:

import ctypes
from ctypes import wintypes

user32 = ctypes.WinDLL("user32")

SW_HIDE = 0
SW_SHOW = 5

START_ATOM = wintypes.LPCWSTR(0xC017) # i.e. MAKEINTATOM(...)

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():
    hWndTray = user32.FindWindowW(u"Shell_traywnd", None)
    user32.ShowWindow(hWndTray, SW_HIDE)
    hWndStart = user32.FindWindowW(START_ATOM, None)
    if hWndStart:
        user32.ShowWindow(hWndStart, SW_HIDE)

def unhide_taskbar():
    hWndTray = user32.FindWindowW(u"Shell_traywnd", None)
    user32.ShowWindow(hWndTray, SW_SHOW)
    hWndStart = user32.FindWindowW(START_ATOM, None)
    if hWndStart:
        user32.ShowWindow(hWndStart, SW_SHOW)
于 2013-05-20T14:04:32.880 に答える