高版本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)
    }
}
相关推荐
猩猩程序员14 小时前
前端学习 AI Agent 开发
前端
Younglina15 小时前
打了3年羽毛球球才发现:我对自己的装备和胜率一无所知
前端·后端
风骏时光牛马15 小时前
Bash脚本高阶实战与常见报错完整代码案例详解
前端
kartjim15 小时前
我用 AI 一小时写了一个世界杯数据可视化平台|前端 VibeCoding 初体验
前端·程序员·ai编程
lichenyang45315 小时前
从一个 WebView Demo 开始,理解 ASCF 小程序底座到底在做什么
前端
牧艺15 小时前
用 Next.js 搭建 AI Agent 前端编排:从 Plan 到 SSE Trace 的完整实践
前端·agent
行者全栈架构师15 小时前
UniApp集成vk-uview-ui组件库详解:打造高效UI开发体验
前端·vue.js
林希_Rachel_傻希希15 小时前
js里面的proxy理解。以及vue3响应式数据设计底层
前端·javascript·面试
sunrains15 小时前
uniapp x 动态Tabbar(切换无闪烁)+动角标+主题切换+自定义tabbar页面导航栏样式设置 支持服务端动态配置根据角色动态设置Tabbar
前端
把马铃薯变成土豆15 小时前
前端Stripe跨境支付对接感想
前端·源码