如何使用自动启动功能在系统启动时启动应用程序?

14

package.json:

->

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 启动时运行它。我了解到 auto-launch,但是我不确定如何在我的应用程序中使用它?任何帮助都将不胜感激。

3个回答

26

加载自动启动模块:

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();
  });

3
安装完成后,这会自动启动应用程序吗? - Jaspreet Chhabra
即使用户未登录,它是否能正常工作? - Vikas chhabra

21

顺便提一下,现在 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")
});

编辑

根据最新评论,此内容可能已经过时。首先考虑尝试Timur Nugmanov的答案。


这个程序在所有平台上都能运行吗?还是需要对Linux和Mac进行修改? - Katie
我只在我的应用程序中使用了Windows,所以我无法告诉你。 - Sellorio
这对我没有用,因为它抱怨参数。在这个答案下面提供的答案运行良好。 - sediq khan
这在我的 macOS 上运行良好(Electron 11.2.3)。 - dczajkowski

10

在当前的 electron 发布版本(19.0.0)中,下面的代码可以正常工作:

app.setLoginItemSettings({
    openAtLogin: true    
})

2
截至2023年3月,最简单的解决方案。 - holydragon
根据文档,这只适用于Windows和Mac操作系统... - ninjadev64

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接