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

ZTools 插件开发实战:详解 ztools API 对象,剪贴板、模拟输入与持久化存储一网打尽

发布时间:2026/9/25 9:05:12 来源:云帆数科 栏目:资讯中心
ZTools 插件开发实战:详解 ztools API 对象,剪贴板、模拟输入与持久化存储一网打尽
ZTools 插件开发实战详解 ztools API 对象剪贴板、模拟输入与持久化存储一网打尽【免费下载链接】ZToolsAn open-source implementation of uTools, a high-performance, scalable application launcher and plugin platform | Supports macOS and Windows, 一个高性能、可扩展的应用启动器和插件平台 uTools 的开源实现 | 支持 macOS 和 Windows项目地址: https://gitcode.com/gh_mirrors/ztool/ZToolsZTools 是一个高性能、可扩展的开源应用启动器和插件平台uTools 的开源实现支持 macOS 与 Windows。本文带你实战 ZTools 插件开发详解全局ztoolsAPI 对象中的三大核心能力剪贴板操作、模拟输入、持久化存储帮助新手快速上手写出第一个功能完整的插件。为什么选择 ZTools 插件开发ZTools 插件系统支持UI 插件和无界面headless插件两种形态通过一个全局ztools对象即可访问系统能力通知、剪贴板、模拟输入、持久化存储、窗口控制等。它的开发体验对新手非常友好简单配置一个 plugin.json 定义插件元信息无需复杂构建丰富 API完整的 TypeScript 类型支持调用ztools对象即可跨平台一次开发Windows / macOS 一致体验主进程中所有插件 API 通过统一的分发器 pluginApiDispatcher.ts 注册与路由同步 API 走ipcMain.on异步 API 走ipcMain.handle这就是你在插件代码里ztools.xxx()调用的底层通道。插件骨架一个最小可运行的插件长什么样一个 ZTools 插件的核心就是两个文件plugin.json—— 声明插件名称、logo、命令keyword、钩子等preload.js—— 插件逻辑入口在这里使用ztools对象仓库里提供了一个最小可参考的插件骨架直接照着改就能跑起来示例插件配置plugin.json示例插件逻辑preload.js示例说明文档README.md{ main: preload.js, name: my-first-plugin, description: 我的第一个 ZTools 插件 }在 preload 里命令触发时ztools对象会自动注入作用域你只需要写业务逻辑。剪贴板 API复制、读取一网打尽剪贴板是效率插件最常用的能力。ZTools 的插件剪贴板 API 实现在 src/main/api/plugin/clipboard.ts提供四类基础操作能力说明复制文本将字符串写入系统剪贴板复制图片支持 Data URL、文件路径、二进制 Buffer复制文件将本地文件写入剪贴板Windows / macOS读取剪贴板文件获取剪贴板中的文件列表及路径典型场景搜索结果一键复制、截图后把图片复制到目标应用、批量复制文件路径。 注意区分这里的剪贴板 API 是基础读写操作而 ZTools 主程序自带的剪贴板历史管理截图、文本历史是独立模块见 src/shared/clipboard.ts。模拟输入让插件替用户操作这是ztools对象中最强大的部分实现在 src/main/api/plugin/input.ts。插件不仅能读写剪贴板还能模拟真实的键盘与鼠标⌨️模拟键盘按键simulateKeyboardTap(key, modifiers)支持组合键如 ShiftEnter️模拟鼠标移动、单击、双击、右键发送输入事件向活动插件页面注入键盘/鼠标/滚轮事件页面内查找findInPage在当前插件页面中搜索文本更实用的还有粘贴到外部应用系列 API它们会自动完成隐藏主窗口 → 暂停剪贴板监听 → 写入剪贴板 → 模拟 Ctrl/CmdV 粘贴的完整流程hideMainWindowPasteText—— 粘贴文本到外部应用hideMainWindowPasteImage—— 粘贴图片支持 base64 / 路径 / 二进制hideMainWindowTypeString—— 逐字符键入字符串正确处理 emoji 等多码点字符换行自动转为 ShiftEnter这类 API 是密码填充、快捷短语展开、一键填写表单类插件的核心。持久化存储插件数据的安全归宿插件的状态、用户配置、运行记录都需要持久化存储。ZTools 底层采用高性能的LMDB 嵌入式数据库src/core/lmdb/index.ts插件通过ztools的存储 API 以键值key-value方式读写数据✅数据隔离每个插件拥有独立的存储命名空间互不干扰⚡高性能LMDB 提供极快的读写速度安全卸载插件时其数据可被独立清理插件侧通常以ztools.dbGet(key)/ztools.dbSet(key, value)这类形式操作底层由主进程的数据库 API 分发处理相关实现可参考 src/main/api/plugin/internal.ts 与 src/main/api/shared/database.ts。把三块能力组合起来一个完整示例思路以快捷复制插件为例把本文能力串起来用户在搜索框输入关键词触发插件命令插件用存储 API 读取上次保存的常用短语列表用户选择一条短语调用剪贴板 API 写入系统剪贴板调用模拟粘贴 API把短语粘贴到之前激活的外部应用用存储 API 更新最近使用记录下次优先展示整个流程无需用户离开当前工作这就是启动器插件平台的核心价值。调试与进阶调试插件插件页面点击Open DevTools按钮即可查看控制台热重载开发模式下修改 preload 逻辑即时生效配合pnpm dev启动更多 API窗口控制window.ts、UI 交互ui.ts、通知toast.ts等能力扩展想给 ZTools 增加翻译 / OCR 能力参考 Provider 接入指南 docs/provider-development-guide.md用ztools.registerProvider注册你的实现示例见 docs/examples/provider-example/小结能力核心模块适用场景剪贴板读写clipboard.ts复制文本/图片/文件、读取剪贴板模拟输入input.ts键盘鼠标自动化、粘贴到外部应用持久化存储lmdb/保存插件配置与用户数据掌握ztools对象的这三大能力你已经可以开发出覆盖绝大多数效率场景的 ZTools 插件。从 docs/examples/provider-example/ 的示例骨架起步动手写出你的第一个插件吧【免费下载链接】ZToolsAn open-source implementation of uTools, a high-performance, scalable application launcher and plugin platform | Supports macOS and Windows, 一个高性能、可扩展的应用启动器和插件平台 uTools 的开源实现 | 支持 macOS 和 Windows项目地址: https://gitcode.com/gh_mirrors/ztool/ZTools创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Atlas 300V 24G推理加速卡实战:从环境配置到YOLOv5部署
Atlas 300V 24G推理加速卡实战:从环境配置到YOLOv5部署

