使用 pyautogui 有没有办法获取窗口句柄,以便我可以确保仅在该窗口上执行单击?换句话说,如果我的窗口没有聚焦,则不会发生单击。此外,如果我的窗口没有聚焦,那么我会将其聚焦,然后执行操作。
识别窗口的方式可以是 ID、窗口标题等,与此类似 https://autohotkey.com/docs/commands/WinGet.htm
还有其他Python模块支持这种功能吗?
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
其中有一些有趣的信息。 (我还没试过。)
还有其他Python模块支持这种功能吗?
https://github.com/pywinauto/pywinauto
https://pywinauto.readthedocs.io/en/latest/#some-similar-tools-for-comparison列出了其他类似的Python工具:
为了在已经最大化但未聚焦的应用程序页面上使用 pyautogui 首先最小化十最大化:
pyautogui.getWindowsWithTitle("FileZilla")[0].minimize()
pyautogui.getWindowsWithTitle("FileZilla")[0].maximize()