Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для wolkow70

Ветеран


Сообщения: 3206
Благодарности: 845

Профиль | Отправить PM | Цитировать


Спасибо за ответ. Пока я его ждал, еще попробовал сделать так:

Код: Выделить весь код
!macro UnRegisterExtension extenstion
Push $1
Push $2
StrCpy $ClassName "FastStone.${extenstion}"
;
ReadRegStr $1 HKLM "SOFTWARE\Classes\.${extenstion}" ""
StrCmp $1 "$ClassName" 0 +2
DeleteRegValue HKLM "SOFTWARE\Classes\.${extenstion}" "" 
;
StrCmp $1 "$ClassName" 0 +3
DeleteRegValue HKLM "SOFTWARE\Classes\.${extenstion}" "PerceivedType" 
DeleteRegValue HKLM "SOFTWARE\Classes\.${extenstion}" "Content Type"
;
StrCmp $1 "$ClassName" 0 +2
DeleteRegKey HKLM "SOFTWARE\Classes\$ClassName"
;
StrCmp $1 "$ClassName" 0 +4
ReadRegStr $1 HKLM "SOFTWARE\Classes\.${extenstion}" "FastStone.bak"
WriteRegStr HKLM "SOFTWARE\Classes\.${extenstion}" "" $1
DeleteRegValue HKLM "SOFTWARE\Classes\.${extenstion}" "FastStone.bak"
;
;;RestoreProgid
;
ReadRegStr $2 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}" "FastStone.bak"
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}" "Progid" $2
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}" "FastStone.bak"
;
Pop $1
Pop $2
!macroend
В таком виде тоже все работает.

И все таки не понятно почему безусловные переходы совпадают?
Ведь дерегистрация каждого расширения вызывается отдельной коммандой:
!insertmacro UnRegisterExtension "WMF"
!insertmacro UnRegisterExtension "TIFF"
!insertmacro UnRegisterExtension "TIF"
!insertmacro UnRegisterExtension "TGA"
Я так понимаю, что макрос каждый раз запускается снова для выполнения комманд, или во что-то не врубился?

-------
Человек человеку - друг, товарищ и волк!


Отправлено: 19:37, 23-07-2011 | #1366