本文介绍python调用微信截图功能实现:监听键盘按键,触发截图功能
一、技术原理
- 通过dos方式调用PrScrn.dll来实现截图功能
- 通过监听键盘按键触发截图
二、安装库
venv\Scripts\python.exe -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ keyboard
venv\Scripts\python.exe -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pillow
keyboard:监听键盘事件
pillow:保存图片
三、创建main.py文件
代码如下:
import os
import keyboard as keyboard
from time import sleep
from PIL import Image, ImageGrab
if __name__ == '__main__':
while True:
if keyboard.wait(hotkey='ctrl + alt + a') == None:
# 清空剪切板
from ctypes import windll
if windll.user32.OpenClipboard(None):
windll.user32.EmptyClipboard()
windll.user32.CloseClipboard()
print('开始截图')
os.system('start /B rundll32 PrScrn.dll PrScrn')
# 等待截图后放到剪切板
im = ImageGrab.grabclipboard()
while not im:
im = ImageGrab.grabclipboard()
sleep(0.5)
print('截图完成')
if isinstance(im, Image.Image):
im.save('Picture.png')
print('保存成功')
else:
print('保存失败,重新截图')
说明:
- 调用PrScrn.dll时,加上start /B前缀就不会弹出dos窗口,程序不会阻塞
- 程序不会阻塞,我们就需要根据剪切板里面是否有数据来判断有没有截图完成,所以需要先清空剪切板
四、打包成exe程序
venv\Scripts\pyinstaller.exe -F -i log.ico main.py --noconsole
五、源码
源码下载,里面包含main.py和PrScrn.dll文件