# windows-ui-automation

Скилл для автоматизации Windows-приложений через UI Automation и Win32 API: поиск элементов, ввод, работа с процессами. Уровень риска — HIGH.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1300 установок · ★ 48
- Автор: martinholovsky
- Лицензия: Unlicense · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/martinholovsky/claude-skills-generator/tree/HEAD/skills/windows-ui-automation/SKILL.md
- Обновлён: 2025-12-06
- HTML: https://affpapa.org/nevibecode/skills/windows-ui-automation

## Что делает

Скилл даёт агенту контекст по Windows UI Automation: интерфейсы IUIAutomation и IUIAutomationElement, control patterns, интеграция с Win32 через SendInput, SetForegroundWindow и EnumWindows. Внутри — паттерны безопасного поиска элементов и симуляции ввода, а также правила проверки процессов и ведения аудит-логов. Основной файл `SKILL.md` держит контекст для решений, детали реализации вынесены в `references/`.

Скилл помечен как HIGH-RISK: он работает с системным доступом, манипуляцией процессами и инъекцией ввода. В примерах кода есть список заблокированных процессов — менеджеры паролей, `regedit.exe`, `cmd.exe`, `powershell.exe`, `taskmgr.exe` — и запрещённые сочетания клавиш вроде Win+R. Симуляция ввода требует тира `standard` или `elevated`, read-only её не пропустит. Если ваша автоматизация должна трогать такие приложения, скилл её заблокирует, и это повод пересмотреть сценарий, а не обходить проверку.

Для Python-примеров нужны библиотеки `comtypes` или `pywinauto`. Рекомендуется Windows 10/11 с UIA v3, минимум — Windows 7 с UIA v2; устаревший подход только через MSAA не поддерживается. Внутри заложены таймауты и rate limit на ввод, чтобы автоматизация не ушла в разнос.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add martinholovsky/claude-skills-generator --skill windows-ui-automation -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/windows-ui-automation/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/windows-ui-automation/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add martinholovsky/claude-skills-generator --skill windows-ui-automation -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/windows-ui-automation/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add martinholovsky/claude-skills-generator --skill windows-ui-automation -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/windows-ui-automation/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install martinholovsky/claude-skills-generator windows-ui-automation
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/windows-ui-automation/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add martinholovsky/claude-skills-generator --skill windows-ui-automation -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/martinholovsky/claude-skills-generator --path skills/windows-ui-automation
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/windows-ui-automation/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add martinholovsky/claude-skills-generator --skill windows-ui-automation -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/martinholovsky/claude-skills-generator/tree/HEAD/skills/windows-ui-automation/SKILL.md

## Когда брать
- найти элемент в окне Windows-приложения по имени и не задеть чужие процессы
- отправить нажатия клавиш в конкретное окно с проверкой цели
- заблокировать автоматизацию для менеджеров паролей и системных утилит
- развести уровни доступа: read-only, standard, elevated
- поймать зависший поиск элемента по таймауту и корректно завершиться

## Примеры запросов агенту
- Напиши скрипт на Python, который через UIA находит кнопку «Сохранить» в окне нашего приложения и нажимает её
- Добавь в мой скрипт проверку процесса перед вводом и аудит-лог операций
- Почему мой поиск элемента падает на read-only тире — покажи, как перейти на standard

## Похожие
- [Windows-MCP](https://affpapa.org/nevibecode/mcp/windows-mcp.md) — MCP-сервер · ★ 10221
- [computer-automation](https://affpapa.org/nevibecode/skills/computer-automation.md) — скилл · 2200 установок
- [windows-privilege-escalation](https://affpapa.org/nevibecode/skills/windows-privilege-escalation.md) — скилл · 3600 установок
- [windows-av-evasion](https://affpapa.org/nevibecode/skills/windows-av-evasion.md) — скилл · 3600 установок
- [ntwarden-windows-analysis-toolkit](https://affpapa.org/nevibecode/skills/ntwarden-windows-analysis-toolkit.md) — скилл · 443 установки
- [windows-hardening](https://affpapa.org/nevibecode/skills/windows-hardening.md) — скилл · 388 установок

Из того же набора: [martinholovsky/claude-skills-generator](https://affpapa.org/nevibecode/by/martinholovsky/claude-skills-generator.md) — 15 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
