我有一个名为sample.exe的安装程序文件。这个exe文件将有一些必须定义的组件,如端口号,安装目录等。我必须将此sample.exe文件捆绑在另一个名为test.exe的安装程序中。因此,当我尝试安装test.exe时,它还应该安装sample.exe。我可以看到在nsis中有实现这个的选项,但是如何在安装test.exe时提供用于输入端口,sample.exe的目录路径的选项?我是nsis的初学者,任何参考都是示例脚本会帮助我很多。提前谢谢。
答案 0 :(得分:0)
您需要创建自定义(安装程序)页面,并输入这些值。
使用nsDialogs(推荐):http://nsis.sourceforge.net/Docs/nsDialogs/Readme.html
没有确切的解决方案,因为您的规范非常模糊,而是检查示例并使用它们提供的代码片段。
答案 1 :(得分:0)
您通常使用目录页面让用户选择安装目录。可以使用nsDialogs插件在自定义页面上记录非标准用户输入:
Name "Foo"
OutFile "TestSetup.exe"
RequestExecutionLevel admin
InstallDir "$ProgramFiles\Test"
!define DEFAULTPORT 666
!include nsDialogs.nsh
Var MyPort
Var PortEdit
Function .onInit
StrCpy $MyPort "${DEFAULTPORT}"
FunctionEnd
Page Directory
Page Custom MyPageCreate MyPageLeave
Page InstFiles
Function MyPageCreate
nsDialogs::Create 1018
Pop $0
${NSD_CreateLabel} 0u 10% 20u 12u "Port: "
Pop $0
${NSD_CreateNumber} 20u 10% 40u 12u "$MyPort"
Pop $PortEdit
nsDialogs::Show
FunctionEnd
Function MyPageLeave
${NSD_GetText} $PortEdit $MyPort
FunctionEnd
Section
SetOutPath $InstDir
File "Sample.exe"
; Write the chosen port to a config file:
WriteIniStr "$InstDir\Config.ini" "Network" "Port" "$MyPort"
SectionEnd