electron做的windows应用全局快捷键被其他程序屏蔽?

1、用electron做了个小工具,想在全屏游戏的时候,按特定键触发小工具的行为;
2、实际使用发现,在游戏中,快捷键全被屏蔽了,按键没反应,使用其他软件如播放器、浏览器就正常;
3、请问如何绕过屏蔽

4、快捷键注册使用的https://segmentfault.com/a/1190000008529973的方法

阅读 8.4k
1 个回答

可查看官方文档:https://electronjs.org/docs/a...

文档部分节选如下:


globalShortcut 模块具有以下方法:

globalShortcut.register(accelerator, callback)

  • accelerator Accelerator
  • callback Function

注册 accelerator 的全局快捷键。当用户按下已注册的快捷键时, 将调用 callback函数。

如果该快捷键已经被其他应用程序使用, 回调函数将不会被触发。 该特性由操作系统定义,因为操作系统不希望多个程序的全局快捷键互相冲突。

  • globalShortcut.isRegistered(accelerator)
  • accelerator Accelerator

Returns Boolean - 表示 accelerator 全局快捷键是否注册成功

当快捷键已经被其他应用程序注册时, 此调用将返回 false。 该特性由操作系统定义,因为操作系统不希望多个程序的全局快捷键互相冲突。

globalShortcut.unregister(accelerator)

  • accelerator Accelerator

注销 accelerator 的全局快捷键。

globalShortcut.unregisterAll()
注销所有的全局快捷键(清空该应用程序的全局快捷键)。


从文档可看出为何失效,Electron 也提供 globalShortcut.isRegistered 方法判断快捷键是否生效。若不生效,则可以提醒用户更改快捷键或通过鼠标触发等操作。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题