|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
${If} $8 == "" ${OrIf} $8 == "$ClassName" ${OrIf} $8 == "Applications\AIMP3.exe" ${Else} WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" "Progid" "$8" 1. "" - пустому значению 2. значению "$ClassName" (текущему значению) 3. значению "Applications\AIMP3.exe" (назначению приложения) Поэтому и разделил ${Else}. Может как-то по другому можно сформулировать? |
|
------- Последний раз редактировалось wolkow70, 24-04-2012 в 12:59. Отправлено: 12:53, 24-04-2012 | #2621 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
|
|
------- Отправлено: 13:17, 24-04-2012 | #2622 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Из справки:
Здесь макрос ${Case} может срабатывать до пяти значений переменной $0 Имеется в виду в один ${Case} можно включать до пяти значений? Самих ${Case} может быть множество? Почему в примере присвоено 3 ${Case3} - потому, что три значения, или любую нумерацию можно поставить? Обладает ли такая формула преимуществами перед тем, что я написал? |
------- Отправлено: 13:41, 24-04-2012 | #2623 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
---- ${Case3} "" "$ClassName" "Applications\AIMP3.exe" ${Case5} "1" "---" "test" "nsis" "yyy" ---- Цитата wolkow70:
Цитата wolkow70:
данный макрос удобнее применять, когда сравнивается множество значений одной выбранной переменной. |
|||
------- Отправлено: 13:56, 24-04-2012 | #2624 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать kotkovets,
При совместном применении в макросе ${Select} и ${Switch} ${extenstion} скрипт не компилируется. !macro RegisterExtension extenstion Push $1 Push $2 StrCpy $ClassName "AIMP.${extenstion}" ; ReadRegStr $1 HKCU "Software\Classes\.${extenstion}" "" ${Select} $1 ${Case2} "" "$ClassName" ${CaseElse} WriteRegStr HKCU "Software\Classes\.${extenstion}" "AIMP.Backup" "$1" ${EndSelect} ; WriteRegStr HKCU "Software\Classes\.${extenstion}" "" "$ClassName" WriteRegStr HKCU "Software\Classes\$ClassName\shell\open\command" "" "$OpenCommand" WriteRegStr HKCU "Software\Classes\$ClassName\shell\open\DropTarget" "CLSID" "{0041494D-5033-4472-6F70-546172676574}" WriteRegStr HKCU "Software\Classes\$ClassName\CLSID" "" "{0041494D-5033-4472-6F70-546172676574}" ; DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}" "Progid" DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}" "Application" WriteRegBin HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\OpenWithProgids" "$ClassName" "" ; ${If} ${AtLeastWinVista} ReadRegStr $2 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" "Progid" DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" "Progid" "$ClassName" ${Select} $2 ${Case2} "" "$ClassName" ${CaseElse} WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" "AIMP.Backup" "$2" ${EndIf} ; ${Switch} ${extenstion} ${Case} "AAC" StrCpy $IconIndex 0 WriteRegStr HKCU "Software\Classes\$ClassName" "" "AIMP3: Advanced Audio Codec" ${Break} ${EndSwitch} WriteRegStr HKCU "Software\Classes\$ClassName\DefaultIcon" "" "$IconFile,$IconIndex" Pop $2 Pop $1 !macroend |
------- Последний раз редактировалось wolkow70, 24-04-2012 в 14:38. Отправлено: 14:33, 24-04-2012 | #2625 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
|
|
------- Отправлено: 15:26, 24-04-2012 | #2626 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
|
|
------- Отправлено: 17:26, 24-04-2012 | #2627 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать kotkovets,
Использую ваш хедер "RegistryFunc.nsh" , но не могу в нем найти функцию определения пустого ключа. Станадартная функция из справки DeleteRegKey /ifempty HKLM "Software\A key that might have subkeys" несколько раз подводила. Еще вот нашел такое: ClearErrors EnumRegValue $R0 HKLM "${RegistryKey}" 0 IfErrors +1 +2 DetailPrint "(Registry Key Error: ${RegistryKey})" ; Put your error handling here. StrCmp $R0 "" +1 +3 DeleteRegKey HKLM "${RegistryKey}" ; This will delete the key if there are no more values... DetailPrint "Removing Registry Key: ${RegistryKey}" ;;Continue your stuff here. Интересует и возможная логическая конструкция для такого случая. Пока сам сделал так, но думаю не идеальный вариант... |
------- Отправлено: 16:26, 25-04-2012 | #2628 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
если он пуст и нет параметров. Цитата:
|
||
------- Отправлено: 19:42, 25-04-2012 | #2629 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать kotkovets,
Я так понимаю, что такая конструкция проверит и удалит ключ если он не содержит вообще никаких параметров. ${If} ${KeyExists} "${HKCU}\Software\Classes\.${extenstion}" ClearErrors EnumRegValue $3 HKCU "Software\Classes\.${extenstion}" 0 IfErrors +1 +2 DetailPrint "Ключ не содержит параметров: HKCU Software\Classes\.${extenstion}" StrCmp $3 "" +1 +3 DeleteRegKey HKCU "Software\Classes\.${extenstion}" "" DetailPrint "Удаление пустого ключа реестра: HKCU Software\Classes\.${extenstion}" ${EndIf} А такая конструкция удалит ключ, если нет параметра по умолчанию Или я чего-то не понял? |
------- Последний раз редактировалось wolkow70, 26-04-2012 в 12:56. Отправлено: 12:46, 26-04-2012 | #2630 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - WinAmp .:[ обсуждение всех версий ]:. | ssaram | Программное обеспечение Windows | 406 | 12-02-2022 19:45 | |
WinstyleMonitor .:[все вопросы]:. | Mr dUSHA | Проект WinStyle | 331 | 12-02-2014 13:15 | |
Delphi - Delphi .: [все вопросы] :. | Serega | Программирование и базы данных | 94 | 04-05-2013 18:45 | |
Доступ - Никак не удаляются файлы (AVI и все остальные форматы) .:[все вопросы]:. | Microsoft Windows 2000/XP | 105 | 30-06-2010 11:58 | ||
Вопросы по создателю инсталляций NSIS | MaxDELETE | Программное обеспечение Windows | 14 | 04-07-2007 10:01 |
|