Electron BrowserWindow 在聚焦时显示任务栏

Mat*_*att 1 taskbar focus always-on-top electron

我的应用程序是全屏游戏的覆盖层(alwaysOnTop),当用户单击我的覆盖层时,它会获得焦点并在游戏顶部显示任务栏。获得焦点很好,但我无法显示任务栏。

它在BrowserWindow 文档中说:

不是无法聚焦的工具箱窗口

这意味着可以创建一个无法聚焦的窗口。

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


我应该提到我已经尝试setAlwaysOnTop过了skipTaskbar。我也有transparent: trueframe: false


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

在此输入图像描述

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

在此输入图像描述

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

Electron GitHub 问题


附加解决方案信息- 使用下面的 Gaafar 解决方案后

设置中的设置kiosk: true似乎不允许它呈现透明。setKiosk(true)setTimeout窗口打开后使用似乎有效。

我还发现任何使用kioskfullscreen具有透明度的窗口都存在渲染问题。它会在自身之上渲染多次,并且无法取消渲染项目(css 中的 display: none 不会执行任何操作)。我解决这个问题的方法是使用Electron Window Manager创建一个kiosk没有任何内容的单个窗口,并使用 HTML / CSS 界面创建其他非 kiosk 窗口。结果:

  1. 所有界面都可以与鼠标和键盘进行交互。
  2. 渲染的发生方式与 Electron 中的常规方式相同。
  3. 下面的全屏应用程序通过任何透明区域接收输入。
  4. 任务栏永远不会显示在任何输入上。

Gaa*_*far 6

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

要完全隐藏任务栏,请使用全屏或信息亭模式

fullscreen: true 或者 kiosk: true

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

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