NSIS实现如下界面,选择数据保存目录,这个窗口将会在选择安装目录窗口后出现
代码如下
Var DataDir ;定义数据目录位置
!insertmacro MUI_PAGE_WELCOME ;欢迎页面
!insertmacro MUI_PAGE_DIRECTORY ;调用NSIS选择目录窗口
Page custom SetCustom LeaveCustom ;自定义窗口,选择数据目录
!insertmacro MUI_PAGE_FINISH ;安装完成
Function SetCustom ;窗口弹出前,设置窗口的显示内容
WriteINIStr "$PLUGINSDIR\setup.ini" "Field 1" "Text" "选择数据保存的目录,接收邮箱地址薄、发送邮箱账户、宏、邮件模板、发送任务日志以及配置将保存在这里。"
WriteINIStr "$PLUGINSDIR\setup.ini" "Field 2" "Text" "数据保存目录"
;读取数据目录
StrCpy $DataDir "C:\Users\Public\Documents\1and1Mail\" ;默认数据目录
WriteINIStr "$PLUGINSDIR\setup.ini" "Field 3" "State" $DataDir ;将会显示在数据保存目录哪里
InstallOptions::initDialog /NOUNLOAD "$PLUGINSDIR\setup.ini"
!insertmacro MUI_HEADER_TEXT $(MUI_TEXT_DIRECTORY_TITLE) $(MUI_TEXT_DIRECTORY_SUBTITLE) ;"选定安装位置" "选定 $(^NameDA) 要安装的文件夹。"
InstallOptions::show ;弹出窗口
Pop $R0
FunctionEnd
Function LeaveCustom ;窗口结束后
; 判断用户输入的路径是否合法。 不知道怎么判断,有知道的可以告诉我
ReadINIStr $DataDir "$PLUGINSDIR\setup.ini" "Field 3" State ;读取新录入的内容
FunctionEnd
在本后面的安装过程中,可以将数据安装框 $DataDir 目录下
还有setup.ini文件如下,保存显示内容的位置,以及类型
[Settings]
NumFields=7
[Field 1] ;开头提示
Type=Label
Left=0
Right=310
Top=0
Bottom=26
[Field 2] ;数据目录
Type=GroupBox
Left=0
Right=298
Top=70
Bottom=106
[Field 3] ;目录录入框
Type=DirRequest
Left=10
Right=254
Top=84
Bottom=97