|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
если не нужно - да не писать просто! конструкции дают без головняка великолепную универсальность и любую сложную логику типа, что хочет моя левая нога. И конечно нельзя забывать о последовательности действий. И значительно быстрей работают, чем обычные безусловные переадресации. |
|
------- Отправлено: 17:55, 05-09-2011 | #1591 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать kotkovets,
${If} ${AtLeastWinVista} SetShellVarContext current CreateDirectory "$APPDATA\PotPlayerMini\" MoveFile /silent "$INSTDIR\PotPlayerMini.ini" "$APPDATA\PotPlayerMini\PotPlayerMini.ini" ${Else} ${EndIf} ${EndIf} Так пойдет? Где можно почитать про перемещение файлов (не нашел в справке)? |
------- Отправлено: 18:21, 05-09-2011 | #1592 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
|
|
------- Отправлено: 18:29, 05-09-2011 | #1593 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать kotkovets,
ЗЫ: Протестировал на Win7. В таком виде секция работает: Section /o "Хранить настройки программы в INI файле" INI ${GetSecWriteSucces} INI ${If} $SUCCES_SECTION = 1 ${If} ${FileExists} "$EXEDIR\PotPlayerMini.ini" IfSilent +2 MessageBox MB_OK "Файл настроек найден, он будет скопирован в директорию установки" CopyFiles /silent "$EXEDIR\PotPlayerMini.ini" "$INSTDIR\PotPlayerMini.ini" ${Else} IfSilent +2 MessageBox MB_OK "Файла настроек нет, он будет создан в минимальной конфигурации" SetOutPath "$INSTDIR" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "CheckAutoUpdate" "0" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "DVDAudioLang" "1049" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "DVDCaptionLang" "1049" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "DVDMenuLang" "1049" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "IntDXVAMPEG1" "0" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "IntDXVAMPEG2" "0" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "IntDXVAUseMode" "2" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "IntDXVAWMV3" "0" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "LastConfigPage" "382" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "LastLogoName" "PotPlayer.png" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "LastPlayListName" "PotPlayerMini.dpl" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "LastSkinXmlName" "VideoSkin.xml" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "LastSkinName" "" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "MouseLeftDClick" "1" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "MouseLeftSClick" "4" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "MouseWheelDown" "19" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "MouseWheelUp" "18" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "PlaybackMode" "1" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "RememberPosition" "1" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "UserIDList" "" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "VisualMajor" "1" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "VisualUse" "1" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "Win7WorkTool" "1" ${EndIf} ${If} ${AtLeastWinVista} SetShellVarContext current CreateDirectory "$APPDATA\PotPlayerMini\" Rename "$INSTDIR\PotPlayerMini.ini" "$APPDATA\PotPlayerMini\PotPlayerMini.ini" ${Else} ${EndIf} ${EndIf} SectionEnd |
------- Отправлено: 19:29, 05-09-2011 | #1594 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать wolkow70, Может так логичнее будет...
|
------- Последний раз редактировалось kotkovets, 05-09-2011 в 21:01. Отправлено: 20:44, 05-09-2011 | #1595 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
|
|
------- Отправлено: 10:31, 06-09-2011 | #1596 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать wolkow70 вот вы потестируйте пример..
Цитата wolkow70:
затем внутри глобальных условий - пишем местные условия и т.д, пока не исчерпаются заданные условия. |
|
------- Отправлено: 10:53, 06-09-2011 | #1597 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать kotkovets,
Продолжаю работу над усовершенствованием макросов регистрации ассоциаций. В настоящее время они приняли такой вид: !macro RegisterExtension extenstion Push $1 Push $2 StrCpy $ClassName "PotPlayerMini.${extenstion}" ; ReadRegStr $1 HKLM "SOFTWARE\Classes\.${extenstion}" "" StrCmp "$1" "" NoClassNameBackup StrCmp "$1" "$ClassName" NoClassNameBackup WriteRegStr HKLM "SOFTWARE\Classes\.${extenstion}" "DaumLiveBackup.bak" "$1" NoClassNameBackup: ; WriteRegStr HKLM "SOFTWARE\Classes\.${extenstion}" "" "$ClassName" ; DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}" "Progid" WriteRegBin HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\OpenWithProgids" "$ClassName" "" ; ReadRegStr $2 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" "Progid" StrCmp "$2" "" NoProgidBackup StrCmp "$2" "$ClassName" NoProgidBackup WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}" "DaumLiveBackup.bak" "$2" NoProgidBackup: ; DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" "Progid" "$ClassName" ; WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell" "" "Enqueue" WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell\Enqueue" "" "До&бавить в список воспроизведения PotPlayer" WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell\Enqueue\command" "" "$QueneCommand" WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell\Enqueue\DropTarget" "Clsid" "{CB4EC897-07F7-4ECD-A15E-BBBE23A46EFF}" ; WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell" "" "open" WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell\open" "" "" WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell\open\command" "" "$OpenCommand" WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell\open\DropTarget" "Clsid" "{A64C68BB-8F33-4F4B-BAA8-07D6319D30B4}" ; WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell" "" "play" WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell\play" "" "&Воспроизвести в PotPlayer" WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell\play\command" "" "$PlayCommand" WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\shell\play\DropTarget" "Clsid" "{A64C68BB-8F33-4F4B-BAA8-07D6319D30B4}" ; ${Switch} ${extenstion} ${Case} "AAC" StrCpy $IconIndex 63 WriteRegStr HKLM "SOFTWARE\Classes\$ClassName" "" "AAC - Advanced Audio Coding file" ${Break} --бла--- --бла-- ${EndSwitch} WriteRegStr HKLM "SOFTWARE\Classes\$ClassName\DefaultIcon" "" "$IconFile,$IconIndex" Pop $1 Pop $2 !macroend !macro UnRegisterExtension extenstion Push $1 Push $2 Push $3 Push $4 Push $5 Push $6 ; StrCpy $ClassName "PotPlayerMini.${extenstion}" ; ReadRegStr $1 HKLM "SOFTWARE\Classes\.${extenstion}" "" StrCmp "$1" "$ClassName" 0 +2 DeleteRegValue HKLM "SOFTWARE\Classes\.${extenstion}" "" DeleteRegKey HKLM "SOFTWARE\Classes\$ClassName" ; StrCmp "$1" "$ClassName" 0 +2 ReadRegStr $2 HKLM "SOFTWARE\Classes\.${extenstion}" "DaumLiveBackup.bak" DeleteRegValue HKLM "SOFTWARE\Classes\.${extenstion}" "DaumLiveBackup.bak" WriteRegStr HKLM "SOFTWARE\Classes\.${extenstion}" "" "$2" StrCmp "$2" "$ClassName" 0 +2 DeleteRegValue HKLM "SOFTWARE\Classes\.${extenstion}" "" ; ReadRegStr $3 HKCU "Software\Classes\.${extenstion}" "" StrCmp "$3" "$ClassName" 0 +2 DeleteRegValue HKCU "Software\Classes\.${extenstion}" "" DeleteRegKey HKCU "Software\Classes\$ClassName" ; StrCmp "$3" "$ClassName" 0 +2 ReadRegStr $4 HKCU "Software\Classes\.${extenstion}" "DaumLiveBackup.bak" DeleteRegValue HKCU "Software\Classes\.${extenstion}" "DaumLiveBackup.bak" WriteRegStr HKCU "Software\Classes\.${extenstion}" "" "$4" StrCmp "$4" "$ClassName" 0 +2 DeleteRegValue HKCU "Software\Classes\.${extenstion}" "" ; DeleteRegKey /ifempty HKCU "Software\Classes\.${extenstion}" ; ReadRegStr $5 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}" "DaumLiveBackup.bak" ReadRegStr $6 HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" "Progid" DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}" "DaumLiveBackup.bak" StrCmp "$6" "$ClassName" 0 +5 DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" StrCmp "$5" "" +3 StrCmp "$5" "$ClassName" +2 WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\UserChoice" "Progid" "$5" DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\OpenWithProgids" "$ClassName" ${DelRegValue} HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.${extenstion}\OpenWithList" "PotPlayerMini.exe" ; Pop $1 Pop $2 Pop $3 Pop $4 Pop $5 Pop $6 !macroend |
------- Последний раз редактировалось wolkow70, 06-09-2011 в 14:20. Отправлено: 13:21, 06-09-2011 | #1598 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать wolkow70,
Навскидку, принципиально, зачем такое нерациональное использование большого количества переменных? Первоначальные значения переменных макросе не используются, а значит достаточно двух переменных.. А не кажится вам команда StrCmp "$1" "$ClassName" 0 +2 слишком часто пишется? Почему бы вам не объединить под этим условием нужные команды? |
------- Отправлено: 15:00, 06-09-2011 | #1599 |
Пользователь Сообщения: 58
|
Профиль | Отправить PM | Цитировать Кликабельный BrandingText
сделал по мануалу все получилось, но вот когда хочу вместо урла вставить адрес электронной почты, что бы нажав на нее открывался почтовик по умолчанию, то при нажатии на такой урл ничего не происходит подскажите как добавить урл с email в диалог ,что бы при нажатии открывался почтовик как в браузере PS сам дурак используйте вместо Linker::link /NOUNLOAD $0 "contact@test.com" Linker::link /NOUNLOAD $0 "mailto:contact@test.com" PPS как BrandingText показать на первой странице? MUI_PAGE_WELCOME |
Последний раз редактировалось yyv, 06-09-2011 в 16:04. Отправлено: 15:16, 06-09-2011 | #1600 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - 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 |
|