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

时间:2015-09-02 03:21:34

标签: python windows winapi

我正在运行一个内置Python解释器的程序。我希望该程序能够定期进入全屏"或者最小化。

这将在Windows 7上运行。

我想知道是否有办法在Python中执行此操作(以便我可以从我的程序中调用该函数)。仅使用标准库是理想的,但如果有办法使用外部模块,那也没关系。

感谢。

1 个答案:

答案 0 :(得分:4)

要最小化窗口,您需要知道窗口的标题或窗口类。当确切的窗口标题未知时,窗口类很有用。例如,以下脚本显示了两种不同的方法来最小化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)  

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

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

ShowWindow命令也可用于恢复窗口。