InstallDir "любое изменяемое бла-бла". Это "любое изменяемое бла-бла" = $INSTDIR.
$INSTDIR используй далее в скрипте, где угодно.
Давно бы проэксперементировал и увидел что и как.


Код: Выделить всё
OutFile "Test.exe"
SilentInstall silent
SetCompressor /SOLID lzma
!include "LogicLib.nsh"
Function .onInit
System::Call "kernel32::GetUserDefaultLCID() i.r0"
IntOp $LANGUAGE $0 & 0xFFFF
IntFmt $0 "%04X" $0
FunctionEnd
Section
${If} $0 = 0419
newadvsplash::show 2000 100 100 "D:\test\test.gif"
Abort
${EndIf}
SectionEndКод: Выделить всё
Function GetDefaultLanguageFunc
Push $0 ; отправим $0 в стек, чтобы сохранить её состояние до вызова функции
System::Call "kernel32::GetUserDefaultLCID() i.r0"
IntOp $LANGUAGE $0 & 0xFFFF
IntFmt $0 "%04X" $0
Exch $0 ; сохранённое значение $0 из стека возвращается на место, полученный код языка помещается в стек
FunctionEnd
Section
Call GetDefaultLanguageFunc ; вызываем функцию
Pop $0 ; извлекаем из стека полученный функцией код языка
${If} $0 = 0419
newadvsplash::show 2000 100 100 "D:\test\test.gif"
Abort
${EndIf}
SectionEnd