【问题标题】:Is there a way to minimize a window in Windows 7 via Python 3?有没有办法通过 Python 3 最小化 Windows 7 中的窗口?
【发布时间】:2015-09-02 03:21:33
【问题描述】:

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

这将在 Windows 7 上运行。

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

谢谢。

【问题讨论】:

  • Window 的名称是什么,可以更改吗?
  • 它只是一个弹出的视频窗口。我无法控制更改它。
  • 你是如何创建窗口的?

标签: python windows winapi


【解决方案1】:

要最小化窗口,您需要知道窗口的标题或其窗口类。当确切的窗口标题未知时,窗口类很有用。例如,以下脚本展示了两种不同的方法来最小化 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 命令也可用于恢复窗口。这里使用的6SW_MINIMIZE 的Windows 代码。

【讨论】:

  • 正是我想要的。纯粹在python中。很好的答案
  • 按类查找时,为什么uNotepad 之前?
  • 查看 Microsoft 对 FindWindowW 的定义。我似乎记得的 W 代表宽。
  • 最小化自己的/自己的控制台窗口(python程序在其中运行):stackoverflow.com/a/41409950/2441026
  • 6SW_MINIMIZE 的代码。查看ShowWindow 链接了解更多选项。
猜你喜欢
  • 2010-09-09
  • 1970-01-01
  • 2016-08-27
  • 2012-02-29
  • 2019-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多