询问用户NSIS中的其他目录位置

时间:2013-10-05 21:27:37

标签: nsis

我有一个NSIS脚本,要求用户提供安装目录,但我想在新页面上询问用户另一个临时目录。有没有办法我可以使用nsDialogs添加新页面,它指定例如

的临时目录
C:\temp

并让他们选择不同的目录,然后将所选目录的值存储在变量

2 个答案:

答案 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命令

对其进行初始化