【问题标题】:Disable windows key in Electron在 Electron 中禁用 windows 键
【发布时间】:2017-11-02 15:46:50
【问题描述】:

我正在制作一个电子桌面应用程序。我想在应用程序打开时禁用 Windows 键和功能键

我尝试使用以下代码...它注册了事件,但窗口菜单仍然打开

$(document).keydown(function(e){

    if (e.keyCode == 37) { 
       alert( "windows key pressed" );
       return false;
    }
});

有什么帮助吗?

【问题讨论】:

标签: node.js electron desktop-application node-webkit nwjs


【解决方案1】:

你可以试试这个,但不幸的是它会成为一个全局快捷方式,这意味着当窗口没有焦点时,它仍然会被注册。尝试输入console.log() 以查看它何时触发。 win 是你的电子窗口变量

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

win = new BrowserWindow();

globalShortcut.register('Super', () => {
  if (win.isFocused()) {
    // do something
  }
});

您可以在此处查看文档:docs

或者在这里尝试使用这个模块:electron-localshortcut

electronLocalshortcut.register(win, 'Super', () => {
    console.log('Windows Button pressed');
    return false;
});

【讨论】:

  • 我把代码放在我的 main.js 中...这行得通...但是当我使用“Super”而不是“CTrl+A”时,应用程序会中断... electronLocalshortcut.register(mainWindow , 'Ctrl+A', () => { console.log('你按下了 ctrl & A'); });
  • 错误是什么?
  • @VladNeacsu 我知道这是旧的,但我相信绑定函数不能注册像SuperCtrl 等单数表达式(必须是Super+Somethingctrl+a 而不是只是ctrlsuper)。你还有什么别的概念吗?
  • 请参阅 github 问题:github.com/electron/electron/issues/9206 基本上 Windows 已经使用的快捷方式(Super、Super+V)无法使用。 globalShortcut.register 函数还将返回一个布尔值,指示它是否成功。无论如何,要实现这一点,请使用问题中所述的其他库。
猜你喜欢
  • 2019-03-17
  • 1970-01-01
  • 2010-11-15
  • 2018-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多