electorn+AutoHotkey屏蔽windows按键

说明:屏蔽windows快捷键的方式有多种,可以写c++插件引入到程序中,当然如何对c++了解到不够深入,成本可能比较高,另外就是采用autoHotKey,windows 平台下的热键脚本语言程序,低成本,快速集成到程序,达到禁用快捷键的目的

autoHotKey是什么:是一款免费的、Windows平台下开放源代码的热键脚本语言,是为游戏操纵杆和鼠标创建的热键,是自动按键。也可以通过命令调用系统接口及程序,并创建基于简单语言的图形化界面的执行程序。

文档地址:AutoHotkey

此篇文章结合electron实现对autoHotKey的集成,并实现屏蔽windows快捷键。

使用流程:

1.安装hotautokey:https://autohotkey.com/download/ahk-install.exe

2.使用:

简单来讲,创建一个完整的AutoHotkey脚本步骤

  1. 桌面右键新建一个.ahk后缀的文件,用来编写脚本语言,可以直接运行
  2. 将其转换为.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 锁屏

Electron加载第三方C++库 | 码客 (psvmc.cn)

c++屏蔽Win10系统快捷键 - 编程猎人 (programminghunter.com)

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
Electron是一种开源的框架,用于创建跨平台的桌面应用程序。它基于Web技术栈,使用HTML、CSS和JavaScript来开发应用程序界面。而"热更新"是指在应用程序运行过程中,实时更新应用程序的代码和资源,以使用户能够立即获得新的功能和修复bug。 在Electron中,实现热更新的方式有很多种,下面介绍两种常用的方法。 第一种方法是使用Electron的自动更新模块`autoUpdater`。它可以与Electron小应用的后端服务进行通信,检查新版本的应用程序是否可用,并自动下载和安装更新。通过这种方式,用户可以在不重启应用程序的情况下享受到最新的功能和修复。 第二种方法是使用Electron的热重载功能。通过使用工具类库如`electron-reload`,可以监听文件系统的更改并自动重新加载应用程序窗口,以便实时应用最新的代码和资源。这种方式对于开发过程中的快速迭代非常有用,可以让开发人员实时查看到改动的效果。 无论是使用`autoUpdater`还是热重载功能,Electron的热更新使开发人员能够更高效地进行开发和测试,同时也提供了更优质的用户体验。用户可以无需重新启动应用程序即可享受到最新的功能和修复,同时也减少了开发人员的发布工作量。 总之,Electron的热更新是一项强大的功能,可以提升开发效率并改善用户体验。无论是开发人员还是最终用户,都能从中受益。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值