鍍金池/ 問答/HTML  Office/ electron做的windows應(yīng)用全局快捷鍵被其他程序屏蔽?

electron做的windows應(yīng)用全局快捷鍵被其他程序屏蔽?

1、用electron做了個(gè)小工具,想在全屏游戲的時(shí)候,按特定鍵觸發(fā)小工具的行為;
2、實(shí)際使用發(fā)現(xiàn),在游戲中,快捷鍵全被屏蔽了,按鍵沒反應(yīng),使用其他軟件如播放器、瀏覽器就正常;
3、請(qǐng)問如何繞過屏蔽

4、快捷鍵注冊(cè)使用的https://segmentfault.com/a/1190000008529973的方法

回答
編輯回答
葬憶

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

文檔部分節(jié)選如下:


globalShortcut 模塊具有以下方法:

globalShortcut.register(accelerator, callback)

  • accelerator Accelerator
  • callback Function

注冊(cè) accelerator 的全局快捷鍵。當(dāng)用戶按下已注冊(cè)的快捷鍵時(shí), 將調(diào)用 callback函數(shù)。

如果該快捷鍵已經(jīng)被其他應(yīng)用程序使用, 回調(diào)函數(shù)將不會(huì)被觸發(fā)。 該特性由操作系統(tǒng)定義,因?yàn)椴僮飨到y(tǒng)不希望多個(gè)程序的全局快捷鍵互相沖突。

  • globalShortcut.isRegistered(accelerator)
  • accelerator Accelerator

Returns Boolean - 表示 accelerator 全局快捷鍵是否注冊(cè)成功

當(dāng)快捷鍵已經(jīng)被其他應(yīng)用程序注冊(cè)時(shí), 此調(diào)用將返回 false。 該特性由操作系統(tǒng)定義,因?yàn)椴僮飨到y(tǒng)不希望多個(gè)程序的全局快捷鍵互相沖突。

globalShortcut.unregister(accelerator)

  • accelerator Accelerator

注銷 accelerator 的全局快捷鍵。

globalShortcut.unregisterAll()
注銷所有的全局快捷鍵(清空該應(yīng)用程序的全局快捷鍵)。


從文檔可看出為何失效,Electron 也提供 globalShortcut.isRegistered 方法判斷快捷鍵是否生效。若不生效,則可以提醒用戶更改快捷鍵或通過鼠標(biāo)觸發(fā)等操作。

2018年2月6日 10:34