electron开启自启解决方案

所需插件

安装winreg

npm i winreg -s

复制以下代码保存至项目(startOnBoot.js)

let WinReg = require('winreg');
let startOnBoot = {
    enableAutoStart: function (name, file, callback) {
        let key = getKey();
        key.set(name, WinReg.REG_SZ, file, callback || noop)
    },
    disableAutoStart: function (name, callback) {
        let key = getKey();
        key.remove(name, callback || noop)
    },
    getAutoStartValue: function (name, callback) {
        let key = getKey();
        key.get(name, function (error, result) {
            if (result) {
                callback(null, result.value)
            } else {
                callback(error)
            }
        })
    }
};
let RUN_LOCATION = '\\Software\\Microsoft\\Windows\\CurrentVersion\\Run';
function getKey() {
    return new WinReg({
        hive: WinReg.HKCU, // CurrentUser,
        key: RUN_LOCATION
    })
}
function noop() {
}
module.exports = startOnBoot;

引用

在需要的地方引入,如果是在主进程,需要在以下文件中引入

electron项目是main.js

electron-vue项目在src/main/index.js

import StartOnBoot from 'StartOnBoot';

内部方法

StartOnBoot有三个方法

  • enableAutoStart(name, file, callback) 启用开机自启

  • disableAutoStart(namecallback) 禁用开机自启

  • disableAutoStart(name, callback) 查询开机自启状态

参数解释

name:自启名称

file:可执行文件路径一般为process.execPath

callback:执行成功的回调