kotkovets,
Код:
StrCpy $ClassName "Winamp.File.${extenstion}"
;
ReadRegStr $1 HKLM "SOFTWARE\Classes\.${extenstion}" ""
${If} '$1' == '$ClassName'
DeleteRegValue HKLM "SOFTWARE\Classes\.${extenstion}" ""
DeleteRegKey HKLM "SOFTWARE\Classes\$ClassName"
ReadRegStr $2 HKLM "SOFTWARE\Classes\.${extenstion}" "Winamp_Back" ;(читаем в $2 значение бэкапа)
${If} ${Errors}
#тут пишется код, если нету параметра Winamp_Back
DeleteRegValue HKLM "SOFTWARE\Classes\.${extenstion}" "Winamp_Back"
${ElseIf} '$2' == '$ClassName' # в $2 значение параметра Winamp_Back
#тут пишется код, если значение параметра Winamp_Back=$ClassName
DeleteRegValue HKLM "SOFTWARE\Classes\.${extenstion}" "Winamp_Back"
${Else}
#прочие значения параметра Winamp_Back
WriteRegStr HKLM "SOFTWARE\Classes\.${extenstion}" "" "$2"
DeleteRegValue HKLM "SOFTWARE\Classes\.${extenstion}" "Winamp_Back"
${EndIf}
${Else}
${EndIf}
Так правильней?