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

时间:2017-11-03 06:05:57

标签: nsis silent-installer

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

所以要求归结为:

- 仅在静默安装中处理密钥和注册名称 - 如果整体安装成功,请调用我的exe

1 个答案:

答案 0 :(得分:0)

OutFile "myinstaller.exe"
RequestExecutionLevel user

!include LogicLib.nsh
!include FileFunc.nsh


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

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

并以myinstaller.exe /S /RegKey "Hello" /RegName "World"

运行