对于我的软件套件,我使用NSIS创建了一个安装程序。该安装程序包括带有GUI的powershellscript。我想在用户单击Powershell gui中的“取消”按钮后取消安装过程。
该脚本创建带有列表框的powershell gui。列表框项目将被写入txt文件中。有两个按钮:一个用于“确定”-将项目写入文件,另一个按钮是“取消”按钮。单击确定按钮后,将打开第二个表单。
powershell脚本中的一些代码段:
$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)
}
通过此指令,我在NSIS中调用PS脚本:
ExecWait "powershell -ExecutionPolicy Bypass -WindowStyle Hidden -File nameofscript.ps1 -FFFeatureOff"
答案 0 :(得分:1)
如果在取消时从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: