Skill: vvxer/windows-screenshot (version 1.0.3)

--- name: windows-screenshot description: Pure PowerShell GDI+ screenshot tool for Windows. No external dependencies, captures to PNG with automatic scaling. homepage: https://github.com/vvxer/windows-screenshot repository: https://github.com/vvxer/windows-screenshot metadata: openclaw: emoji: "📸" requires: env: [] install: [] --- # Windows 屏幕截图 一个纯 PowerShell 的屏幕截图工具，使用 GDI+ 捕获 Windows 屏幕。 ## 特性 - ✅ **纯 PowerShell** - 无需外部依赖 - ✅ **GDI+ 图像库** - 高效的系统级屏幕捕获 - ✅ **多屏支持** - 捕获主屏幕 - ✅ **自动缩放** - 根据屏幕 DPI 自适应分辨率 - ✅ **PNG 输出** - 24-bit 彩色图像 - ✅ **开源** - [GitHub 源码](https://github.com/vvxer/windows-screenshot) MIT-0 许可证 ## 源代码透明性 **本技能的所有代码都完全开放在 GitHub 上，可供审查：** - 📝 [screenshot.ps1 完整源码](https://github.com/vvxer/windows-screenshot/blob/main/screenshot.ps1) - 📖 [完整项目文档](https://github.com/vvxer/windows-screenshot) - 📋 [MIT-0 许可证](https://github.com/vvxer/windows-screenshot/blob/main/LICENSE) 这**不是**"下载执行"的方式。脚本代码是自包含的，在技能包中可直接审查。 ### 脚本文件说明 本技能包中包含 `screenshot.txt`（PowerShell 脚本内容）。使用时： 1. 将 `screenshot.txt` 复制或重命名为 `screenshot.ps1` 2. 在 PowerShell 中执行：`powershell -File screenshot.ps1` 或者直接使用 GitHub 仓库中的脚本。 ### 环境变量 脚本会自动检查以下环境变量（可选）： - `OPENCLAW_MEDIA_DIR` - 自定义输出目录 - 若未设置，默认使用 `$USERPROFILE\.openclaw\media` - 脚本会自动创建此目录 #### 设置环境变量示例 **PowerShell:** ```powershell $env:OPENCLAW_MEDIA_DIR = "C:\MyScreenshots" powershell -File screenshot.ps1 ``` **Command Prompt:** ```cmd set OPENCLAW_MEDIA_DIR=C:\MyScreenshots PowerShell -File screenshot.ps1 ``` ## 使用方法 ### 方法 1：直接执行 ```powershell powershell -File screenshot.ps1 ``` 输出： ``` MEDIA:C:\Users\YourUsername\.openclaw\media\screenshot_YYYYMMDD_HHMMSS.png ``` ### 方法 2：通过 OpenClaw ```bash openclaw exec powershell -File screenshot.ps1 ``` ### 方法 3：发送到 Telegram（需要配置环境变量） ```bash # 步骤 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

path: README.md
content: # Windows Screenshot - OpenClaw Skill

A pure PowerShell screenshot tool using GDI+ for Windows systems.

## Quick Start

```powershell
# Run directly
powershell -File screenshot.ps1

# Or via OpenClaw
openclaw exec powershell -File screenshot.ps1
```

## Environment Variables

- `OPENCLAW_MEDIA_DIR` - Custom output directory (optional)
  - Default: `$USERPROFILE\.openclaw\media`
  - Script creates directory automatically if needed

## Files

- **screenshot.txt** - PowerShell script (rename to .ps1 if needed)
- **SKILL.md** - Skill documentation and metadata
- **README.md** - This file

## Source Code

All code is open source and available on GitHub for review:
https://github.com/vvxer/windows-screenshot

## License

MIT-0 (Free to use, modify, and redistribute without attribution)



path: screenshot.txt
content: Add-Type -AssemblyName System.Windows.Forms,System.Drawing
$screen = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds
$bmp = New-Object System.Drawing.Bitmap($screen.Width, $screen.Height)
$g = [System.Drawing.Graphics]::FromImage($bmp)
$g.CopyFromScreen($screen.Location, [System.Drawing.Point]::Empty, $screen.Size)
# Use environment variable for cross-platform compatibility
$openclaw_media = $env:OPENCLAW_MEDIA_DIR
if (-not $openclaw_media) {
  $openclaw_media = Join-Path $env:USERPROFILE ".openclaw\media"
}
if (!(Test-Path $openclaw_media)) { New-Item -ItemType Directory -Path $openclaw_media | Out-Null }
$path = Join-Path $openclaw_media ("screenshot_$(Get-Date -Format 'yyyyMMdd_HHmmss').png")
$bmp.Save($path)
$g.Dispose()
$bmp.Dispose()
Write-Output "MEDIA:$path"


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)