electron 禁用快捷键

使用electron自带的 globalShortcut 监听快捷键,监听函数不做处理即可禁用快捷键

此方法无法禁用win键(即Super键),若需禁用win键 可使用 xmodmap 禁用(全局无效,非当前项目无效)

main.js

javascript 复制代码
const { app, BrowserWindow, ipcMain, globalShortcut } = require('electron')
const path = require('path')

// 需要无效化的键位
const keysDisabled = ['alt+f4', 'f11', 'ctrl+shift+i']

// 加载地址
const loadUrl =
  process.env.MODE === 'devlopment'
    ? 'http://localhost:3000/'
    : `file://${path.join(__dirname, '../dist/index.html')}`

function createWindow() {
  const win = new BrowserWindow({
    // width: 800,
    // height: 600,
    frame: false, // 隐藏窗口边框和标题栏
    fullscreen: true, // 设置全屏
    webPreferences: {
      contextIsolation: true,
      preload: path.join(__dirname, './preload.js'),
      nodeIntegration: false,
    }
  })

  win.loadURL(loadUrl)

  keysDisabled.map((key) => {
    globalShortcut.register(key, () => {
      console.log(key)
    })
  })
}

app.whenReady().then(() => {
  createWindow()
  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow()
    }
  })
})

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})
相关推荐
Mintopia几秒前
Next.js 的分布式基础思想:从 CAP 到事件风暴,一路向“可扩展”的银河系巡航
前端·javascript
Moment1 分钟前
Next.js 16 Beta:性能、架构与开发体验全面升级 💯💯💯
前端·javascript·github
小帅说java3 分钟前
【Java开发】Java热门框架深入开发第11篇:学习目标,一、SpringBoot简介【附代码文档】
javascript·后端
一枚前端小能手6 分钟前
🔄 模块化方案选择困难症?JavaScript模块化演进史与最佳实践深度解析
前端·javascript
申朝先生13 分钟前
在vue3中对于普通数据类型是怎么实现响应式的
javascript·vue.js·ecmascript
歪歪10032 分钟前
ts-jest与其他TypeScript测试工具的对比
前端·javascript·测试工具·typescript·前端框架
问道飞鱼33 分钟前
【Kubernets进阶】Kubernetes VPA (Vertical Pod Autoscaler) 详解与配置指南
云原生·容器·kubernetes·vpa
江城开朗的豌豆1 小时前
小程序登录不迷路:一篇文章搞定用户身份验证
前端·javascript·微信小程序
aesthetician1 小时前
React 19.2.0: 新特性与优化深度解析
前端·javascript·react.js
Django强哥1 小时前
JSON Schema Draft-07 详细解析
javascript·算法·代码规范