使用NSIS卸载Windows Installer时,我需要在卸载程序屏幕之前提示一个消息框(确定要卸载吗??)。

时间:2019-01-09 09:36:02

标签: nsis

使用“ NSIS”从“控制面板”->“程序和功能”卸载Windows安装程序时,我需要在卸载之前提示一个消息框(确定要卸载...吗?)。

我写了以下代码:

!insertmacro MUI_UNPAGE_INSTFILES

Section "Uninstall"

  ; Remove registry keys
  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\EMR"
  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\EMR\Electronic Edition"
  DeleteRegKey HKLM "SOFTWARE\EMR\Electronic Edition"
  DeleteRegKey HKLM "SOFTWARE\EMR"

  ; Remove files and uninstaller
  Delete $INSTDIR\EMR_4.0.1.nsi
  Delete $INSTDIR\uninstall.exe

  ; Remove shortcuts, if any
  Delete "$INSTDIR\EMR\Electronic Edition\*.*"

  ; Remove directories used
  RMDir "$INSTDIR\EMR\Electronic Edition"
  RMDir "$INSTDIR\EMR"
  RMDir "$INSTDIR"

 RMDir /r /REBOOTOK $INSTDIR

SectionEnd

但是使用上面的代码,我可以直接进入下面的屏幕,而无需提示消息框。

enter image description here

我需要显示如下所示的消息框:

enter image description here

请帮助我。

1 个答案:

答案 0 :(得分:1)

已有一个卸载程序页面:

...
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE English

如果您不需要整个页面,可以使用MessageBox:

Function un.onInit
MessageBox MB_YESNO "Are you sure you want to uninstall $(^Name)?" /SD IDYES IDYES NoAbort
Abort
NoAbort:
FunctionEnd