Electron 应用程序 - 如何在全屏模式下禁用/隐藏任务栏中的窗口

Posted

技术标签:

【中文标题】Electron 应用程序 - 如何在全屏模式下禁用/隐藏任务栏中的窗口【英文标题】:Electron app - how to disable/hide the windows in the taskbar in full-screen mode 【发布时间】:2020-06-04 17:39:49 【问题描述】:

我已经为此苦苦挣扎了一段时间,但仍然没有找到任何好的解决方案。 我正在开发一个 Windows 全屏(信息亭)应用程序,我需要一个模式窗口来输入密码以退出应用程序。我做了模态窗口和功能,但现在的问题是,当模态出现时,主窗口会退出全屏并显示带有两个窗口(主窗口和模态)的 Windows (OS) 任务栏。

解决此问题的一种方法是强制应用成为 Windows shell 而不是资源管理器。 我试图通过更改注册来做到这一点。将 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 键入我的应用程序 exe 文件,但它不起作用。当我重新启动时,它仍然会打开资源管理器外壳。

我还尝试在HKEY_LOCAL_MACHINE\... 中编辑相同的 Shell 键,但该键要求您以 以管理员身份运行,这是另一个麻烦,因为我无法让 Electron 编写该注册表。作为管理员的密钥。

注意:我用来打开主窗口的代码是:

  mainWindow = new BrowserWindow(
    width: 800,
    height: 600,
    fullscreen: true,
    frame: false,
    autoHideMenuBar: true,
    kiosk: true,
    skipTaskbar: true,
    webPreferences: 
      preload: path.join(__dirname, 'preload.js'),
      nodeIntegration: false,
      devTools: true
     
  )

那么,有没有人知道如何: - 要么让主应用程序一直全屏显示,要么...... - 使“Shell”注册表项正确启用并保留应用程序的值。

非常感谢大家的时间和帮助!

【问题讨论】:

重要更新。我有一个想法,就在早些时候,我将项目安装在 Ubuntu 机器上与 Windows 上的完全一样,当我运行它时,一切正常!?!?主窗口保持全屏,模态窗口很好地位于主窗口的顶部,并且任何时候在泊坞窗上都看不到任何内容。更重要的是,当您单击模态窗口时它不会消失,就像在 Windows 环境中一样。我猜微软再次展示了它打破事物或不惜一切代价使它们变得更难的能力...... :) 【参考方案1】:

您可以像这样包含代码:

win.removeMenu();

win.setMenu(null);

在哪里, 例如,win 是创建的浏览器窗口的实例,

let win = new BrowserWindow(options:
        width: 1200,
        height: 800,
        icon: 'path/to/icon'
    )

【讨论】:

【参考方案2】:

autoHideMenuBar: true 键值对添加到您的 win 定义中:

win = new BrowserWindow(
    width: 1250,
    height: 660,
    autoHideMenuBar: true,
    icon: getAssetPath('icon.png'),
  );

【讨论】:

以上是关于Electron 应用程序 - 如何在全屏模式下禁用/隐藏任务栏中的窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何全屏模式自定义视频播放器并在全屏打开时向下滚动

为啥 Direct3D 应用程序在全屏模式下表现更好?

在全屏模式下添加 MPMoviePlayerController?

如何在全屏模式下开始电影或在横向播放时重新调整播放器宽度?

如何将 QVideoWidget 设置为全屏并在全屏小部件中有音量滑块?

在全屏模式下运行应用程序时,Java Swing 无法找出 JPanel 的问题