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

参考文档:
https://newsn.net/say/electron-auto-launch.html

方法来源于官方API:
https://electronjs.org/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');
    }
  };
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值