kotkovets
В общем, макрос дерегистрации в окончательном виде у меня вышел такой:
Код:

!macro UnRegisterExtension extenstion
;
Push $1
Push $2
;
StrCpy $ClassName "Winamp.File.${extenstion}"
;
ReadRegStr $1 HKLM "SOFTWARE\Classes\.${extenstion}" ""
StrCmp "$1" "$ClassName" 0 +2
DeleteRegValue HKLM "SOFTWARE\Classes\.${extenstion}" ""
DeleteRegKey HKLM "SOFTWARE\Classes\$ClassName"
;
ReadRegStr $2 HKLM "SOFTWARE\Classes\.${extenstion}" "Winamp_Back"
DeleteRegValue HKLM "SOFTWARE\Classes\.${extenstion}" "Winamp_Back"
StrCmp "$2" "$ClassName" +2 0
WriteRegStr HKLM "SOFTWARE\Classes\.${extenstion}" "" "$2"
;
ReadRegStr $1 HKCU "Software\Classes\.${extenstion}" ""
StrCmp "$1" "$ClassName" 0 +2
DeleteRegValue HKCU "Software\Classes\.${extenstion}" ""
DeleteRegKey HKCU "Software\Classes\$ClassName"
;
ReadRegStr $2 HKCU "Software\Classes\.${extenstion}" "Winamp_Back"
DeleteRegValue HKCU "Software\Classes\.${extenstion}" "Winamp_Back"
StrCmp "$2" "$ClassName" +2 0
WriteRegStr HKCU "Software\Classes\.${extenstion}" "" "$2"
;
DeleteRegKey /ifempty HKCU "Software\Classes\.${extenstion}"
;
ReadRegStr $1 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" "Progid"
StrCmp "$1" "$ClassName" 0 +2
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice"
;
ReadRegStr $2 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}" "Winamp_Back"
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}" "Winamp_Back"
StrCmp "$2" "" +3
StrCmp "$2" "$ClassName" +2 0
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" "Progid" "$2"
;
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\OpenWithProgids" "$ClassName"
${DelRegValue} HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\OpenWithList" "winamp.exe"
;
Pop $1
Pop $2
!macroend
Тут еще такой казус вышел:
Файл ответов Winamp.ini по наименованию совпадает с подхватываемым файлом настроек Winamp.ini , что исключает их нахождение в одной директории.
Думаю, как лучше выйти из положения, можно ли изменить наименование файла ответов? Или проще наименование файла изменить?