如何用Python打开应用并截图?pyautogui截图异常求助
问题原因
subprocess.call() 是阻塞式调用,它会等待你打开的 pandora.exe 进程完全退出后,才会继续执行后续的 time.sleep(5) 和 pyautogui.screenshot() 代码,这就是必须关闭应用才会触发截图的核心原因。
解决方案
将 subprocess.call() 替换为 subprocess.Popen(),它属于非阻塞式调用,启动应用后会立刻返回并继续执行后续代码:
import pyautogui import subprocess import time # 非阻塞启动目标应用 subprocess.Popen("pandora.exe") # 等待应用完成加载 time.sleep(5) # 执行截图操作 pyautogui.screenshot("ss.png")
额外提示
- 如果应用加载时长不稳定,可以适当延长
time.sleep()的参数值,或者用pyautogui.locateOnScreen()检测应用的特征元素,实现更精准的加载完成判断,避免固定等待时长的局限性。 - 若系统找不到
pandora.exe,请传入程序的完整路径,例如:r"C:\Program Files\Pandora\pandora.exe"。
内容的提问来源于stack exchange,提问作者rizad
相关产品推荐
相关产品推荐

