如何在Python中使用pywinauto库编写代码实现截图功能
pywinauto实现窗口截图的实现方案
你需要先安装对应的依赖库:pip install pywinauto pillow
完整实现代码
下面的代码覆盖两种常用截图场景:捕获整个目标窗口、捕获窗口内指定控件,可根据实际需求选用:
from pywinauto import Application import time def capture_target_window(window_title: str, save_path: str = "window_capture.png", bring_front: bool = False): """ 捕获指定标题的整个窗口 :param window_title: 目标窗口的标题文本,支持模糊匹配 :param save_path: 截图保存路径 :param bring_front: 是否先把窗口提到前台再截图(硬渲染类窗口需要前台才能正常截取) """ # 连接已打开的目标窗口,如果需要启动新程序可替换为Application().start()方法 app = Application(backend="uia").connect(title_re=rf".*{window_title}.*", timeout=10) win = app.top_window() if bring_front: win.set_focus() time.sleep(0.3) # 等待窗口激活完成 # 执行截图操作 img = win.capture_as_image() img.save(save_path) print(f"窗口截图已保存到: {save_path}") return img def capture_specific_control(window_title: str, control_type: str, control_name: str, save_path: str = "control_capture.png"): """ 捕获窗口内指定控件的内容,比如弹窗里的按钮、文本区域都可单独截取 :param window_title: 目标窗口标题 :param control_type: 控件类型,可选值为Button、Edit、Text、Pane等 :param control_name: 控件上显示的文本内容 :param save_path: 截图保存路径 """ app = Application(backend="uia").connect(title_re=rf".*{window_title}.*", timeout=10) win = app.top_window() # 定位目标控件 target_ctrl = win.child_window(title=control_name, control_type=control_type) # 执行控件截图 img = target_ctrl.capture_as_image() img.save(save_path) print(f"控件截图已保存到: {save_path}") return img if __name__ == "__main__": # 替换为你要截图的窗口标题即可,比如附图的系统错误弹窗标题一般为"错误" TARGET_WINDOW_TITLE = "错误" # 截取整个窗口 capture_target_window(TARGET_WINDOW_TITLE, save_path="full_window.png") # 示例:单独截取窗口里的"确定"按钮 # capture_specific_control(TARGET_WINDOW_TITLE, control_type="Button", control_name="确定", save_path="confirm_btn.png")
使用注意事项
- 后端选择:传统Win32程序可将代码里的
backend="uia"替换为backend="win32",WPF、UWP、系统弹窗类界面用uia后端兼容性更好 - 权限要求:如果要截取系统级弹窗(比如UAC提示、系统错误框),需要用管理员权限运行Python脚本,否则会因权限不足无法连接目标窗口
- 匹配问题:如果窗口标题匹配不准,可以用pywinauto自带的Inspect工具查看窗口的真实类名、标题,调整connect方法的匹配参数即可
- 特殊窗口:部分用OpenGL、DirectX硬渲染的窗口,必须将窗口切到前台无遮挡才能截到正常内容,把
bring_front参数设为True即可
待捕获的目标界面参考:
内容的提问来源于stack exchange,提问作者techlearner
相关产品推荐
相关产品推荐

