最新做法:(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来监听系统级鼠标键盘事件相关推荐

  1. vuejs监听苹果iphone手机键盘事件

    在iphone手机中,vue提供的keyup事件是不能监听iphone键盘的,但是h5提供的input事件可以做到. 只需要向下面这样处理,就可以解决iphone不响应键盘事件的bug <tem ...

  2. esc键退出全屏 vue_解决了VUE在浏览器全屏下监听不到Esc键盘事件

    说明: 实测可以在谷歌.火狐.360 浏览器使用 解决了在浏览器全屏下监听不到键盘Esc事件 解决了取消全屏和全屏的同步问题,ESC按键下可以同步 以下是完整的代码, // data() { retu ...

  3. 解决VUE在浏览器全屏下监听不到Esc键盘事件

    实测可以在谷歌.火狐.360 浏览器使用 解决了在浏览器全屏下监听不到键盘Esc事件 解决了取消全屏和全屏的同步问题,ESC按键下可以同步 以下是完整的代码, // data() {return {i ...

  4. JS监听页面----无鼠标键盘动作,自动跳页

    监听页面鼠标键盘动作,若用户5秒没有任何操作,页面自动跳转 function ScreenSaver(settings){ this.settings = settings; this.nTimeou ...

  5. Android 监听 Android中监听系统网络连接打开或者关闭的实现代码

    本篇文章对Android中监听系统网络连接打开或者关闭的实现用实例进行了介绍.需要的朋友参考下 很简单,所以直接看代码 复制代码 代码如下: package xxx; import android.c ...

  6. Android平台监听系统截屏方案预研及相关知识点

    最近有个针对系统截屏的需求,所以预研了Android平台上捕获系统截屏的方案. 最直接的方式就是监听手机的系统截屏组合键(电源键+音量下键),但是这种方式实现难度大,且有的机型使用特殊手势进行截屏,兼 ...

  7. android ContentObserver监听系统短信和备份短信到本地

    contentProvider中的一个工具,记录一下. 监听短信: package com.example.messagedemo;import android.net.Uri; import and ...

  8. vue 监听map数组变化_vuex state中的数组变化监听实例

    前言 首先,因为我有一个需求就是vue组件中有一组多选框,选中多选框的内容,要在另一个组件中进行视图更新,这个就设计的兄弟组件之间的通信了,兄弟组件之前通信我首先选用的vuex这个解决办法. 问题 v ...

  9. Android - 接收、监听系统短信广播

       广播接收者(BroadcastReceiver)是安卓的四大组件之一.类似于日常生活中的广播,安卓系统中的广播也有发送者和接收者.发送者通常是系统的应用程序,比如电池电量低.开关机.有电话或短信 ...

最新文章

  1. LINUX创建www的用户组和用户,并且不允许登录权限:
  2. angularjs 中的$digest和$apply区别
  3. 【Android 逆向】修改运行中的 Android 进程的内存数据 ( 运行环境搭建 Android 模拟器安装 | 拷贝 Android 平台可执行文件和动态库到 /data/system )
  4. windows10风格 springboot activiti 整合项目框架源码 shiro 安全框架 druid 数据库连接池...
  5. CentOS(5.8/6.4)linux生产环境若干优化实战------就爱运维
  6. SQL 关于apply的两种形式cross apply 和 outer apply(转)
  7. treeview 文字垂直方向_word文本排版技巧:改变文字方向的这些方法,你知道吗?...
  8. gmat模考_国外GMAT高分学霸们都在用什么复习资料?(模考篇)
  9. C-free在编写代码的过程中遇到方向键失灵,回车键失灵,换行失灵,但是可以正常输入的解决办法!!!!!
  10. 如何新建一个keil工程 的详细步骤
  11. 【国产】TASKCTL批量作业调度统一图形监控运维平台
  12. steam游戏直连工具
  13. 在linux虚拟机中进行jdk1.8的安装与环境变量的配置
  14. “蔚来杯“2022牛客暑期多校训练营5-A Don‘t Starve
  15. java 数据结构和算法 排序
  16. python常见几种设计模式
  17. 洛谷-P2198 杀蚂蚁
  18. 50多岁学python_50万+Python 开发者的选择,这本书对零基础真是太太太友好了!!!...
  19. 插画中的云朵图案随处可见,那么云朵图案是怎么制作的呢?
  20. PageAdmin CMS建站系统可视化区块的使用教程

热门文章

  1. 人工智能没成果,年底的PPT怎么写?腾讯科学家张潼离职的后续讨论
  2. 常见程序(discuz,ecshop,shopex,dedecms等)重置破解管理密码
  3. h5策划书_DIYH5|3.12世界睡眠日H5策划方案
  4. 《NVMe-over-Fabrics-1_0a-2018.07.23-Ratified》阅读笔记(4)-- Controller Architecture
  5. android去掉最上面的app名字(标题栏,抬头)
  6. 微信订阅通知开发 (小白教程)微擎
  7. 软件工程课程设计项目总结与项目报告
  8. 为什么那么多人执着于写博客
  9. Java 简易五子棋
  10. 快捷键没有响应的处理办法