Electron BrowserWindow 在聚焦时显示任务栏

Electron BrowserWindow shows taskbar when focused

我的应用程序是全屏游戏的叠加层 (alwaysOnTop),当用户单击我的叠加层时,它会获得焦点并在他们的游戏顶部显示任务栏。对焦没问题,就是任务栏显示不出来

它在 BrowserWindow docs 中说:

not a toolbox window which can not be focused on

暗示可以创建一个window无法专注

有谁知道如何创建工具箱 window,或者简单地避免在单击电子时显示任务栏 window?


我应该提到我已经尝试了 setAlwaysOnTopskipTaskbar。我还有 transparent: trueframe: false.


我创建的叠加层是 "Safelane, Midlane, Offlane" 按钮。当我 运行 应用程序时,它显示在全屏应用程序 (Dota 2) 的顶部,如下所示:

点击界面后出现任务栏。全屏应用程序(Dota)失去焦点,任务栏出现在顶部这打破了体验的连续性就好了:

我希望体验与第一张图片一样——当用户点击我的叠加层中的任何内容时,任务栏不应显示。

Electron GitHub Issue


其他解决方案信息 -- 使用下面的 Gaafar 解决方案后

在安装程序中设置 kiosk: true 似乎不允许它呈现透明。在 window 打开后在 setTimeout 中使用 setKiosk(true) 似乎可行。

我还发现任何使用 kioskfullscreen 的透明 windows 都存在渲染问题。它会在自身之上渲染多次并且无法取消渲染项目(display: none in css 什么都不做)。我解决这个问题的方法是使用 Electron Window Manager 创建一个没有任何内容的 kiosk window 并使用 HTML / [ 创建其他非信息亭 windows =71=] 接口。结果:

  1. 所有接口都可以交互,鼠标和键盘。
  2. 渲染发生在 electron 中。
  3. 下面的全屏应用程序通过任何透明区域接收输入。
  4. 任务栏从不显示在任何输入上。

skipTaskbar: true 是为了防止在任务栏中显示您的应用程序。

要完全隐藏任务栏,请改用全屏或 kiosk 模式

fullscreen: true 要么 kiosk: true

编辑: 存在一些未解决的问题,其中全屏或信息亭模式会阻止 window 的透明度。 对我有用的解决方案是 运行 使用这些标志 --enable-transparent-visuals --disable-gpu

问题与解决方案:https://github.com/electron/electron/issues/2170#issuecomment-145942717

  1. showInActive();
  2. 设置您的浏览器窗口,可聚焦:false