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

Electron默认按Alt显示顶部菜单,如何禁用该功能?

解决Electron按下Alt键显示顶部菜单的问题

你的代码里注册的是CommandOrControl+Alt组合键,但单独按下Alt的默认行为并没有被拦截,而且Electron的顶部菜单显示还有应用菜单本身的设置需要调整,以下是可行的解决方案:

方案1:完全移除应用菜单(彻底解决)

如果你的应用不需要顶部菜单,直接将应用菜单设为null,这样无论是否按下Alt,都不会有菜单显示:

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

app.whenReady().then(() => {
    createWindow();
    mainWindow = getMainWindow();
    autoUpdater.checkForUpdates();
    mainWindow.webContents.send('update-info', `Checking for updates. Current version ${app.getVersion()}`);

    // 移除整个应用菜单
    Menu.setApplicationMenu(null);

    // 其他快捷键注册...
    globalShortcut.register('F11', () => {
        console.log('F11 key is disabled');
    });
});

方案2:保留菜单但禁用Alt触发显示

如果需要保留菜单(比如通过右键或其他逻辑调用),可以拦截单独Alt键的默认行为,并禁用窗口菜单的自动显示:

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

app.whenReady().then(() => {
    createWindow();
    mainWindow = getMainWindow();
    autoUpdater.checkForUpdates();
    mainWindow.webContents.send('update-info', `Checking for updates. Current version ${app.getVersion()}`);

    // 拦截单独Alt键的默认行为
    globalShortcut.register('Alt', () => {});

    // 禁用窗口菜单的可见性,避免Alt触发显示
    mainWindow.setMenuBarVisibility(false);

    // 其他快捷键注册...
    globalShortcut.register('F11', () => {
        console.log('F11 key is disabled');
    });
});

注意事项

  • 若使用autoHideMenuBar: true创建窗口,按下Alt仍会触发菜单显示,因此需要配合setMenuBarVisibility(false)或者拦截Alt键来禁用。
  • Mac系统上的菜单是系统级的,若要完全隐藏,除了设置Menu.setApplicationMenu(null),还可以在窗口创建时配置titleBarStyle: 'hidden'或titleBarStyle: 'customButtonsOnHover'。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:42:40