试试下面代码
"""
Ctrl+V 捕获剪贴板图片
在 CMD 中运行后,按 Ctrl+V 即可将剪贴板中的图片保存到文件
按 Esc 退出程序
"""
import os
import time
from datetime import datetime
from pathlib import Path
from PIL import ImageGrab
import keyboard
# ========== 配置 ==========
SAVE_DIR = Path("clipboard_images") # 保存目录
PREFIX = "img" # 文件名前缀
FORMAT = "png" # 保存格式: png / jpg / bmp
# ===========================
SAVE_DIR.mkdir(exist_ok=True)
last_hash = None # 防止重复保存同一张图片
def on_ctrl_v():
global last_hash
# 小延迟,等系统完成剪贴板写入
time.sleep(0.15)
img = ImageGrab.grabclipboard()
if img is None:
print(" 剪贴板中没有图片,跳过。")
return
# 去重:同一张图片不重复保存
raw = img.tobytes()
current_hash = hash(raw)
if current_hash == last_hash:
print(" 图片未变化,跳过。")
return
last_hash = current_hash
# 生成文件名
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"{PREFIX}_{timestamp}.{FORMAT}"
filepath = SAVE_DIR / filename
img.save(filepath, quality=95 if FORMAT == "jpg" else None)
print(f" ✓ 已保存: {filepath.resolve()}")
print(f" 尺寸: {img.size[0]}x{img.size[1]} | 模式: {img.mode}")
def main():
print("=" * 50)
print(" 剪贴板图片捕获工具")
print("=" * 50)
print(f" 保存目录: {SAVE_DIR.resolve()}")
print(f" 格式: {FORMAT}")
print()
print(" [Ctrl+V] 捕获剪贴板图片")
print(" [Esc] 退出程序")
print("=" * 50)
print()
print("等待 Ctrl+V ...")
# 注册全局热键
keyboard.add_hotkey("ctrl+v", on_ctrl_v, suppress=False)
# 阻塞等待 Esc 退出
keyboard.wait("esc")
print("\n已退出。")
if __name__ == "__main__":
main() 网友回复
seedream5.5为啥无法将图白色背景修改成透明?
seedance2如何通过2张不同角度平视图来识别场景进行人物定位?
有没有免费的浏览器中离线运行的语音识别ai模型?
微信小程序个人版不交钱认证就不让你用二维码,报错"errcode":85411?
美丽国为啥要限制ai发展?
seedance2如何参考白模视频使用真实场景和人物生成新视频?
如何设定小孩看电视的时候每隔10分钟弹出一个题目,答对才能继续,答错继续下一题?
直播数字人根据公屏互动评论实时做出不用动作技术是什么?
未来ai文本大模型根据剧本直接生成像素风或三维白模或灰模粗糙场景动画html给视频大模型参考站位与运镜?
浏览器中如何将epub电子书转成txt文本格式?


