1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > electron支持开机自启动(注册表写入)

electron支持开机自启动(注册表写入)

时间:2021-09-29 20:15:55

相关推荐

electron支持开机自启动(注册表写入)

参考文档:

/say/electron-auto-launch.html

方法来源于官方API:

/docs/api/app#appsetloginitemsettingssettings-macos-windows

这是官方的内容

app.setLoginItemSettings(settings) macOS Windows

settings Object

openAtLogin Boolean (可选)- true在登录时启动应用,false 移除应用作为登录启动项 。默认为 false.

openAsHidden Boolean (可选) macOS- true 表示以隐藏的方式启动应用。 默认为false。 用户可以从系统首选项中编辑此设置, 以便在打开应用程序时检查 app.getLoginItemSettings().wasOpenedAsHidden 以了解当前值。 该配置在 MAS 构建 时不可用。

path String (可选) Windows- 在登录时启动的可执行文件。默认为 process.execPath.

args String Windows - 要传递给可执行文件的命令行参数。默认为空数组。注意用引号将路径换行。

设置应用程序的登录项设置。

如果需要在使用Squirrel的 Windows 上使用 Electron 的 autoUpdater ,你需要将启动路径设置为 Update.exe,并传递指定应用程序名称的参数。 例如:

const appFolder = path.dirname(process.execPath)const updateExe = path.resolve(appFolder, '..', 'Update.exe')const exeName = path.basename(process.execPath)app.setLoginItemSettings({openAtLogin: true,path: updateExe,args: ['--processStart', `"${exeName}"`,'--process-start-args', `"--hidden"`]})

这是自己的代码:

划重点:openAtLogin参数的true、false不能通过传参来解决,只能写两个方法(当然也不知道是不是自己电脑的BUG,待各位验证)

主进程import ipcMain from 'electron';const appFolder = path.dirname(process.execPath);const updateExe = path.resolve(appFolder, 'test.exe');ipcMain.on('changeAutoStart-open',()=>{app.setLoginItemSettings({openAtLogin: true,path: updateExe,args: []});});ipcMain.on('changeAutoStart-closed',()=>{app.setLoginItemSettings({openAtLogin: false,path: updateExe,args: []});})

渲染进程// 对自动启动场景,进行处理if('autoStart' == name){if(checked){ipcRenderer.send('changeAutoStart-open');} else {ipcRenderer.send('changeAutoStart-closed');}};

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。