我有一个带Angular 8的电子js应用程序。如果用户执行命令control + w,它将自动关闭窗口。我尝试浏览BrowserWindow Api,但是找不到标志或处理程序来阻止此行为的发生。
答案 0 :(得分:3)
您需要更改或删除默认的应用程序菜单,该菜单默认具有此快捷键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
这应该可以解决问题
相关文档:
答案 1 :(得分:2)
删除默认的应用程序菜单会删除其他有用的快捷方式,因此我建议您专门针对Ctrl + W,这可以使用globalShortcut
完成:
const { app, globalShortcut } = require("electron");
app.on("ready", () => {
globalShortcut.register("CommandOrControl+W", () => {
//stuff here
});
});
有关此here
的更多信息答案 2 :(得分:0)
对于它可能关心的人,另一个解决方案可以是:
app.on("ready", () => {
app.on("browser-window-focus", () => {
globalShortcut.registerAll(
["CommandOrControl+R"],
() => {
return;
}
);
});
app.on("browser-window-blur", () => {
globalShortcut.unregisterAll();
});
});
这样,我们可以防止阻塞其他应用程序中的globalShortcuts。 有关电子促进剂的更多信息:https://www.electronjs.org/docs/api/accelerator