【发布时间】:2017-10-02 19:30:36
【问题描述】:
使用 pyautogui 有没有办法获得窗口句柄,以便我可以确保仅在该窗口上执行点击?换句话说,如果我的窗口不在焦点上,则不会发生单击。此外,如果我的窗口不在焦点上,那么我将其置于焦点上,然后执行操作。
识别窗口的方式可以是类似于https://autohotkey.com/docs/commands/WinGet.htm的ID、窗口标题等
还有其他支持这种功能的 Python 模块吗?
【问题讨论】:
使用 pyautogui 有没有办法获得窗口句柄,以便我可以确保仅在该窗口上执行点击?换句话说,如果我的窗口不在焦点上,则不会发生单击。此外,如果我的窗口不在焦点上,那么我将其置于焦点上,然后执行操作。
识别窗口的方式可以是类似于https://autohotkey.com/docs/commands/WinGet.htm的ID、窗口标题等
还有其他支持这种功能的 Python 模块吗?
【问题讨论】:
【讨论】:
PyAutoGui 本身在其文档的FAQ section 中说,
问:PyAutoGUI 能否确定窗口在哪里或哪些窗口可见?它可以聚焦、最大化、最小化窗口吗?它可以读取窗口标题吗?
A:很遗憾,没有,但这些是 PyAutoGUI 计划的下一个功能。此功能正在一个名为 PyGetWindow 的 Python 包中实现,完成后将包含在 PyAutoGUI 中。
现在,如果您继续查看PyGetWindow's repo,您会看到那里还没有代码,但有一个带有此指针的random_notes.txt 文件:
在 Windows 上查找窗口标题:
http://stackoverflow.com/questions/37501191/how-to-get-windows-window-names-with-ctypes-in-python
其中有一些有趣的信息。 (我还没试过。)
【讨论】:
此代码可能有助于获取您想要最小化或最大化的窗口。示例:如果您想获得一个标题为“Stack Overflow”的 Chrome 窗口,
pyautogui.getWindowsWithTitle("Stack Overflow")[0].minimize()
或者,如果您想最小化或最大化任何标题为“音乐”的文件资源管理器窗口,同样适用。
pyautogui.getWindowsWithTitle("music")[0].maximize()
如果你不确定你需要哪个窗口,你可以得到一个列表using this
【讨论】: