高版本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)
    }
}
相关推荐
qq_54702617913 小时前
Flowable 工作流引擎
java·服务器·前端
刘逸潇200513 小时前
CSS基础语法
前端·css
吃饺子不吃馅14 小时前
[开源] 从零到一打造在线 PPT 编辑器:React + Zustand + Zundo
前端·svg·图形学
小马哥编程15 小时前
【软考架构】案例分析-Web应用设计(应用服务器概念)
前端·架构
鱼与宇15 小时前
苍穹外卖-VUE
前端·javascript·vue.js
啃火龙果的兔子15 小时前
前端直接渲染Markdown
前端
z-robot15 小时前
Nginx 配置代理
前端
用户479492835691515 小时前
Safari 中文输入法的诡异 Bug:为什么输入 @ 会变成 @@? ## 开头 做 @ 提及功能的时候,测试同学用 Safari 测出了个奇怪的问题
前端·javascript·浏览器
没有故事、有酒16 小时前
Ajax介绍
前端·ajax·okhttp
朝新_16 小时前
【SpringMVC】详解用户登录前后端交互流程:AJAX 异步通信与 Session 机制实战
前端·笔记·spring·ajax·交互·javaee