5分钟上手!ShareX+Python打造截图自动推送神器
你是否还在为截图后手动发送通知而烦恼?运营人员频繁截取活动数据、客服需要快速分享报错界面、设计师同步修改进度时,传统"截图→保存→打开APP→粘贴→发送"的流程至少需要6步操作。本文将带你用ShareX结合Python脚本,实现截图完成后自动推送到手机的Pushover服务,全程仅需3步配置,每天节省1小时重复工作。
读完本文你将获得:
- 掌握ShareX自定义动作配置方法
- 编写15行Python推送脚本的能力
- 打通截图工具与即时通知的全链路解决方案
ShareX简介与工作原理
ShareX是一款开源的屏幕捕获与文件分享工具,支持快捷键截图、滚动截屏、延时录制等30+高级功能。其核心优势在于模块化的任务系统,通过"捕获→处理→上传→分享"四步流程,可将截图等内容无缝对接至云存储或通知服务。
项目核心功能模块位于以下路径:
准备工作:环境与工具
实现截图推送需要以下准备:
通过以下命令安装依赖:
pip install requests
步骤一:配置ShareX自定义动作
ShareX的强大之处在于支持自定义工作流,我们需要创建一个新的"截图后动作":
- 打开ShareX主界面,依次点击【任务设置】→【动作】→【添加】
- 动作名称填写"推送至Pushover"
- 触发事件选择"截图完成后"
- 动作类型选择"运行程序"
- 在程序路径中输入Python可执行文件路径(通常为
C:\Python39\python.exe) - 参数栏填写脚本路径(如
D:\scripts\pushover_upload.py "%output")
关键配置文件路径:
步骤二:编写Python推送脚本
创建pushover_upload.py文件,实现截图文件读取与Pushover API调用:
import requests
import sys
# Pushover配置(替换为你的令牌)
API_TOKEN = "your_api_token"
USER_KEY = "your_user_key"
def send_screenshot(file_path):
url = "https://api.pushover.net/1/messages.json"
files = {"attachment": open(file_path, "rb")}
data = {
"token": API_TOKEN,
"user": USER_KEY,
"title": "新截图通知",
"message": "ShareX自动推送的截图"
}
response = requests.post(url, files=files, data=data)
print(response.json())
if __name__ == "__main__":
if len(sys.argv) > 1:
send_screenshot(sys.argv[1])
脚本工作流程:
- 通过命令行参数接收ShareX传递的截图路径
- 构造包含图片附件的Pushover API请求
- 发送HTTP POST请求完成推送
核心代码解析:
- 使用requests库处理multipart/form-data格式上传
- 通过sys.argv获取ShareX传递的截图文件路径
- 支持JPG/PNG等多种图片格式
步骤三:测试与故障排除
完成配置后,按默认截图快捷键PrintScreen测试流程:
- 截取任意区域屏幕
- ShareX自动保存截图并调用Python脚本
- 手机端Pushover应用接收通知
常见问题解决方案:
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 无通知接收 | API令牌错误 | 检查Pushover控制台确认凭据 |
| 脚本报错 | Python路径错误 | 在动作配置中使用where python命令获取正确路径 |
| 图片无法显示 | 文件权限问题 | 修改ShareX保存路径为C:\Users\Public\Pictures |
任务执行日志可在以下路径查看:
- ShareX/Logger.cs:系统日志记录
- ShareX/RecentTaskManager.cs:任务历史记录
高级扩展:实现智能通知
通过扩展Python脚本,可添加OCR文字识别、截图内容分类等高级功能。例如使用pytesseract识别截图中的错误信息,自动添加标签:
import pytesseract
from PIL import Image
def extract_text_from_image(file_path):
text = pytesseract.image_to_string(Image.open(file_path))
if "Error" in text:
return "[错误截图] " + text[:50]
return "[普通截图] 自动推送"
将此功能集成到消息标题中,可显著提升通知的信息密度。相关实现可参考项目中的OCR模块:ShareX/HelpersLib/OCR
总结与下一步
本文介绍的ShareX+Python方案已实现截图自动推送的核心功能,通过30分钟配置即可投入生产环境。建议后续探索:
- 多终端同步:结合ShareX.UploadersLib/FileUploaders实现截图云端备份
- 消息加密:使用ShareX.HelpersLib/Cryptographic模块保护敏感截图
- 批量处理:通过ShareX/TaskManager.cs扩展定时截图任务
收藏本文,关注项目更新日志,获取更多自动化技巧。你有哪些截图工作流优化经验?欢迎在评论区分享!
本文配套脚本模板已上传至项目仓库:ShareX/Tools/PushoverScript
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



