【问题标题】:How to use auto-launch to start app on system startup?如何在系统启动时使用自动启动启动应用程序?
【发布时间】:2018-03-01 06:51:51
【问题描述】:

package.json:

{
  "name": "electronapp",
  "version": "1.0.0",
  "description": "electron auto-launch",
  "main": "index.js",
  "scripts": {
    "start": "electron .",
    "build": "electron-packager . --all"
  },
  "author": "ivie",
  "license": "ISC",
  "devDependencies": {
    "Q": "^1.0.0",
    "asar": "^0.13.0",
    "electron": "^1.7.6",
    "electron-packager": "^9.1.0",
    "electron-prebuilt": "^1.4.13",
    "fs-jetpack": "^1.2.0",
    "grunt-electron-installer": "^2.1.0",
    "rcedit": "^0.9.0"
  },
  "dependencies": {
    "auto-launch": "^5.0.1"
  }
}

index.js:

var electron = require('electron');
var app = electron.app;
var BrowserWindow = electron.BrowserWindow;
var path = require('path');

app.on('ready', ()=>{
    var mainwindow = new BrowserWindow({
        width: 1200,
        height: 800,
        icon: "favicon.ico",
        frame:true,
        title:'Menuboard',
        fullscreen: false,
        autoHideMenuBar: false
    })
    mainwindow.openDevTools();
    mainwindow.loadURL('https://www.google.com');
    mainwindow.on('closed', function() {
        mainwindow = null;
    });
});
app.on('window-all-closed', function() {
    if(process.platform != 'darwin')
        app.quit();
})

我使用此代码生成了一个电子 .exe。当我双击它时它会被执行。但是,我想在 Windows 启动时运行它。我开始了解自动启动。但是,我不确定如何在我的应用程序中使用它?任何帮助将不胜感激。

【问题讨论】:

    标签: javascript node.js node-modules electron-builder electron-packager


    【解决方案1】:

    加载自动启动模块:

    const AutoLaunch = require('auto-launch');
    

    然后在app.on('ready', ()=>{后面加上这个:

      let autoLaunch = new AutoLaunch({
        name: 'Your app name goes here',
        path: app.getPath('exe'),
      });
      autoLaunch.isEnabled().then((isEnabled) => {
        if (!isEnabled) autoLaunch.enable();
      });
    

    【讨论】:

      【解决方案2】:

      仅供参考,现在由 Electron 开箱即用:

      https://electronjs.org/docs/api/app#appsetloginitemsettingssettings-macos-windows

      例子:

      const electron = require("electron")
      
      electron.app.setLoginItemSettings({
          openAtLogin: arg.settings.startOnStartup,
          path: electron.app.getPath("exe")
      });
      

      编辑

      基于新的 cmets,这可能已过时。考虑先尝试 Timur Nugmanov 的答案。

      【讨论】:

      • 这个是在所有平台上都可以用吗,还是完全需要修改还是linux和mac?
      • 我的应用只使用了 windows,所以我不能告诉你。
      • 这对我不起作用,因为它在抱怨 args。在此答案下方提供的答案效果很好。
      猜你喜欢
      • 2014-02-27
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-03
      相关资源
      最近更新 更多