为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Python 后台脚本捕获屏幕截图并保存到文档

使用 Python 后台脚本捕获屏幕截图并保存到文档

撒科打诨 2023-05-09 15:15:59
我正在做一些测试活动,这需要我捕获应用程序/数据库等的屏幕截图并将其保存到文档中。整个活动有50多张截图。在 Python 中有没有一种方法可以通过它使用 Windows 快捷键(例如;CTRL ALT shift C)截取屏幕截图并将图像附加到文档文件中。我相信 python 程序应该像 Unix 中的 nohup 一样在后台运行。
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

要使用热键在 Word 中存储屏幕截图,您可以使用库的组合。

  • 使用win32gui打开Word

  • 使用python-docx更新文档并保存

  • 使用PyAutoGUI进行屏幕捕获

  • 使用键盘监听热键

要使此脚本起作用,您需要在运行脚本之前创建 Word 文档。

# Need these libraries

# pip install keyboard

# pip install PyAutoGUI

# pip install python-docx

# pip install win32gui


import keyboard

import pyautogui

from docx import Document

from docx.shared import Inches

import win32gui

from PIL import ImageGrab


shotfile = "C:/tmp/shot.png"  # temporary image storage 

docxfile = "C:/tmp/shots.docx" # main document

hotkey = 'ctrl+shift+q'  # use this combination anytime while script is running


def do_cap():

    try:

        print ('Storing capture...')

        

        hwnd = win32gui.GetForegroundWindow()  # active window

        bbox = win32gui.GetWindowRect(hwnd)  # bounding rectangle


        # capture screen

        shot = pyautogui.screenshot(region=bbox) # take screenshot, active app

        # shot = pyautogui.screenshot() # take screenshot full screen

        shot.save(shotfile) # save screenshot

        

        # append to document. Doc must exist.

        doc = Document(docxfile) # open document

        doc.add_picture(shotfile, width=Inches(7))  # add image, 7 inches wide

        doc.save(docxfile)  # update document

        print ('Done capture.')

    except Exception as e:  # allow program to keep running

        print("Capture Error:", e)


keyboard.add_hotkey(hotkey, do_cap)  # set hot keys


print("Started. Waiting for", hotkey)


keyboard.wait()   # Block forever


查看完整回答
反对 回复 2023-05-09
  • 1 回答
  • 0 关注
  • 385 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信