You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Electron.js中完全禁用所有全局及应用内键盘快捷键?

Electron 完全禁用所有键盘快捷键可行方案

你之前尝试的方案无效的核心原因是:globalShortcut仅用于操作系统全局级别的快捷键,Electron内置菜单快捷键、Chromium默认快捷键(刷新、开控制台、缩放等)均不受其管控,所以方向存在偏差。以下是可落地的实现方案:

1. 核心拦截逻辑:通过before-input-event钩子拦截所有按键

该钩子在Chromium处理按键事件前触发,是唯一能覆盖所有内置快捷键的拦截入口,配置在BrowserWindow的webContents上即可:

const { app, BrowserWindow, Menu } = require('electron')

app.whenReady().then(() => {
  const mainWindow = new BrowserWindow({
    width: 1200,
    height: 800,
    webPreferences: {
      // 可选:直接禁用开发者工具,避免F12触发
      devTools: false,
      nodeIntegration: true,
      contextIsolation: false
    }
  })

  // 所有键盘事件优先走该拦截逻辑
  mainWindow.webContents.on('before-input-event', (event, input) => {
    // 拦截所有带修饰键(Ctrl/Command/Alt)的组合键、功能键(F1-F12等)
    const hasModifier = input.control || input.meta || input.alt || input.functionKey
    const isFKey = /^F\d+$/.test(input.key)

    if (hasModifier || isFKey) {
      event.preventDefault()
      return
    }
    // 如需完全禁用所有按键,直接在此处统一调用event.preventDefault()即可
  })

  // 2. 移除默认应用菜单,消除菜单绑定的所有快捷键
  Menu.setApplicationMenu(null)

  mainWindow.loadFile('index.html')
})

2. 可选配置:快捷键白名单

如果需要保留部分常用快捷键(如复制粘贴),可在拦截逻辑中增加白名单判断:

mainWindow.webContents.on('before-input-event', (event, input) => {
  const hasModifier = input.control || input.meta || input.alt || input.functionKey
  const isFKey = /^F\d+$/.test(input.key)
  // 白名单规则
  const allowList = [
    { control: true, key: 'c' }, // Ctrl+C
    { control: true, key: 'v' }, // Ctrl+V
    { meta: true, key: 'c' }, // Command+C(适配Mac)
    { meta: true, key: 'v' } // Command+V(适配Mac)
  ]
  const isAllowed = allowList.some(rule => {
    return Object.entries(rule).every(([key, value]) => input[key] === value)
  })

  if ((hasModifier || isFKey) && !isAllowed) {
    event.preventDefault()
  }
})

注意事项

  • 如果你应用存在多个子窗口,需要为每个子窗口的webContents都绑定相同的before-input-event监听
  • 如业务需要保留开发者工具,无需设置devTools: false,只需在拦截逻辑中单独匹配input.key === 'F12'的规则拦截即可

内容的提问来源于stack exchange,提问作者Robert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:09:03