我有一个带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