Electron BrowserWindow在聚焦时显示任务栏

时间:2016-06-08 21:24:35

标签: focus electron taskbar always-on-top

我的应用程序是全屏游戏的叠加层(alwaysOnTop),当用户点击我的叠加层时,它会获得焦点并在游戏上显示任务栏。注意力很好,但我不能有任务栏显示。

它在BrowserWindow docs中说:

  

不是无法关注的工具箱窗口

暗示可以创建一个无法关注的窗口。

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

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

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

enter image description here

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

enter image description here

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

Electron GitHub Issue

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

在设置中设置kiosk: true似乎不允许它呈现透明。 setKiosk(true)似乎有效。

我还发现使用setTimeoutkiosk透明的任何窗口都有渲染问题。它会在自身上呈现多次并且无法取消项目(显示:css中的none将不执行任何操作)。我解决这个问题的方法是使用Electron Window Manager创建一个没有任何内容的fullscreen窗口,并使用HTML / CSS界面创建其他非自助服务终端窗口。结果:

  1. 所有界面都可以与鼠标和键盘进行交互。
  2. 渲染就像电子中经常发生一样。
  3. 下面的全屏应用程序通过任何透明区域接收输入。
  4. 任务栏从不显示任何输入。

2 个答案:

答案 0 :(得分:2)

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

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

fullscreen: true 要么 kiosk: true

编辑: 在全屏或自助服务终端模式阻止窗口透明度的情况下会出现一些问题。 对我有用的解决方案是使用这些标志--enable-transparent-visuals --disable-gpu

运行

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

答案 1 :(得分:0)

  1. showInActive();
  2. 将BrowserWindows设置为可聚焦:false