首页 > 解决方案 > 如何在python中使用Ctypes最小化窗口

问题描述

像最大化我们可以这样做

查询中的 elif '最大化':

 speak('Ok sir!')

 user32 = ctypes.WinDLL('user32')

 SW_MAXIMISE = 3

 hWnd = user32.GetForegroundWindow()

 user32.ShowWindow(hWnd, SW_MAXIMISE)

 speak('done sir!')

标签: pythonmodulectypesminimizemaximize

解决方案


确保设置.argtypes.restype。 被定义为指针,如果您未指定HWND,64 位系统将不会像ctypes假设(32 位)那样正确传递或返回参数。int

import ctypes
from ctypes import wintypes as w

user32 = ctypes.WinDLL('user32')
user32.GetForegroundWindow.argtypes = ()
user32.GetForegroundWindow.restype = w.HWND
user32.ShowWindow.argtypes = w.HWND,w.BOOL
user32.ShowWindow.restype = w.BOOL

# From https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow
SW_MAXIMIZE = 3
SW_MINIMIZE = 6

hWnd = user32.GetForegroundWindow()
user32.ShowWindow(hWnd, SW_MINIMIZE)

推荐阅读