1. Atlas 300V 24G到底算不算“运算加速卡”——从昇腾产品线看定位1.1 先回答那个高频问题:300V是什么这几周后台一直有人问我:“Atlas 300V 24G是运算加速卡吗?”问到后来还有一句更具体的:“我想用Atlas部署YOLO,该… · 2026/9/25 9:04:53

超越Copilot!用TaoToken统一Key接入Cursor,嵌入式开发效率飙升
超越Copilot!用TaoToken统一Key接入Cursor,嵌入式开发效率飙升

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

【Bug已解决】Codex Desktop 拖拽生成图到 macOS Finder 崩溃:TaoToken 配置与 settings.json 骨架修复
【Bug已解决】Codex Desktop 拖拽生成图到 macOS Finder 崩溃:TaoToken 配置与 settings.json 骨架修复

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

Atlas 300V 24G部署YOLOv5全流程:环境搭建、模型转换与性能调优
Atlas 300V 24G部署YOLOv5全流程:环境搭建、模型转换与性能调优

前两天看到有人在搜“atlas 300v 24g 是运算加速卡吗”,紧接着还有一条是“atlas部署yolo”。这两个问题拼在一起,基本就是一张昇腾推理卡从“这玩意到底能不能用”到“怎么把它跑起来”的全过程心态写照。我最近正好在Atlas 300V 24G这张卡上把YOLOv5检… · 2026/9/25 9:44:07

C# 项目接入 OpenClaw 的配置骨架:TaoToken 统一 Key 与 settings.json 实战
C# 项目接入 OpenClaw 的配置骨架:TaoToken 统一 Key 与 settings.json 实战

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

如何用AI Agent实现日均万行可用代码:工作流与实战指南
如何用AI Agent实现日均万行可用代码:工作流与实战指南

1. 当CEO把AI当成"结对程序员"而不是"代码补全器"第一次看到"日均产出一万行可用代码"这个说法,我的反应和大多数人一样:要么是标题党,要么是把AI生成的垃圾代码也算进去了。但仔细拆解这个数字背后的工作模式… · 2026/9/25 9:44:01

Atlas 300V 24G推理卡详解:从入门到YOLO部署实战
Atlas 300V 24G推理卡详解:从入门到YOLO部署实战

在边缘AI推理这个圈子里,Atlas这个名字最近几年出现的频率越来越高。尤其当“atlas部署yolo”和“atlas 300v 24g 是运算加速卡吗”这两个问题被反复问到的时候,我就知道很多人其实已经拿到了卡,或者正在选型阶段,但对这套工具链还… · 2026/9/25 9:43:55

Atlas 300V 24G推理加速卡部署YOLO完整实战:从环境配置到模型转换与调优
Atlas 300V 24G推理加速卡部署YOLO完整实战:从环境配置到模型转换与调优

最近收到好几条私信,都是同一个问题:“Atlas 300V 24G 是运算加速卡吗?能不能拿来部署 YOLO?” 问的人多了,我干脆把之前折腾过的整套流程整理出来。这篇文章不是官方文档,是我自己从装卡、配驱动、转模型到… · 2026/9/25 9:43:55

程序员用AI写AI代码:TaoToken统一Key接入Copilot的settings.json配置与验证
程序员用AI写AI代码:TaoToken统一Key接入Copilot的settings.json配置与验证

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

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

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

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

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

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

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

了解更多?预约专属演示

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

企业微信二维码