【问题标题】:Python pyautogui window handlePython pyautogui 窗口句柄
【发布时间】:2017-10-02 19:30:36
【问题描述】:

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

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

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

【问题讨论】:

    标签: python windows pyautogui


    【解决方案1】:

    【讨论】:

    • 第一个链接失效
    【解决方案2】:

    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

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

    【讨论】:

    【解决方案3】:

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

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

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

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

    如果你不确定你需要哪个窗口,你可以得到一个列表using this

    【讨论】:

    • 我应该注意,这些函数是未记录的,API 可能会在 PyAutoGUI 的未来版本中发生变化。
    • 截至 2019 年,模块 'pyautogui' 没有属性 'getWindow'
    • 现在叫做 pyautogui.getWindowsWithTitle
    猜你喜欢
    • 1970-01-01
    • 2015-02-23
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 2017-06-19
    • 2012-11-22
    • 1970-01-01
    相关资源
    最近更新 更多