电子+React学习记录_09_项目_Remote_Control_5_Control_Event_Implementation--robotjs
最编程
2024-04-06 16:37:21
...
实现控制的流程
- 获取控制端的输入,
- 控制端的输入发送给傀儡端
- 傀儡端根据输入进行操作 渲染进程->主进程
robotjs帮我们实现第三步,首先是API文档
安装robotjs
再electron里输入process.versions
查到node的版本
先查询abi
//手动编译
npm rebuild —runtime=electron—disturl=https:/latom.io/download/atom-shell
—target=<electron版本>—abi=<对应版本abi>
//自动编译
npm install electron-rebuild --save-dev
npx electron-rebuild
先自动编译,失败再尝试手动
踩了不少坑,此时输入require(‘robotjs’)会报错
Uncaught Error: The module '\\?\D:\newutkal\node_modules\@serialport\bindings\build\Release\bindings.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 72. This version of Node.js requires
NODE_MODULE_VERSION 80. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
//在main.js加一行
app.allowRendererProcessReuse = false
//这样就可以了
这是electron开发经常用到的一个技巧
先实现第一步
第一步最重要的是监听键鼠和鼠标事件,这是js常用命令了
- window.onkeydown
- window.onmouseup
不过还有几个关键点
键盘 - shift,alt等组合键处理
- 按键转换,把code转为按键(vkey)
鼠标 - 位置按比例缩放
//创建robot.js(https://robotjs.io/docs/syntax#keytapkey-modifier)
const {
ipcMain} = require