Python pyautogui 窗口句柄

问题描述 投票:0回答:4

使用 pyautogui 有没有办法获取窗口句柄,以便我可以确保仅在该窗口上执行单击?换句话说,如果我的窗口没有聚焦,则不会发生单击。此外,如果我的窗口没有聚焦,那么我会将其聚焦,然后执行操作。

识别窗口的方式可以是 ID、窗口标题等,与此类似 https://autohotkey.com/docs/commands/WinGet.htm

还有其他Python模块支持这种功能吗?

python windows pyautogui
4个回答
20
投票

此代码可能有助于获取您想要最小化或最大化的窗口。示例:如果您想获得一个标题为“Stack Overflow”的 Chrome 窗口,

    pyautogui.getWindowsWithTitle("Stack Overflow")[0].minimize()

或者,如果您想最小化或最大化任何标题为“音乐”的文件资源管理器窗口,同样的情况也适用。

    pyautogui.getWindowsWithTitle("music")[0].maximize()

如果您不确定需要哪个窗口,您可以使用此获取列表


14
投票

PyAutoGui 本身在其文档的 FAQ 部分

中说道

问:PyAutoGUI 能否找出窗口在哪里或哪些窗口可见?它可以聚焦、最大化、最小化窗口吗?它可以读取窗口标题吗?

A:不幸的是不是,但这些是 PyAutoGUI 计划的下一个功能。此功能正在名为 PyGetWindow 的 Python 包中实现,完成后将包含在 PyAutoGUI 中。

现在,如果您继续访问 PyGetWindow 的存储库,您会看到那里还没有代码,但有一个 random_notes.txt 文件,其中包含以下指针:

在 Windows 上查找窗口标题:

http://stackoverflow.com/questions/37501191/how-to-get-windows-window-names-with-ctypes-in-python

其中有一些有趣的信息。 (我还没试过。)


9
投票

还有其他Python模块支持这种功能吗?

https://github.com/pywinauto/pywinauto

https://pywinauto.readthedocs.io/en/latest/#some-similar-tools-for-comparison列出了其他类似的Python工具:

  • PyAutoGui - 一个流行的跨平台库(具有基于图像的搜索,没有基于文本的控件操作)。
  • Lackey - Sikuli 的纯 Python 替代品(基于图像模式匹配)。
  • AXUI - MS UI 自动化 API 的包装器之一。 winGuiAuto - 使用 Win32 API 的另一个模块。

0
投票

为了在已经最大化但未聚焦的应用程序页面上使用 pyautogui 首先最小化十最大化:

pyautogui.getWindowsWithTitle("FileZilla")[0].minimize()
pyautogui.getWindowsWithTitle("FileZilla")[0].maximize()
© www.soinside.com 2019 - 2024. All rights reserved.