使用 Python 后台脚本捕获屏幕截图并保存到文档
Capturing Screenshot and saving to a Document with Python background script
我正在做一些测试 activity 这需要我捕获 applications/DB 等的屏幕截图并将其保存到文档中。整个activity有50多张截图。 Python 中有没有一种方法可以让我使用 windows 快捷键(例如;CTRL ALT shift C)截取屏幕截图并将图像附加到文档文件中。我相信 python 程序应该像 Unix 中的 nohup 一样在后台 运行。
要使用热键在 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
我正在做一些测试 activity 这需要我捕获 applications/DB 等的屏幕截图并将其保存到文档中。整个activity有50多张截图。 Python 中有没有一种方法可以让我使用 windows 快捷键(例如;CTRL ALT shift C)截取屏幕截图并将图像附加到文档文件中。我相信 python 程序应该像 Unix 中的 nohup 一样在后台 运行。
要使用热键在 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