0

我正在使用 nsis 构建安装程序。我在安装程序的目录页面对话框中使用资源黑客添加了 5 个按钮。我也定义了这些功能:

      !define IDC_BUTTON_CDRIVEPATH         1200
      !define IDC_BUTTON_DDRIVEPATH         1201
      !define IDC_BUTTON_EDRIVEPATH         1202
      !define IDC_BUTTON_FDRIVEPATH         1203
      !define IDC_BUTTON_GDRIVEPATH         1204

!define MUI_CUSTOMFUNCTION_GUIINIT myGuiInit

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

    !define MUI_PAGE_CUSTOMFUNCTION_PRE DirectoryPre
    !define MUI_PAGE_CUSTOMFUNCTION_SHOW DirectoryShow

      !insertmacro MUI_PAGE_DIRECTORY

      !insertmacro MUI_PAGE_COMPONENTS
      !insertmacro MUI_PAGE_INSTFILES
      !insertmacro MUI_PAGE_FINISH

Function DirectoryShow

  GetFunctionAddress $R0 DDRIVEPATH
  ButtonEvent::AddEventHandler ${IDC_BUTTON_DDRIVEPATH} $R0
FunctionEnd 

Function DirectoryPre

  GetFunctionAddress $R6 EDRIVEPATH
  ButtonEvent::AddEventHandler ${IDC_BUTTON_EDRIVEPATH} $R6

line 1--      GetFunctionAddress $R7 FDRIVEPATH
line 2--      ButtonEvent::AddEventHandler ${IDC_BUTTON_FDRIVEPATH} $R7

line 3--      GetFunctionAddress $R8 GDRIVEPATH
line 4--      ButtonEvent::AddEventHandler ${IDC_BUTTON_GDRIVEPATH} $R8

FunctionEnd

当我不删除两个处理程序FDRIVEPATHGDRIVEPATH时,即当我不删除行时--LINE 1,2,3,4,然后,-------------当我转到 COMPONENTS页面,然后按 BACK 按钮返回到 DIRECTORY 页面,然后安装程序自动退出。我不知道为什么会这样。?请帮忙?我坚持了两天。

但是,当我删除两个处理程序FDRIVEPATHGDRIVEPATH时,即当我删除行 1、2、3、4 时,安装程​​序运行正常。

我想要这五个按钮的所有处理程序。我不想删除它们中的任何一个。

以下是我的目录页面对话框:--------- 在此处输入图像描述

4

2 回答 2

1

使用将填充所有驱动器号的 ComboBox 或 ListBox 以节省空间。

使用 nsDialogs 创建的 ComboBox:

Var CB_Buttons

${NSD_CreateComboBox} 0 20 32% 100 ""
Pop $CB_Buttons
   ${NSD_CB_AddString} $CB_Buttons "A:\" 
   ${NSD_CB_AddString} $CB_Buttons "B:\"
   ${NSD_CB_AddString} $CB_Buttons "C:\"
etc. 
于 2011-05-23T13:33:48.453 回答
0

按钮事件插件有一个错误,该错误已由插件开发人员 Afrow UK 先生修复。

于 2011-05-26T05:57:01.370 回答