# Windows Screenshot

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

- Skill: `khaicafe/windows-screenshot` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add khaicafe/windows-screenshot`
- Raw SKILL.md: https://api.skillmd.com/api/skills/khaicafe/windows-screenshot/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: khaicafe (https://skillmd.com/u/khaicafe)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/khaicafe/windows-screenshot

---


# 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

