在nsis静默安装中调用另一个程序

Calling another program in nsis silent installation

我的软件已经有了 nsis 安装程序。为了在静默安装程序中支持注册(我们在代码中编写了复杂的逻辑,而不是通过 nsis 操作注册表),我创建了一个接受 2 个参数的 exe:用于注册的 RegName 和 RegKey。现在我想在静默安装中用两个参数调用这个 exe 文件,这个调用必须是可选的,并且取决于用户是否传递了两个参数。

所以要求归结为:

--静默安装只处理key和注册名 -- 如果整体安装成功,调用我的 exe

OutFile "myinstaller.exe"
RequestExecutionLevel user

!include LogicLib.nsh
!include FileFunc.nsh


Function CheckRegistryParameters
${GetParameters} [=10=]
${GetOptions} "[=10=]" "/RegKey" 
${GetOptions} "[=10=]" "/RegName" 
${If}  != ""
${AndIf}  != ""
    WriteRegStr HKCU "Software\Test$1" "Name" ""
    Exec '"yourapplication.exe" "" ""'
${EndIf}
FunctionEnd

Section
${If} ${Silent}
    Call CheckRegistryParameters
${EndIf}
SectionEnd

和运行作为myinstaller.exe /S /RegKey "Hello" /RegName "World"