说明:屏蔽windows快捷键的方式有多种,可以写c++插件引入到程序中,当然如何对c++了解到不够深入,成本可能比较高,另外就是采用autoHotKey,windows 平台下的热键脚本语言程序,低成本,快速集成到程序,达到禁用快捷键的目的
autoHotKey是什么:是一款免费的、Windows平台下开放源代码的热键脚本语言,是为游戏操纵杆和鼠标创建的热键,是自动按键。也可以通过命令调用系统接口及程序,并创建基于简单语言的图形化界面的执行程序。
文档地址:AutoHotkey
此篇文章结合electron实现对autoHotKey的集成,并实现屏蔽windows快捷键。
使用流程:
1.安装hotautokey:https://autohotkey.com/download/ahk-install.exe
2.使用:
简单来讲,创建一个完整的AutoHotkey脚本步骤
- 桌面右键新建一个
.ahk
后缀的文件,用来编写脚本语言,可以直接运行 - 将其转换为
.exe
方便使用(可以使用Ahk2Exe.exe
或其他工具进行转换)
上图是安装autoHotkey之后自带的转换工具 。转为exe之后可以在electron中使用
.ahk脚本如下:分号后面可以写注释
; AutoHotkey script
; # win, ! alt, ^ ctrl
#m::return ; win+m 禁止收起所有窗口
^z::return ;ctrl+z 禁止撤销
^Esc::return ;ctrl+esc 禁止打开开始菜单
#Esc::return ;win+esc 禁止打开开始菜单
#r::return ;win+r 禁止打开‘运行’对话框
3.脚本写完之后 采用2的工具转化为exe文件
在electron的使用
在主进程中引入
import { exec } from 'child_process';
exec('.\\AutoHotkey.exe'); // 命令行启动脚本
exec('taskkill /IM AutoHotkey.exe'); // 终止进程
此处要注意的是AutoHotkey.exe要放在项目的根目录下,以上命令配置完成之后,启动electron应用,即可禁用相关快捷键
打包的时候需要注意,配置AutoHotkey.exe排除打包程序,然后放置到resources目录下
我是采用的electron-vue架构,因此在vue.config.js中配置,配置方式如下,关注extraFiles的配置
module.exports = {
transpileDependencies: true,
pluginOptions: {
electronBuilder: {
preload: './preload.js',
nodeIntegration: true,
externals: ['electron'], // 这里是你使用的原生模块名字列表,改成自己的即可
chainWebpackMainProcess(config){ //外界屏工具需要的样式配置
config.module
.rule("node")
.test(/\.node$/)
.use("native-ext-loader")
.loader("native-ext-loader")
},
nodeModulesPath: '../node_modules',// 这里是多个node_modules路径
builderOptions: {
"appId": "com.example.app",
"productName": "test",//项目名
"copyright": "Copyright © 1998",//版权信息
"directories": {
"output": "./dist"//输出文件路径,之前编译的默认是dist_electron
},
"win": {
"icon": "./dist_electron/bundled/logo.png",
"requestedExecutionLevel": "requireAdministrator", //获取管理员权限
"target": [
{
"target": "nsis",
"arch": [ // 这个意思是打出来32 bit + 64 bit的包。这样打包出来的安装包体积比较大,建议直接打32的安装包。
"x64",
"ia32"
]
}
],
"extraFiles": [
{
"from": "./AutoHotkey.exe",
"to": "./resources"
}
]
}
}
}
}
}
配置完成之后,打包程序,然后就可以使用了
参考文档:AutoHotkey禁用热键以及Electron中的使用 | Mr.Li (liyu.fun)
【electron-vue】创建Nodejs c++插件,并在electron-vue中调用(addon)_雷阵太阳的博客-CSDN博客
Electron 屏幕锁定 快捷键锁定 屏蔽快捷键_Mad-hu的博客-CSDN博客_electron 锁屏