Back to skills
extension
Category: Development & EngineeringNo API key required

Windows Screenshot

Pure PowerShell GDI+ screenshot tool for Windows. No external dependencies, captures to PNG with automatic scaling.

Windows 屏幕截图

一个纯 PowerShell 的屏幕截图工具,使用 GDI+ 捕获 Windows 屏幕。

特性

  • 纯 PowerShell - 无需外部依赖
  • GDI+ 图像库 - 高效的系统级屏幕捕获
  • 多屏支持 - 捕获主屏幕
  • 自动缩放 - 根据屏幕 DPI 自适应分辨率
  • PNG 输出 - 24-bit 彩色图像
  • 开源 - GitHub 源码 MIT-0 许可证

源代码透明性

本技能的所有代码都完全开放在 GitHub 上,可供审查:

不是"下载执行"的方式。脚本代码是自包含的,在技能包中可直接审查。

脚本文件说明

本技能包中包含 screenshot.txt(PowerShell 脚本内容)。使用时:

  1. screenshot.txt 复制或重命名为 screenshot.ps1
  2. 在 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 集成)
  • 隐私:仅在用户明确调用时执行

源码:https://github.com/vvxer/windows-screenshot