Как отменить установщик NSIS после отмены выполненного сценария powershell? - PullRequest
0 голосов
/ 12 июня 2019

Для своего программного пакета я создал установщик с NSIS.Этот установщик включает в себя powershellscript с графическим интерфейсом.Я хочу отменить процесс установки после того, как пользователь нажал кнопку отмены в графическом интерфейсе PowerShell.

Сценарий создает графический интерфейс PowerShell со списком.Элемент списка будет записан в виде txt-файла.Есть две кнопки: одна для OK - для записи элемента в файл, другая кнопка для отмены.После нажатия кнопки ОК открывается вторая форма.

Некоторые фрагменты кода из сценария powershellscript:

$CancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel

if('Ok' -eq $form.ShowDialog())
 {
   $msg = "Item copied to txt-file"
   [System.Windows.Forms.MessageBox]::Show($msg,"Confirmation",0)
 }

С помощью этой инструкции я вызываю PS-Script в NSIS:

ExecWait "powershell -ExecutionPolicy Bypass -WindowStyle Hidden -File nameofscript.ps1 -FFFeatureOff"

1 Ответ

1 голос
/ 12 июня 2019

Если вы возвращаете код выхода из PowerShell при отмене, вы можете обработать его из сценария NSIS:

Powershell:

if ($form.ShowDialog() -eq [System.Windows.Forms.DialogResult]::Cancel)
{
    exit 1
}

NSIS:

ClearErrors
ExecWait "powershell -ExecutionPolicy Bypass -WindowStyle Hidden -File nameofscript.ps1 -FFFeatureOff"
IfErrors 0 noError
; Handle error here
noError:

См. Также: как получить код выхода другого приложения в nsis

...