kotkovets,
Из Вашей справки
Код:
$0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $R0 $R1 $R2 $R3 $R4 $R5 $R6 $R7 $R8 $R9
Эти переменные могут использоваться точно так же как и пользовательские переменные,
но обычно используются в общедоступных функциях или макроопределениях.
Объявлять эти переменные совершенно не нужно, вы не будете получать конфликтов по именам в скрипте. Используя эти переменные в скрипте, рекомендуется использовать стек для сохранения и восстановления их оригинальных значений, во избежании перезаписи другими командами и функциями, что может привести к непредсказуемым результатам.
По поводу использования стека можно краткие пояснения, а то в справке нет. И какое значение имеет буква R? Или можно любую букву использовать?
Еще вопросик:
В макросе регистрации ассоциаций прописал:
Код:
ReadRegStr $1 HKCR ".${extenstion}" ""
StrCmp $1 "" NoBackup
WriteRegStr HKCR ".${extenstion}" "foobar2000.backup" $1
NoBackup:
StrCpy $ClassName "foobar2000.${extenstion}"
WriteRegStr HKCR ".${extenstion}" "" "$ClassName"
Создание бэкапа при этом проходит нормально.
В макросе де-регистрации ассоциаций прописал:
Код:
StrCpy $ClassName "foobar2000.${extenstion}"
ReadRegStr $0 HKCR ".${extenstion}" ""
StrCmp $0 $ClassName 0 +2
DeleteRegKey HKCR "$ClassName"
ReadRegStr $0 HKCR ".${extenstion}" ""
StrCmp $0 $ClassName 0 +2
DeleteRegValue HKCR ".${extenstion}" ""
ReadRegStr $1 HKCR ".${extenstion}" "foobar2000.backup"
WriteRegStr HKCR ".${extenstion}" "" $1
DeleteRegValue HKCR ".${extenstion}" "foobar2000.backup"
Восстановление ассоциаций происходит нормально если нет других значений бэкапа. Но если есть еще другое значение (например Winamp.Backup), то прописывается его значение. Не пойму почему так может происходить? Ведь должно читаться значение именно "foobar2000.backup".