Windows 屏幕截图
一个纯 PowerShell 的屏幕截图工具,使用 GDI+ 捕获 Windows 屏幕。
特性
- ✅ 纯 PowerShell - 无需外部依赖
- ✅ GDI+ 图像库 - 高效的系统级屏幕捕获
- ✅ 多屏支持 - 捕获主屏幕
- ✅ 自动缩放 - 根据屏幕 DPI 自适应分辨率
- ✅ PNG 输出 - 24-bit 彩色图像
- ✅ 开源 - GitHub 源码 MIT-0 许可证
源代码透明性
本技能的所有代码都完全开放在 GitHub 上,可供审查:
这不是"下载执行"的方式。脚本代码是自包含的,在技能包中可直接审查。
脚本文件说明
本技能包中包含 screenshot.txt(PowerShell 脚本内容)。使用时:
- 将
screenshot.txt复制或重命名为screenshot.ps1 - 在 PowerShell 中执行:
powershell -File screenshot.ps1
或者直接使用 GitHub 仓库中的脚本。
环境变量
脚本会自动检查以下环境变量(可选):
OPENCLAW_MEDIA_DIR- 自定义输出目录- 若未设置,默认使用
$USERPROFILE\.openclaw\media - 脚本会自动创建此目录
- 若未设置,默认使用
设置环境变量示例
PowerShell:
$env:OPENCLAW_MEDIA_DIR = "C:\MyScreenshots"
powershell -File screenshot.ps1
Command Prompt:
set OPENCLAW_MEDIA_DIR=C:\MyScreenshots
PowerShell -File screenshot.ps1
使用方法
方法 1:直接执行
powershell -File screenshot.ps1
输出:
MEDIA:C:\Users\YourUsername\.openclaw\media\screenshot_YYYYMMDD_HHMMSS.png
方法 2:通过 OpenClaw
openclaw exec powershell -File screenshot.ps1
方法 3:发送到 Telegram(需要配置环境变量)
# 步骤 1:捕获截图
openclaw exec powershell -File screenshot.ps1
# 步骤 2:发送(需要 TELEGRAM_BOT_TOKEN 和用户 ID)
openclaw message send --channel telegram --target YOUR_USER_ID --media /path/to/screenshot.png
输出
脚本将截图保存为 PNG:
.openclaw/media/screenshot_YYYYMMDD_HHMMSS.png
并输出 MEDIA: 前缀路径用于后续处理。
技术细节
| 属性 | 值 |
|---|---|
| 图像库 | System.Drawing (GDI+) |
| 格式 | PNG 24-bit |
| 分辨率 | 自适应(根据屏幕缩放) |
| 文件大小 | 通常 50-200 KB |
| 依赖 | .NET Framework 4.x+(Windows 内置) |
故障排查
| 问题 | 解决方案 |
|---|---|
| "找不到类型 System.Drawing" | 在 .NET Framework 4.x+ 上运行(Windows 默认) |
| 图像全黑 | 检查屏幕/GPU 状态;确保不在锁屏 |
| 文件名冲突 | 脚本使用时间戳自动避免重复 |
许可
MIT-0 - 无署名、无限制使用、修改和分发。
安全声明
✅ 所有代码都是开源的且经过审查
- 脚本功能:捕获屏幕内容到 PNG 文件
- 数据处理:仅保存到本地
.openclaw/media目录 - 网络请求:无(除非显式使用 Telegram 集成)
- 隐私:仅在用户明确调用时执行