electron中引入iohook来监听系统级鼠标键盘事件
最新做法:(2022-07-14记录)
npm install iohook@latest--save
安装好之后
直接使用会报错,这时候发现是缺少一些关于electron的编译,从以下地址选择对应系统的编译包手动放进去即可
Releases · wilix-team/iohook · GitHub
iohook官网:Usage | iohook
https://nodejs.ctolib.com/article/releases/98298
本人项目的版本号:electron5.0.0 node 12.16.1
一、准备工作
使用node-abi来获取electron和node对应的abi版本
npm install node-abi --save-dev
console.log(nodeAbi.getAbi('12.16.1','node'))// 68console.log(nodeAbi.getAbi('5.0.0','electron'))// 70console.log(nodeAbi.getTarget('68','node'))// 12.0.0console.log(nodeAbi.getTarget('70','electron'))//5.0.0
在使用中发现68的版本并不可以,因此使用了72
二、electron中安装iohook
npm install iohook@0.6.5 --save-dev
在package.json中配置一些内容
"iohook": {"targets": ["node-72","electron-70"],"platforms": ["win32","darwin","linux"],"arches": ["x64","ia32"]}
重新编译的写法:
"rebuildnew": "npm rebuild --runtime=electron --target=5.0.0 --disturl=https://atom.io/download/atom-shell --abi=70"
三、iohook的使用
const ioHook = require('iohook');ioHook.start(false);const eventHandler =function(type){switch (type) {case 'mouseclick':console.log('mouse is click!')break;case 'mousedown':console.log('mouse is press!')break;case 'mouseup':console.log('mouse is release!')break;case 'mousedrag':console.log('mouse is moving!')break;case 'mousedrag':console.log('mouse is moving!')break;case 'mousewheel':console.log('keybord is rolling!')break;case 'keydown':console.log('keybord is press!')break;default:console.log('move mouse or keyboard try it!')break;}}ioHook.start(false);ioHook.on('mouseclick', ()=>{eventHandler('mouseclick')});ioHook.on('mousedown', ()=>{eventHandler('mousedown')});ioHook.on('mouseup', ()=>{eventHandler('mouseup')});ioHook.on('mousedrag', ()=>{eventHandler('mousedrag')});ioHook.on('mousewheel', ()=>{eventHandler('mousewheel')});ioHook.on('mouse', ()=>{eventHandler('mousedrag')});ioHook.on('keyup', ()=>{eventHandler('keyup')});ioHook.on('keydown', ()=>{eventHandler('keydown')});app.on('before-quit', () => {// 卸载iohook监听ioHook.unload();ioHook.stop();
});
electron中引入iohook来监听系统级鼠标键盘事件相关推荐
- vuejs监听苹果iphone手机键盘事件
在iphone手机中,vue提供的keyup事件是不能监听iphone键盘的,但是h5提供的input事件可以做到. 只需要向下面这样处理,就可以解决iphone不响应键盘事件的bug <tem ...
- esc键退出全屏 vue_解决了VUE在浏览器全屏下监听不到Esc键盘事件
说明: 实测可以在谷歌.火狐.360 浏览器使用 解决了在浏览器全屏下监听不到键盘Esc事件 解决了取消全屏和全屏的同步问题,ESC按键下可以同步 以下是完整的代码, // data() { retu ...
- 解决VUE在浏览器全屏下监听不到Esc键盘事件
实测可以在谷歌.火狐.360 浏览器使用 解决了在浏览器全屏下监听不到键盘Esc事件 解决了取消全屏和全屏的同步问题,ESC按键下可以同步 以下是完整的代码, // data() {return {i ...
- JS监听页面----无鼠标键盘动作,自动跳页
监听页面鼠标键盘动作,若用户5秒没有任何操作,页面自动跳转 function ScreenSaver(settings){ this.settings = settings; this.nTimeou ...
- Android 监听 Android中监听系统网络连接打开或者关闭的实现代码
本篇文章对Android中监听系统网络连接打开或者关闭的实现用实例进行了介绍.需要的朋友参考下 很简单,所以直接看代码 复制代码 代码如下: package xxx; import android.c ...
- Android平台监听系统截屏方案预研及相关知识点
最近有个针对系统截屏的需求,所以预研了Android平台上捕获系统截屏的方案. 最直接的方式就是监听手机的系统截屏组合键(电源键+音量下键),但是这种方式实现难度大,且有的机型使用特殊手势进行截屏,兼 ...
- android ContentObserver监听系统短信和备份短信到本地
contentProvider中的一个工具,记录一下. 监听短信: package com.example.messagedemo;import android.net.Uri; import and ...
- vue 监听map数组变化_vuex state中的数组变化监听实例
前言 首先,因为我有一个需求就是vue组件中有一组多选框,选中多选框的内容,要在另一个组件中进行视图更新,这个就设计的兄弟组件之间的通信了,兄弟组件之前通信我首先选用的vuex这个解决办法. 问题 v ...
- Android - 接收、监听系统短信广播
广播接收者(BroadcastReceiver)是安卓的四大组件之一.类似于日常生活中的广播,安卓系统中的广播也有发送者和接收者.发送者通常是系统的应用程序,比如电池电量低.开关机.有电话或短信 ...
最新文章
- LINUX创建www的用户组和用户,并且不允许登录权限:
- angularjs 中的$digest和$apply区别
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system )
- windows10风格 springboot activiti 整合项目框架源码 shiro 安全框架 druid 数据库连接池...
- CentOS(5.8/6.4)linux生产环境若干优化实战------就爱运维
- SQL 关于apply的两种形式cross apply 和 outer apply(转)
- treeview 文字垂直方向_word文本排版技巧:改变文字方向的这些方法,你知道吗?...
- gmat模考_国外GMAT高分学霸们都在用什么复习资料?(模考篇)
- C-free在编写代码的过程中遇到方向键失灵,回车键失灵,换行失灵,但是可以正常输入的解决办法!!!!!
- 如何新建一个keil工程 的详细步骤
- 【国产】TASKCTL批量作业调度统一图形监控运维平台
- steam游戏直连工具
- 在linux虚拟机中进行jdk1.8的安装与环境变量的配置
- “蔚来杯“2022牛客暑期多校训练营5-A Don‘t Starve
- java 数据结构和算法 排序
- python常见几种设计模式
- 洛谷-P2198 杀蚂蚁
- 50多岁学python_50万+Python 开发者的选择,这本书对零基础真是太太太友好了!!!...
- 插画中的云朵图案随处可见,那么云朵图案是怎么制作的呢?
- PageAdmin CMS建站系统可视化区块的使用教程
热门文章
- 人工智能没成果,年底的PPT怎么写?腾讯科学家张潼离职的后续讨论
- 常见程序(discuz,ecshop,shopex,dedecms等)重置破解管理密码
- h5策划书_DIYH5|3.12世界睡眠日H5策划方案
- 《NVMe-over-Fabrics-1_0a-2018.07.23-Ratified》阅读笔记(4)-- Controller Architecture
- android去掉最上面的app名字(标题栏,抬头)
- 微信订阅通知开发 (小白教程)微擎
- 软件工程课程设计项目总结与项目报告
- 为什么那么多人执着于写博客
- Java 简易五子棋
- 快捷键没有响应的处理办法