高版本electron使用iohook失败(使用uiohook-napi替代)

需求: 想在客户端electron应用中实现划词功能(监听系统级别选中文本,出现快捷菜单)

难点:监听鼠标事件,选中文本的内容和位置。

思路:iohook用于获取系统级别的选中文本,但是该插件已经很久没有维护了,仅支持低版本的electron。我的项目使用的electron的版本是20+,经过多次尝试后发现了一个替代版插件:uiohook-napi。该插件可监听键盘事件、鼠标事件。

使用node-selectron插件可获取选中文本,但是权限有限,并非能获取所有应用的内容,浏览器可以获取,待发掘更合适的插件。

javascript 复制代码
const { uIOhook } = require('uiohook-napi') // 监听鼠标
const { getSelection } = require('node-selection') // 获取鼠标选中文本内容

uIOhook.on('mouseup', async e => {
    try {
      console.log('mouseup-e', e) // e.x,.e.y,e.button
      const { text, process } = await getSelection()
    } catch (error) {
      console.error('getSelectrion-error', error)
    }
}
相关推荐
Shi_haoliu9 小时前
openClaw源码部署-linux
前端·python·ai·openclaw
程序员小寒9 小时前
前端性能优化之白屏、卡顿指标和网络环境采集篇
前端·javascript·网络·性能优化
烛阴10 小时前
Claude CLI AskUserQuestion 工具详解:让 AI 开口问你
前端·claude
wal131452010 小时前
OpenClaw教程(九)—— 彻底告别!OpenClaw 卸载不残留指南
前端·网络·人工智能·chrome·安全·openclaw
mon_star°10 小时前
在TypeScript中,接口MenuItem定义中,为什么有的属性带问号?,有的不带呢?
前端
牛奶10 小时前
分享一个开源项目,让 AI 辅助开发真正高效起来
前端·人工智能·全栈
次顶级11 小时前
表单多文件上传和其他参数处理
前端·javascript·html
why技术11 小时前
我拿到了腾讯QClaw的内测码,然后沉默了。
前端·后端
小一梦12 小时前
宝塔面板单域名部署多个 Vue 项目:从路径冲突到完美共存
服务器·javascript·vue.js