有没有办法通过 Python 3 最小化 Windows 7 中的窗口?

Sta*_*tec 3 python windows winapi

我正在运行一个带有内置 Python 解释器的程序。定期我希望该程序能够“全屏”或最小化。

这将在 Windows 7 上运行。

我想知道是否有办法在 Python 中做到这一点(这样我就可以从我的程序中调用该函数)。仅使用标准库是理想的,但如果有办法使用外部模块来做到这一点,那也很好。

谢谢。

Mar*_*ans 6

要最小化窗口,您需要知道窗口的标题或其窗口类。当确切的窗口标题未知时,窗口类很有用。例如,以下脚本显示了两种不同的方法来最小化 Microsoft Windows 记事本应用程序,假设:

import ctypes

notepad_handle = ctypes.windll.user32.FindWindowW(None, "Untitled - Notepad")
ctypes.windll.user32.ShowWindow(notepad_handle, 6)

notepad_handle = ctypes.windll.user32.FindWindowW(u"Notepad", None) 
ctypes.windll.user32.ShowWindow(notepad_handle, 6)  
Run Code Online (Sandbox Code Playgroud)

要确定要使用的类名,您需要使用诸如 Microsoft 的 Spy++ 之类的工具。显然,如果记事本是用一个文件打开的,它会有一个不同的标题,例如test.txt - Notepad. 如果是这种情况,第一个示例现在将无法找到窗口,但第二个示例仍然可以工作。

如果有两份记事本正在运行,那么只有一份会被关闭。如果需要关闭所有副本,则需要枚举所有需要更多代码的窗口。

的ShowWindow命令也可用于恢复窗口。这里6使用的是 Windows 代码SW_MINIMIZE