首页/新闻资讯/正文详情

Skill Recorder如何在Windows上捕获屏幕事件?Koffi FFI与UI Automation实现完全指南

发布时间:2026/9/26 3:52:12 来源:云帆数科 栏目:资讯中心
Skill Recorder如何在Windows上捕获屏幕事件?Koffi FFI与UI Automation实现完全指南
Skill Recorder如何在Windows上捕获屏幕事件Koffi FFI与UI Automation实现完全指南【免费下载链接】skill-recorderDesktop app that records your on-screen work session and uses the GitHub Copilot CLI to reconstruct it as an intent ordered steps, then builds a reusable Skill or Automation for Microsoft Scout, Microsoft Copilot Cowork, or Copilot Studio.项目地址: https://gitcode.com/gh_mirrors/sk/skill-recorderSkill Recorder 是一款跨平台macOS Windows桌面应用它在 Windows 上用Koffi FFI 直接调用 Win32 API捕获窗口切换与标题事件用UI Automation读取浏览器地址栏 URL再交给 GitHub Copilot CLI 重建为意图 有序步骤最终生成可复用的 Skill 或 Automation面向 Microsoft Scout、Copilot Cowork、Copilot Studio。本文带你彻底看懂它在 Windows 上是如何捕获屏幕事件的无需深入代码也能理解全貌。Windows 上各数据源的捕获机制一览Skill Recorder 的核心录制控制器、事件总线、会话存储是平台无关的只有从操作系统里取数据这一层因平台而异。在 Windows 上各事件源的工作方式如下事件源Windows 上的实现机制与 macOS 的差距需要权限吗应用切换Koffi 调用 Win32user32/kernel32完全一致不需要窗口标题Koffi 调用 Win32user32完全一致更好无需授权不需要浏览器 URLUI Automation 读取地址栏powershell.exe托管功能可用但非字节级精确不需要剪贴板Electron 剪贴板 API完全一致不需要屏幕视频 帧desktopCapturer Chromium 快照 Sharp完全一致屏幕录制语音口述可选隐藏窗口getUserMedia 离线 Whisper完全一致麦克风 一个关键点窗口标题在 Windows 上不需要任何系统权限macOS 则需要辅助功能授权这得益于 Koffi 直接走原生 Win32 API。Koffi FFI零权限捕获窗口事件窗口切换和标题的捕获全部由 electron/collectors/windows-active-window.ts 完成。它通过 Koffikoffi.load()见 windows-active-window.ts#L14-L16直接加载三个系统库user32.dll——GetForegroundWindow当前前台窗口、GetWindowTextW窗口标题、GetWindow遍历子窗口等kernel32.dll——OpenProcess/QueryFullProcessImageNameW把窗口还原到它的宿主进程得到应用名dwmapi.dll——DwmGetWindowAttribute获取窗口真实边界含无边框扩展区域三个值得一提的工程细节预编译 FFI无需编译器。Koffi 自带win32-x64与win32-arm64的预编译 N-API 包Windows 用户装完即用依赖声明见 package.json。UWP 应用识别。Windows 现代应用UWP的前台窗口实际挂在applicationframehost.exe名下windows-active-window.ts#L68-L75 会通过findUwpOwner()向下遍历子窗口找到真正的宿主进程再映射为友好名称如 Windows app。常见应用友好命名。chrome → Google Chrome、msedge → Microsoft Edge、code → Visual Studio Code等windows-active-window.ts#L49-L59让事件流对人和 AI 都可读。UI Automation读取浏览器地址栏 URL浏览器 URL 是标题之外最有价值的信号。Windows 没有 macOS 那样的 AppleScript 脚本桥所以 electron/collectors/windows-url-provider.ts 选择了另一条路——UI AutomationUIA托管进程UIA 的 .NET 程序集UIAutomationClient/UIAutomationTypes只在 Windows PowerShell 5.1每台 Win10/11 自带powershell.exe里可靠可用。加载一次约需 0.5–1 秒因此 Skill Recorder 启动一个常驻 PowerShell 托管进程只加载一次 UIA之后每收到一行 stdin 请求就返回一行结果脚本见 windows-url-provider.ts#L56。找地址栏脚本从最前台窗口的 UIA 控件树出发做广度优先遍历寻找Edit控件且AutomationId为omnibox/addressEditBox/urlbar-input或名称含 address的控件取其ValuePattern的值。防跑偏遍历时剪掉Document子树网页的可访问性树巨大且惰性加载并设置节点数600与深度8上限重页面也不会卡死。严格尽力而为任何失败超时 2 秒、无地址栏、权限怪异都解析为null绝不抛出、绝不阻塞轮询循环。 与 macOS 相比这个 UIA 方案还有个额外优势连 Firefox 的地址栏也能读。另外看起来像搜索词含空格或无圆点的值会被直接丢弃避免把噪音当 URL 发射出去。轮询节奏事件流如何产生采集由 electron/collectors/active-window.ts 中的ActiveWindowCollector驱动构建逻辑见 electron/collectors/index.ts基础轮询 1000ms当最前台是浏览器时放慢到1600ms避免高频读 URL 拖慢浏览器 UI浏览器 URL 读取额外节流至少间隔 1500ms且仅在应用切换 / 标题变化时才触发三类事件被发布到事件总线app.activate—— 最前台应用变化含应用名、标题、窗口边界、进程信息app.title-change—— 同一应用内仅窗口标题变化browser.url—— 活动标签页 URL 变化含 host 字段这些事件最终写入会话的events.jsonl是后续 AI 重建意图 步骤的核心原料。平台选择逻辑在 active-window.ts#L113-L120Windows 走 Koffi 原生路径macOS 走get-windows包。自检Doctor 信号与健康检查打开录制 HUD底部就有doctor 行也可通过 IPC 调用doctor()。在 Windows 上应确认两项window trackingkoffi而非provider missingbrowser URLsuia当捕获级别包含 URL 时实操验证一次冒烟测试官方建议做一次真实录制来验证每个数据源都落到了events.jsonl完整清单见 docs/windows-capture.md。将捕获级别设为Full然后从 HUD 启动捕获或CtrlShiftR应用切换/标题在 Edge 和记事本之间 Alt-Tab应看到app.activate与app.title-change事件浏览器 URL在 Edge/Chrome 中访问两个站点应看到browser.url事件输入搜索词不应产生假事件剪贴板复制一段文字应看到clipboard.change事件视频确认产物含video.webm、video-frames.json、快照与保留帧停止会话在库中显示为recorded分析应产出连贯的意图 有序步骤⚠️ 某个数据源没产出时先看 doctor 行再看主进程日志里的一次性告警如 Browser URL capture is on but unavailable on this platform。已知限制来自官方文档 docs/windows-capture.md 的Known limitations浏览器 URL 是尽力而为的显示字符串不是精确标签页 URL——对按主机分段步骤已够用录制的终端仅限从录制浮窗打开的 PowerShell 会话ConPTY不监听已有的 PowerShell / Windows Terminal / cmd 窗口语义级 UI 事件焦点/调用/值变更经由 UI Automation在两个平台上都尚未实现Whisper 语音模型不随包分发首次使用时需批准约 252MB 的一次性下载录制与会话处理不等待它延伸阅读相关源码地图模块路径说明Windows 窗口事件捕获electron/collectors/windows-active-window.tsKoffi FFI 调用 user32/kernel32/dwmapiWindows URL 捕获electron/collectors/windows-url-provider.ts常驻 PowerShell 托管的 UI Automation 读取活动窗口轮询器electron/collectors/active-window.ts轮询节奏、事件发射URL 提供者接口electron/collectors/url-provider.tsmacOS AppleScript / Windows UIA 统一抽象Windows 捕获文档docs/windows-capture.md各源机制、前置条件、冒烟测试、打包一句话总结窗口事件靠 Koffi FFI 直连 Win32零权限零依赖浏览器 URL 靠 UI Automation 走常驻 PowerShell 宿主尽力而为、绝不阻塞——这两条腿就是 Skill Recorder 在 Windows 上捕获屏幕事件的全部秘密。【免费下载链接】skill-recorderDesktop app that records your on-screen work session and uses the GitHub Copilot CLI to reconstruct it as an intent ordered steps, then builds a reusable Skill or Automation for Microsoft Scout, Microsoft Copilot Cowork, or Copilot Studio.项目地址: https://gitcode.com/gh_mirrors/sk/skill-recorder创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

