【发布时间】:2011-05-03 10:33:14
【问题描述】:
我正在使用 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
当我不删除两个处理程序 FDRIVEPATH 和 GDRIVEPATH 时,即当我不删除行时--LINE 1,2,3,4,然后,-------------当我转到 COMPONENTS 页面,然后按 BACK 按钮返回到 DIRECTORY页面,然后安装程序自动退出。我不知道为什么会这样。?请帮忙?我坚持了两天。
但是,当我删除两个处理程序 FDRIVEPATH 和 GDRIVEPATH 时,即当我删除行 1、2、3、4 时,安装程序运行正常。
我想要这五个按钮的所有处理程序。我不想删除它们中的任何一个。
以下是我的目录页面对话框:---------
【问题讨论】:
-
这将如何扩展?可以有 26 个驱动器号...
-
@Anders:先生,我不明白您的意思是什么?请详细说明。
-
我只想提供 F 和 G 的选项,但至少应该可以吗?但它没有
-
@sqlchild:您没有足够的空间容纳 26 个驱动器按钮。也许用户想选择 A: 或 Z:,你不知道其他人在哪里安装了他们的驱动器。此外,您似乎禁用了浏览按钮,这不是一个好主意,因为驱动器可以安装在文件夹中:C:\Somefolder\DriveD
-
@sqlchild: 刚刚发布了新版本的插件,说不定能解决你的问题...
标签: installation crash custom-controls nsis modern-ui