Skill: louisownopenclaw-netizen/windows-browser-ops (version 0.1.0)

--- name: windows-browser-ops description: Windows Desktop 浏览器远程操控。用于在 Discord / 本地会话中触发 Edge/Chrome 执行“打开网页、交互、截图、打包下载”等动作，并回传证据。 --- # Windows Browser Ops ## Overview - 让 Desktop 节点把 Edge（或默认浏览器）当作“远程手”来执行导航、交互与取证。 - 典型使用场景：远程帮少爷打开网页截图、下载文件、在 Discord 演示浏览器操作。 ## Prerequisites 1. Desktop 节点已 `openclaw devices approve` 并可通过 `tools.exec node=Desktop` 执行命令。 2. PowerShell 有权限运行本 skill 的脚本（默认位于 [REDACTED_SECRET]）。 3. Edge 已登录目标账号（若需），并允许运行图形界面命令。 4. RDP 会话保持解锁，确保截图与 UIAutomation 可用。 ## Quick Start | 需求 | 步骤 | |------|------| | 打开网页 + 截图 | 1) `launch_edge.ps1 -Url <网址>` 2) `focus_edge.ps1` 3) `capture_screenshot.ps1 -Output <路径>` 4) 把截图上传给少爷 | | 下载文件并打包 | 1) 导航并执行下载 2) 等待 `.crdownload` 消失 3) `download_and_zip.ps1 -SourcePath "C:\\Users\\<USER>\\Downloads" -ZipPath %TEMP%\\edge-export.zip` 4) 上传 ZIP | ## Workflow Decision Tree 1. **识别类别**： - 只需打开/截图 → 走 "导航 + 取证" 路线。 - 需填写表单/点击按钮 → 额外插入 UIAutomation / JS 注入步骤。 - 需下载 → 加入“监控下载并打包”步骤。 2. **准备环境**：若 Edge 未运行先调用 `launch_edge.ps1`，再 `focus_edge.ps1`。 3. **执行动作**：根据请求选择脚本或自定义 PowerShell。 4. **取证 + 回传**：截图 / 保存日志 / 打包下载并上传。 ## Task Guide ### 1. 启动 & 聚焦浏览器 1. `launch_edge.ps1 -Url <初始URL>`：若 Edge 未运行则启动（未来可扩展到 Chrome）。 2. `focus_edge.ps1`：调用 Win32 API 把 Edge 窗口置前。若失败，重启 Edge 并重试。 ### 2. 导航与交互 - `edge_nav.ps1 -Url <目标>`：当前版本通过重新打开 Edge 导航，后续可换成 UIAutomation/DevTools。 - 复杂互动：使用 PowerShell `Add-Type -AssemblyName UIAutomationClient` 获取控件；参考 `references/edge_playbook.md` 中的片段。 ### 3. 取证 - `capture_screenshot.ps1 -Output %TEMP%\\edge-shot.png` 捕捉全屏。必要时修改脚本以截取指定窗口。 - 若要导出 PDF，可在 Edge 使用 `Ctrl+P` + `Enter`（后续可通过 SendKeys/AutoHotkey 脚本扩展）。 ### 4. 整理下载 1. 轮询 `Downloads`，等待 `.crdownload` 文件清空。 2. `download_and_zip.ps1 -SourcePath <下载目录> -ZipPath %TEMP%\\edge-export.zip`。 3. 上传 ZIP 并在回复中说明包含内容与时间戳。 ## Scripts Reference | 脚本 | 作用 | 备注 | |-------|------|------| | `scripts/launch_edge.ps1` | 启动 Edge 并可选导航到 URL | 需改进为检测执行路径 / 支持 Chrome | | `scripts/focus_edge.ps1` | 调用 Win32 API 将 Edge 置前 | 后续可加入 ShowWindowAsync | | `scripts/edge_nav.ps1` | 导航到目标 URL | 未来替换为 DevTools/automation | | `scripts/capture_screenshot.ps1` | 全屏截图 | 当前抓取主屏；多屏需扩展 | | `scripts/download_and_zip.ps1` | 打包下载目录 | 记得过滤旧文件 | > Windows 本地实测时，将这些脚本复制到 `C:\Users\louis\openclaw-scripts\windows-browser-ops\`，并使用 WSL 跨环境调用： > > ```bash > /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe \ > -File C:\Users\louis\openclaw-scripts\windows-browser-ops\edge_nav.ps1 \\ > -Url "https://www.microsoft.com" > /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe \ > -File C:\Users\louis\openclaw-scripts\windows-browser-ops\capture_screenshot.ps1 \\ > -Output C:\Users\louis\Desktop\edge-shot.png > /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe \ > -File C:\Users\louis\openclaw-scripts\windows-browser-ops\download_and_zip.ps1 \\ > -SourcePath C:\Users\louis\Downloads \\ > -ZipPath C:\Users\louis\Desktop\edge-downloads.zip > ``` 更多细节与扩展想法见 `references/api_reference.md` 与 `references/edge_playbook.md`。 ## Troubleshooting - **Edge 没有窗口句柄**：可能全部窗口最小化或在其他虚拟桌面，重新 `Start-Process msedge`。 - **截图全黑/空白**：确认远程会话未锁屏。必要时开启 `tscon` 让会话保持前台。 - **脚本执行策略阻止**：在 Desktop 节点上提前 `Set-ExecutionPolicy RemoteSigned -Scope CurrentUser`。 - **DevTools/自动化受限**：如需更稳定交互，考虑安装 AutoHotkey 或 Playwright，并在 references 中记录使用方式。

