|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать silione, впринципе, во всех плагинах есть файлик под назавием Example.nsi, в котором есть примеры...
С использованием плагина Registry В начале кода: Сам поиск: Section "Поиск" ${registry::Open} "HKEY_LOCAL_MACHINE" "/K=0 /V=1 /S=0 /B=1" $0 StrCmp $0 0 0 loop MessageBox MB_OK "Error" IDOK close loop: ${registry::Find} "$0" $1 $2 $3 $4 ${GetFileName} "$3" $R0 ; Из значения параметра отсекаем полный путь к файлу StrCmp $R0 "mynsistest.exe" 0 loop ; ЗДЕСЬ прописываем код, при котором ключ НАШЛИ! ; Можем назначить сразу же переменную $INSTDIR вот так: ${GetParent} "$3" $R0 ; Получаем путь из значения параметра, отсекая имя файла StrCpy $INSTDIR "$R0" ; Назначаем переменной путь, который хранится в ключе реестра MessageBox MB_OKCANCEL '$$1 "path" =[$1]$\n\ $$2 "value" =[$2]$\n\ $$3 "string" =[$3]$\n\ $$4 "type" =[$4]$\n\ $\n\ Искать дальше?' IDOK loop close: ${registry::Close} "$0" ${registry::Unload} SectionEnd |
------- Отправлено: 13:43, 03-09-2011 | #1581 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата silione:
Ведь разобраться в чем нибудь, изучить или создавать - нужно пахать, причем жестко! А ни кто этого не хочет делать - желания и времени... |
|
------- Отправлено: 00:13, 04-09-2011 | #1582 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата kotkovets:
Об этом не раз был разговор в данной теме, я его начинал (год назад), там я про всё написал... |
|
------- Отправлено: 09:54, 04-09-2011 | #1583 |
Новый участник Сообщения: 24
|
Профиль | Отправить PM | Цитировать Гм... что-то не работает, не пойму в чем дело. Компилируется без ошибок, но запускаемый инсталлятор как будто не содержит секции с поиском. Даже окошко с запросом продолжать ли поиск не выдает
|
Отправлено: 10:08, 04-09-2011 | #1584 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата silione:
а вы код прочитайте повнимательней, я вам дал пример поиска исполняемого файла mynsistest.exe в ветке HKEY_LOCAL_MACHINE, а запрос будет только после того, как параметр со значением в строке mynsistest.exe будет найден Либо у вас прописаны ещё какие-то ключи к запуску игры...Вот поэтому может и не находить |
|
------- Отправлено: 10:41, 04-09-2011 | #1585 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата silione:
Цитата silione:
1 Определитесь с корневым ключом - HKLM, HKCU 2. Поиск, очевидно, только по строковым параметрам, и скорее всего начинать нужно: c НKLM/Software 3 Если найден нужный ключ - выход из цикла. и тд silione, вот стройте такую логику на поиск, а не по всему реестру беспорядочно. И по этой логике не трудно написать код. Инструменты есть, справка есть - во тока опыта, правильно использовать у вас нет. И не факт, что поиск по реестру будет быстрее, чем поиск по локалям. |
||
------- Последний раз редактировалось kotkovets, 04-09-2011 в 12:04. Отправлено: 11:17, 04-09-2011 | #1586 |
Новый участник Сообщения: 24
|
Профиль | Отправить PM | Цитировать Да уже и так не по всему реестру, а только по HKEY_LOCAL_MACHINE, да и то можно потом действителньо будет сократить.
Файл для поиска естественно прописывал другой, причем для проверки прописывал заведомо известный. Естественно старые ключи к запуску убрал, он собственно один был, installdir. Специально ждал несколько минут, думал может действительно поиск время занимает, но так ничего и не дождался. Сейчас вот попробовал прописать explorer.exe. При поиске в редакторе реестра за пару секунд находит, а в nsis глухо. |
Отправлено: 18:32, 04-09-2011 | #1587 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать kotkovets,
Может подскажите технологичный путь решения такой задачи? Имеем секцию: Section /o "Хранить настройки программы в INI файле" INI ${GetSecWriteSucces} INI ${If} $SUCCES_SECTION = 1 IfFileExists "$EXEDIR\PotPlayerMini.ini" 0 NoThere IfSilent +2 MessageBox MB_OK "Файл настроек найден, он будет скопирован в директорию установки" CopyFiles /silent "$EXEDIR\PotPlayerMini.ini" "$INSTDIR\PotPlayerMini.ini" Goto Done NoThere: IfSilent +2 MessageBox MB_OK "Файла настроек нет, он будет создан в минимальной конфигурации" SetOutPath "$INSTDIR" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "CheckAutoUpdate" "0" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "DVDAudioLang" "1049" ---бла ---бла Done: ${EndIf} SectionEnd Файл это нужен в $INSTDIR только, если система XP. На Vista и выше его нужно переместить в $APPDATA Хотел сделать логической конструкцией через ${If} ${AtLeastWinVista}, но смущает, что в секции уже есть одна логическая конструкция, заканчивающаяся ${EndIf} |
------- Отправлено: 16:48, 05-09-2011 | #1588 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата wolkow70:
Извращение в логических конструкциях применять безусловные метки, так что убирайте метку Done ${GetSecWriteSucces} INI ${If} $SUCCES_SECTION = 1 ${If} ${FileExists} "$EXEDIR\PotPlayerMini.ini" MessageBox MB_OK "Файл настроек найден, он будет скопирован в директорию установки" /SD IDOK CopyFiles /silent "$EXEDIR\PotPlayerMini.ini" "$INSTDIR\PotPlayerMini.ini" ${Else} ;если нету файла PotPlayerMini.ini MessageBox MB_OK "Файла настроек нет, он будет создан в минимальной конфигурации" /SD IDOK SetOutPath "$INSTDIR" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "CheckAutoUpdate" "0" WriteINIStr "$INSTDIR\PotPlayerMini.ini" "Settings" "DVDAudioLang" "1049" ${EndIf} ${If} ${AtLeastWinVista} ;bla bla ${Else} ;здесь код неудовлетворяещему условию AtLeastWinVista ${EndIf} ${EndIf} |
|
------- Последний раз редактировалось kotkovets, 05-09-2011 в 18:42. Отправлено: 17:32, 05-09-2011 | #1589 |
Ветеран Сообщения: 3206
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
(то есть просто не перемещать файл PotPlayerMini.ini) |
|
------- Последний раз редактировалось wolkow70, 05-09-2011 в 17:53. Отправлено: 17:45, 05-09-2011 | #1590 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - 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 |
|