Электрон, электронный строитель, Nsis, удалить SchTasks в Unisntall - PullRequest
0 голосов
/ 27 июня 2018

Я сделал приложение, которое работает с правами администратора. Чтобы запустить приложение при запуске Windows, я сделал SchTasks, но при удалении я хочу удалить его. Самое близкое, что я мог получить:

;script used to remove the auto launch scheduled task

!macro customUnInstall
  ExpandEnvStrings $0 %COMSPEC%
  ExecWait `"$0" /c "SchTasks /Delete /TN task_name /F & pause"`
!macroend

Но возвращается ERROR: Access is denied.. Это потому, что деинсталляция не имеет прав администратора. Что мне делать, если я должен попытаться выполнить удаление с правами администратора? Или есть другой способ убрать задачу?

Другой вариант, на мой взгляд, состоит в том, чтобы сделать задачу удалить его самостоятельно, если исполняемый файл не находится в пути.

Электронный пакет. Я использую:

"win": {
  "target": [
    "nsis"
  ],
  "requestedExecutionLevel": "requireAdministrator"
},
"nsis": {
  "include": "installer/windows/uninstall.nsh",
  "allowElevation": true,
  "deleteAppDataOnUninstall": true
},

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Как упомянуто в документации , вам необходимо добавить следующее к вашему electron-builder.json (или к разделу build вашего package.json), чтобы поднять ваш установщик:

"nsis": {
    "allowElevation": true
}
0 голосов
/ 27 июня 2018

Я ничего не знаю об Electron-builder, но знаю, что если в скрипте установщика указано RequestExecutionLevel Admin, то деинсталлятор также запросит повышение прав в Vista +.

...