Электрон поддерживает самозапуск (запись реестра)

Справочный документ:
https://newsn.net/say/electron-auto-launch.html .

Этот метод взят из официального API:
https://electronjs.org/docs/api/app#appsetloginitemsettingssettings-macos-windows .

Это официальный контент

app.setLoginItemSettings(настройки) macOS Windows

  • настройки объекта
  • openAtLogin Boolean (необязательно) — значение true для запуска приложения при входе в систему, значение false для удаления приложения как элемента запуска входа в систему. По умолчанию false.openAsHidden
    Boolean (необязательно) macOS — true означает скрытый запуск приложения. По умолчанию — ложь. Пользователи могут редактировать этот параметр в Системных настройках, чтобы проверить app.getLoginItemSettings().wasOpenedAsHidden на предмет текущего значения при открытии приложения. Эта конфигурация недоступна во время сборки MAS.
    строка пути (необязательно) Windows — исполняемый файл, который будет запускаться при входе в систему. По умолчанию:process.execPath.args
    String Windows — аргументы командной строки, которые будут переданы исполняемому файлу . По умолчанию пустой массив. Обратите внимание на кавычки вокруг пути.
    Установите настройки входа в приложение.

Если вам нужно использовать средство автоматического обновления Electron в Windows с помощью Squirrel, вам необходимо установить путь запуска 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 не могут быть решены путем передачи параметров.Можно написать только два метода (конечно, я не знаю, является ли это ОШИБКОЙ моего собственного компьютера, пожалуйста, проверьте это)

主进程

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

рекомендация

отblog.csdn.net/weixin_44325637/article/details/100729131