在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"
我的软件已经有了 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"