欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

电子+React学习记录_09_项目_Remote_Control_5_Control_Event_Implementation--robotjs

最编程 2024-04-06 16:37:21
...

实现控制的流程

  1. 获取控制端的输入,
  2. 控制端的输入发送给傀儡端
  3. 傀儡端根据输入进行操作 渲染进程->主进程

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