path: assets/example_asset.txt
content: # Example Asset File

This placeholder represents where asset files would be stored.
Replace with actual asset files (templates, images, fonts, etc.) or delete if not needed.

Asset files are NOT intended to be loaded into context, but rather used within
the output Claude produces.

Example asset files from other skills:
- Brand guidelines: logo.png, slides_template.pptx
- Frontend builder: hello-world/ directory with HTML/React boilerplate
- Typography: custom-font.ttf, font-family.woff2
- Data: sample_data.csv, test_dataset.json

## Common Asset Types

- Templates: .pptx, .docx, boilerplate directories
- Images: .png, .jpg, .svg, .gif
- Fonts: .ttf, .otf, .woff, .woff2
- Boilerplate code: Project directories, starter files
- Icons: .ico, .svg
- Data files: .csv, .json, .xml, .yaml

Note: This is a text placeholder. Actual assets can be any file type.


path: references/api_reference.md
content: # Workflow Notes

Use this sheet to keep longer-form explanations out of SKILL.md.

## Workflow Skeleton
1. 接单 → 判断需求（导航 / 交互 / 取证 / 下载）。
2. 连接 Desktop 节点（`tools.exec.node="Desktop"`）。
3. 运行相应脚本：
   - 启动/聚焦 Edge → `launch_edge.ps1` + `focus_edge.ps1`
   - 导航 or JS 注入 → `edge_nav.ps1`（暂先通过 URL 导航）
   - 取证 → `capture_screenshot.ps1`
   - 打包下载 → `download_and_zip.ps1`
4. 回传证据（文件、日志、stdout）。

## Command Snippets
```powershell
# 切换到 Desktop 节点后执行脚本
tools.exec node=Desktop command="powershell -File scripts/windows-browser-ops/launch_edge.ps1 -Url 'https://example.com'"
```

## References
- 详尽脚本说明/疑难杂症：`references/edge_playbook.md`


path: references/edge_playbook.md
content: # Edge Automation Playbook

## Default Paths
- Edge 可执行：`C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe`
- 下载目录：`C:\Users\<USER>\Downloads`
- 临时截图目录：`%TEMP%\\edge-shot.png`

## 常用 Powershell 片段
- 启动 Edge（隐身模式）：`Start-Process msedge "--inprivate https://example.com"`
- 关闭所有 Edge：`Get-Process msedge | Stop-Process`
- 清理 Edge 缓存：`RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8`

## UIAutomation 入口
- 依赖 `UIAutomationClient` 程序集 (`Add-Type -AssemblyName UIAutomationClient`)
- 获取地址栏：`$window.FindFirst(TreeScope::Subtree, New-Object PropertyCondition($AutomationElement::NameProperty, "Address and search bar"))`
- 发送文字：`$valuePattern.SetValue($Url)`

## 截图与取证
1. 使用 `Graphics.CopyFromScreen` 捕捉全屏 → `capture_screenshot.ps1`
2. 若只需浏览器窗口，可在脚本中获取 Edge 窗口矩形 (`[System.Windows.Forms.Screen]::AllScreens` + `Get-Process msedge`).
3. 回传：`openclaw message send --channel discord ... --file path`。

## 下载文件打包
1. 等待下载完成：轮询 `Downloads` 目录里 `.crdownload` 文件消失。
2. 执行 `download_and_zip.ps1 -SourcePath "C:\Users\<USER>\Downloads" -ZipPath "$env:TEMP\\edge-export.zip"`
3. 上传 ZIP。可在上传前过滤最近修改时间，避免旧文件混入。

## 常见问题
| 症状 | 处理 |
|------|------|
| Edge 没有窗口句柄 | 可能是所有窗口都在后台或多桌面，需 `Start-Process msedge` 重新开一个可见窗口。 |
| SetForegroundWindow 失败 | 同一线程限制，需先 `ShowWindowAsync`。可以在 `focus_edge.ps1` 中补充。 |
| 截图全黑 | 检查是否在 RDP 会话锁定状态；必要时使用 `psr.exe /start` 或 `SnippingTool /clipmode`. |

## 实测记录（2026-03-15）
- `launch_edge.ps1 -Url https://www.bing.com` → 首次启动成功；重复执行时返回 “Edge already running; no relaunch.”
- `focus_edge.ps1` → “Focused existing Edge window”。
- `edge_nav.ps1 -Url https://www.microsoft.com` → “Navigated Edge to …”。
- `capture_screenshot.ps1 -Output C:\Users\louis\Desktop\edge-shot.png` → 成功生成截图。
- `download_and_zip.ps1 -SourcePath C:\Users\louis\Downloads -ZipPath C:\Users\louis\Desktop\edge-downloads.zip` → “Zipped downloads to …”。


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