首页 > 解决方案 > 如何让 python 在另一个应用程序中等待“等待”提示?

问题描述

我正在尝试使用 python 从条形码扫描仪中获取字符串并使用它来选择要执行的激光雕刻机文件。我可以使用正确的文件打开 Max Marking(激光软件),但之后我就迷路了。我想按“f2”,这是运行激光的热键,然后等待 Max Marking 软件在屏幕上显示的“etching”提示,然后关闭 Max Marking。我想我可以测试每个雕刻品各自的时间长度并只使用 time.sleep(SomeAmountOfTime),但我想让关闭程序实际上取决于雕刻完成。有没有办法让 python 等待激光运行时显示的“当前蚀刻”提示?这是在 Max Marking 应用程序中,而不是 Windows 提示。

def notepad():
    os.startfile('....filepath....')
    time.sleep(2)
    pyautogui.press('f2')
    #Where I need to wait on etching prompt
    os.system('taskkill /f /im maxmarking.exe')

标签: python

解决方案


一个非常简单的解决方案可能是_ = input("press ENTER when etching is finished"),它不是自动的但可靠的。

如果您想要完全自动化的东西,那将更加困难。要检测是否已显示另一个进程中的提示,它要么提供一个 API 来执行此操作(我对此表示怀疑),要么它会非常 hacky(参见“窗口自动化”的整个主题,例如这个问题)。

如果不得不返回到 Python 执行脚本很麻烦,您可以使用热键向它发送消息,例如查看这个问题


推荐阅读