Не сложный макрос для проверки ключа реестра на наличие:
читать дальше »
!include "LogicLib.nsh"
!macro IfKeyExists ROOT MAIN_KEY KEY
Push $R0
Push $R1
Push $R2
StrCpy $R1 "0"
StrCpy $R2 "0"
${Do}
EnumRegKey $R0 ${ROOT} "${MAIN_KEY}" "$R1"
${If} $R0 == "${KEY}"
StrCpy $R2 "1" # found
${Break}
${EndIf}
IntOp $R1 $R1 + 1
${LoopWhile} $R0 != ""
ClearErrors
Exch 2
Pop $R0
Pop $R1
Exch $R2
!macroend
Пример использования :
!insertmacro IfKeyExists "HKCU" "Software\Classes" ".MP3"
Pop $R0
;
${If} $R0 == "1"
MessageBox MB_OK "Ключ существует"
${ElseIf} $R0 == "0"
MessageBox MB_OK "Ключ не существует"
${EndIf}