Installation 按钮插件不适用于MUI NSIS安装程序中的多个按钮

Installation 按钮插件不适用于MUI NSIS安装程序中的多个按钮,installation,plugins,custom-controls,nsis,modern-ui,Installation,Plugins,Custom Controls,Nsis,Modern Ui,在GetButtonID函数中,当给定多个按钮事件处理程序时,它会在显示目录MUI页面对话框之前自动退出。 但是,如果只提供了一个按钮事件处理程序,则显示目录页面时不会出现任何问题 !include "MUI2.nsh" !define IDC_BUTTON_CDRIVEPATH 1200 !define IDC_BUTTON_DDRIVEPATH 1201 ;--------------------------------------- ;Name and file Name Remove

在GetButtonID函数中,当给定多个按钮事件处理程序时,它会在显示目录MUI页面对话框之前自动退出。 但是,如果只提供了一个按钮事件处理程序,则显示目录页面时不会出现任何问题

!include "MUI2.nsh"

!define IDC_BUTTON_CDRIVEPATH 1200
!define IDC_BUTTON_DDRIVEPATH 1201

;---------------------------------------
;Name and file
Name Remove_ERROR
OutFile solve_error.exe
; -------------------------------

!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\setup.ico" ;
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Header\icon.bmp" 
!define MUI_WELCOMEFINISHPAGE_BITMAP"${NSISDIR}\Contrib\Graphics\Wizard\img.bmp" 
!define MUI_ABORTWARNING

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\licensefile.txt"

!define MUI_PAGE_CUSTOMFUNCTION_SHOW GetButtonID **    <---in this function only one button event handler works, if two handlers are given , then installer crashes**

!insertmacro MUI_PAGE_DIRECTORY

!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH

Function **CDRIVEPATH**
   MessageBox MB_OK|MB_ICONEXCLAMATION "The Software will be installed in : C Drive"
FunctionEnd

Function **DDRIVEPATH**
   MessageBox MB_OK|MB_ICONEXCLAMATION "The Software will be installed in : D Drive"
FunctionEnd
;--------------------------------

Function **GetButtonID** 

GetFunctionAddress $R2 CDRIVEPATH 
ButtonEvent::AddEventHandler ${IDC_BUTTON_CDRIVEPATH} $R2 

;when this second button handler is given ,then installer autoexits as soon as it has to show the Directory MUI Page dialog:

GetFunctionAddress $R3 DDRIVEPATH 
ButtonEvent::AddEventHandler ${IDC_BUTTON_DDRIVEPATH} $R3

FunctionEnd

;------------------------------------------------------------------
Section "INSTALL MAIN SOFTWARE" 

SetOutPath $INSTDIR

File /r "myfolder\*.*"

SectionEnd
;------------------------------------------------------------------
!包括“MUI2.nsh”
!定义IDC按钮CDRIVEPATH 1200
!定义IDC_按钮_地址路径1201
;---------------------------------------
;名称和文件
名称删除错误
OutFile solve_error.exe
; -------------------------------
!定义MUI_图标“${NSISDIR}\Contrib\Graphics\Icons\setup.ico”;
!定义MUI_头图像
!定义MUI_HEADERIMAGE_位图“${NSISDIR}\Contrib\Graphics\Header\icon.bmp”
!定义MUI_WELCOMEFINISHPAGE_位图“${NSISDIR}\Contrib\Graphics\Wizard\img.bmp”
!定义MUI_ABORTWARNING
!插入宏MUI\u页面\u欢迎
!insertmacro MUI_页面_许可证“${NSISDIR}\Docs\Modern UI\licensefile.txt”

!定义MUI_页面_自定义函数_显示GetButtonID**此行为是由ButtonEvent.dll插件中的错误引起的。获取此插件的新版本以解决此问题