我有一个NSIS脚本,要求用户提供安装目录,但我想在新页面上询问用户另一个临时目录。有没有办法我可以使用nsDialogs添加新页面,它指定例如
的临时目录C:\temp
并让他们选择不同的目录,然后将所选目录的值存储在变量
中答案 0 :(得分:5)
如果您只想要一个类似于安装目录页面的对话框,则无需自己进行对话:您可以只调用MUI_PAGE_DIRECTORY
两次。从现有设置中获取的示例:
!insertmacro MUI_PAGE_DIRECTORY ; <= it will store the selected directory into $INSTDIR
;second directory selection
!define MUI_PAGE_HEADER_SUBTEXT "Choose the folder in which to install the database."
!define MUI_DIRECTORYPAGE_TEXT_TOP "The installer will install the database(s) in the following folder. To install in a differenct folder, click Browse and select another folder. Click Next to continue."
!define MUI_DIRECTORYPAGE_VARIABLE $DbInstDir ; <= the other directory will be stored into that variable
!insertmacro MUI_PAGE_DIRECTORY
如果只在某些情况下需要显示第二个目录选择,可以使用
将回调添加到第二页!define MUI_PAGE_CUSTOMFUNCTION_PRE some_custom_function
在该回调中,测试是否需要显示目录选择。如果没有,则调用Abort
将跳过该页面。
答案 1 :(得分:0)
以防您不知道这一点:NSIS安装程序可以创建(或将使用插件)临时文件夹。您可以使用InitPluginsDir命令
对其进行初始化