【问题标题】:Launching an Electron app on Windows restart在 Windows 重新启动时启动 Electron 应用程序
【发布时间】:2016-08-12 15:48:42
【问题描述】:

所以我使用https://github.com/electron/grunt-electron-installer 为我的 Electron 应用程序构建了一个 Windows 安装程序。

我不确定如何在系统启动时启动我的应用程序,例如当用户重新启动计算机时。我怀疑这是我需要在 --squirrel-install 上做的事情,但我找不到任何关于如何做的文档。

理想情况下,我会为用户提供一个菜单选项来启用/禁用此行为。

【问题讨论】:

标签: windows gruntjs electron


【解决方案1】:

这可以通过几种不同的方式完成。我过去在 Windows 操作系统上执行此操作的方法是使用节点 winreg 模块,这允许我添加一个在启动时启动该应用程序的注册表项。我在具有一些用户设置的应用程序的设置窗口中使用此方法:

function setKeyValue () {
    var regKey = new winreg({
        hive: winreg.HKCU,
        key: '\\Software\\Microsoft\\Windows\\CurrentVersion\\Run'
    });
    regKey.set('Your_Application_Name', winreg.REG_SZ, '"' + process.execPath + '"', function (err) {
        if (!err) {
          //notify user?
        }
    });

如果用户在启动时禁用应用程序启动,我也有相反的方法删除 reg 键 regKey.remove。

另外,我最近看到了这个节点模块:auto-launch,这允许您设置应用程序是否在 Mac、Windows 和 Linux 上启动时启动,因此可能对您更有用。

【讨论】:

  • @mike 此解决方案是否允许应用程序在启动时启动,还是仅在用户登录时启动?如果没有,您知道有什么方法可以让应用在启动时启动吗?
  • @PhilippeHebert 嗨,我不确定,因为是 Jamie 回答了这个问题,但我知道包 auto-launch 运行良好,并在启动时运行应用程序。这是一个线程:github.com/electron-archive/grunt-electron-installer/issues/115
  • 嗨迈克!事实证明,它似乎是自动启动的,并且新的 api setLoginItemSettings 都只在用户登录时启动应用程序。这意味着对于服务器,应用程序不会启动,直到有人来进行手动维护。有什么想法@teimaj?
【解决方案2】:

如果你在 Windows/MAC 上使用 electron,有一个现有的 api 可以用来轻松地自动启动你的 electron APP:

        _electron.app.setLoginItemSettings({
            openAtLogin: true,
            path: _electron.app.getPath('exe')
        })

参考可以在这里找到: https://electronjs.org/docs/api/app#appsetloginitemsettingssettings-macos-windows

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-25
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多