WorkBuddy接入混元Hy4实测:AI工作台如何用推理底座驱动自动化流程
WorkBuddy接入混元Hy4实测:AI工作台如何用推理底座驱动自动化流程

WorkBuddy 这轮更新我盯了很久。之前一直在项目里用 CodeBuddy 跑代码生成,最近看到 WorkBuddy 把混元大模型切到了 Hy4,并且限时免费放开两周,我第一时间就装了新版实测。先给结论:这波升级不是简单换个大模型给你聊天&#xff0… · 2026/9/26 3:52:12

竞争存在论:排斥与吸引作为所有相互作用的统一本原
竞争存在论:排斥与吸引作为所有相互作用的统一本原

竞争存在论:排斥与吸引作为所有相互作用的统一本原 ——从竞争函数的二重性到排他性占有的本体论基础 摘要:本文提出并论证一个核心命题:所有相互作用在本质上只有两种基本形式——排斥与吸引。所有相互作用的复杂结构都是这两种基本形式的细… · 2026/9/26 3:52:12

AI应用开发全栈攻坚地图:中小团队实战指南
AI应用开发全栈攻坚地图:中小团队实战指南

1. 这不是一张“地图”,而是一份AI应用开发者的生存手记我带过三届AI方向的校企联合实训营,也帮五家中小自研公司做过技术选型和团队搭建。每次聊到“AI应用开发全栈攻坚地图”,总有人掏出手机翻笔记、截图、甚至拍照——不是因为内容多高深&… · 2026/9/26 3:52:06

