电子浏览器窗口阻止控制+W关闭窗口



我有一个带Angular 8的电子js应用程序。如果用户执行命令control+w,它会自动关闭窗口。我试着浏览BrowserWindow Api,但是,我找不到阻止这种行为发生的标志或处理程序。

您需要更改或删除默认的应用程序菜单,该菜单在默认下具有此快捷方式Window -> Close Ctrl+W

Menu.setApplicationMenu(null) // remove default application menu
// or
browserWindow.setMenu(null) // just remove default menu of a specific window and not all windows

这应该做技巧

相关文件:

  • 菜单.setApplicationMenu(菜单(
  • win.setMenu(菜单(

删除默认的应用程序菜单会删除其他有用的快捷方式,因此我建议专门针对Ctrl+W,这可以使用globalShortcut:来完成

const { app, globalShortcut } = require("electron");
app.on("ready", () => {
globalShortcut.register("CommandOrControl+W", () => {
//stuff here
});
});

更多信息在这里

对于它可能关心的人,另一个解决方案可以是:

app.on("ready", () => {
app.on("browser-window-focus", () => {
globalShortcut.registerAll(
["CommandOrControl+R"],
() => {
return;
}
);
});
app.on("browser-window-blur", () => {
globalShortcut.unregisterAll();
});
});

通过这种方式,我们可以防止在其他应用程序中阻止全局快捷方式。有关电子加速器的更多信息:https://www.electronjs.org/docs/api/accelerator

最新更新