纯 PowerShell 实现的 Windows 屏幕截图工具,基于 GDI+ 系统级捕获,零外部依赖,支持多屏自适应 DPI 缩放,输出 PNG 格式便于自动化处理。
说明:
## 核心用法
windows-screenshot 是一个自包含的 PowerShell 脚本,利用 Windows 内置的 System.Drawing (GDI+) 库实现屏幕捕获。用户可通过 `powershell -File screenshot.ps1` 直接执行,或通过 OpenClaw 框架调用。脚本支持通过 `OPENCLAW_MEDIA_DIR` 环境变量自定义输出路径,默认保存至 `$USERPROFILE\.openclaw\media`,文件名带时间戳避免冲突。
## 显著优点
– **零依赖部署**:无需安装第三方软件或模块,依赖 Windows 原生 .NET Framework 4.x+
– **源码完全透明**:MIT-0 许可证,GitHub 开源可审查,非黑盒工具
– **系统级捕获**:GDI+ 直接调用显卡帧缓冲,兼容性优于部分截图 API
– **自动化友好**:输出 `MEDIA:` 前缀路径,便于流水线集成(如 Telegram Bot 推送)
– **高 DPI 适配**:自动感知屏幕缩放比例,避免模糊或裁切问题
## 潜在局限
– **仅支持主屏幕**:多显示器环境下无法指定副屏捕获
– **Windows 独占**:依赖 .NET Framework,无跨平台能力
– **无交互界面**:纯命令行工具,不适合需要选区截图的场景
– **24-bit 色深**:无透明度通道,专业设计场景可能受限
## 适合人群
DevOps 工程师、自动化测试开发者、需要无 GUI 截图方案的技术用户,以及重视源码可审计性的安全敏感场景。
## 常规风险
– **权限要求**:需用户级权限访问屏幕缓冲区,企业环境可能有组策略限制
– **数据本地性**:虽无网络传输,但截图文件落盘需关注磁盘加密状态
– **时间戳依赖**:快速连续调用可能因秒级精度产生文件名竞争(概率极低)