书霸AI期刊避坑|官网www.shubaai.com
书霸AI期刊避坑|官网www.shubaai.com

https://www.shubaai.com写期刊论文时,最容易被忽略的,往往不是“不会写”,而是第一步就选错了方向。打开书霸AI写作的期刊论文功能,可以看到从选择模板、提交论文到生成并下载的流程。页面中还提供地区、学历和院校模板等筛选入口… · 2026/9/26 9:11:17

程序员优秀开源免费软件推荐:TaoToken 统一 Key 接入 Cline 与 CC Switch 配置骨架
程序员优秀开源免费软件推荐:TaoToken 统一 Key 接入 Cline 与 CC Switch 配置骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 9:11:17

Atlas 300V部署YOLO实操:从加速卡选型到模型转换全指南
Atlas 300V部署YOLO实操:从加速卡选型到模型转换全指南

你在搜索引擎里敲下 “atlas” 这个词,大概率会看到两类内容:一类是层出不穷的 atlas 部署 yolo 教程,另一类是 atlas 300v 24g 是运算加速卡吗 这种灵魂拷问。这两类问题其实指向的是同一个东西——华为昇腾的 Atlas 系列 AI 加速产品。很多… · 2026/9/26 9:11:17

自建CRM系统实战:从免费工具到私有部署的完整方案
自建CRM系统实战:从免费工具到私有部署的完整方案

1. 项目缘起:为什么放着现成软件不用,非要搞一套 DeskcommCRM这事得从三年前说起。当时我们团队负责一块涉及几百家长期客户的业务,客户档案散落在 Excel、微信聊天记录、纸质工单和几个同事的脑子里。每次要统计某个客户的历史跟进情况&… · 2026/9/26 9:11:05

DeskcommCRM落地实战:从Excel到团队客户管理全配置指南
DeskcommCRM落地实战:从Excel到团队客户管理全配置指南

原来Excel里那几十个客户名单堆到第三个月就彻底乱套了——谁跟进过、谁成交了、哪个客户该回访,全靠记忆硬撑。后来我干脆搭了一套DeskcommCRM系统,把客户、线索、跟进记录全放进去,销售团队每人一个账号,谁接手了哪个客户、下一… · 2026/9/26 9:11:05

桂花网蓝牙网关多设备连接稳定性设计与实操配置指南
桂花网蓝牙网关多设备连接稳定性设计与实操配置指南

1. 多设备蓝牙连接为什么容易“翻车”做过蓝牙物联网项目的人大概都有这种体会:单台设备连手机调试时稳如老狗,一旦把设备数量拉到几十上百台,问题就全冒出来了——掉线、重连慢、数据丢包、延迟忽高忽低,甚至网关直接“罢工”。这… · 2026/9/26 9:11:05

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码