[aru_42]
预备
先确保在主进程中已配置下面几个参数项
new BrowserWindow({
webPreferences: {
contextIsolation: false, // 关闭上下文隔离 开启后渲染进程无法访问electron实例
enableRemoteModule: true, // 让 renderer 进程使用 remote 模块
nodeIntegration: true,// 允许在网页中使用 node
}
}) 在主进程配置开机自启
const exeName = path.basename(process.execPath)
app.setLoginItemSettings({
openAtLogin: true,
openAsHidden:false,
path: process.execPath,
args: [
'--processStart', `"${exeName}"`,
]
})
在渲染进程创建menu控制自启关闭
引入
const {Menu,app} = require('electron').remote; 创建menu
let menu = Menu.buildFromTemplate([
{label:'开机自启',type:'checkbox',checked:app.getLoginItemSettings().openAtLogin, click : function () {
if(!app.isPackaged){
app.setLoginItemSettings({
openAtLogin: !app.getLoginItemSettings().openAtLogin,
path: process.execPath
})
}else{
app.setLoginItemSettings({
openAtLogin: !app.getLoginItemSettings().openAtLogin
})
}
console.log(app.getLoginItemSettings().openAtLogin)
console.log(!app.isPackaged);
}
},
// {type:'separator'},
{label:'快捷呼出',type:'checkbox',checked:true, accelerator: 'F2',},
]);
menu.popup(); 相关api说明:
app.setLoginItemSettings(settings)
settings (Object)
openAtLogin Boolean (可选) - true在登录时启动应用,false 移除应用作为登录启动项默认为 false.
openAsHidden Boolean (可选) macOS - true 表示以隐藏的方式启动应用。 默认为false。
path String (可选) Windows - 在登录时启动的可执行文件,具体的为打包后的APP所在的exe文件路径。默认为 process.execPath.
args String Windows - 要传递给可执行文件的命令行参数。默认为空数组。注意用引号将路径换行。
electron API:
🎨 原创不易,支持请点赞、转载请注明本文作者为子成君