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()
  }
})
相关推荐
一抓掉一大把3 分钟前
elementui日历显示红点及根据日程范围判断是否有红点
前端·javascript·elementui
前端.火鸡3 分钟前
使用wavesurferJs实现录音音波效果
开发语言·前端·javascript
六边形66614 分钟前
JavaScript 中本地对象、内置对象、宿主对象的区别与作用
前端·javascript
liang899929 分钟前
Docker(二):docker常用命令
spring cloud·docker·容器
CF14年老兵30 分钟前
当 JavaScript 遇上 Rust/Go:一场 “速度诱惑” 下的生态保卫战
前端·javascript·rust
David凉宸31 分钟前
vue手写日历
前端·javascript
itsOli36 分钟前
(25)性能优化和项目上线 | Vue.js 项目实战: 移动端“旅游网站”开发
前端·javascript·vue.js
华洛1 小时前
从0到1打造企业级AI售前机器人——实战指南二:RAG工程落地之数据处理篇🧐
前端·javascript·vue.js
啊波次得饿佛哥1 小时前
在winform中使用chromiumWebBrowser显示Echarts图表
前端·javascript·echarts·winform·cefsharp
秋天的一阵风2 小时前
🌈尘埃落定!ECMASCRIPT 2025 标准来袭,开发者的新福音🎁
前端·javascript·ecmascript 8