|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2. |
|
.: NSIS - все вопросы :. часть 2.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения. Описание: Текущая версия: NSIS 3.05 от 15 декабря 2019 года Скачать | Архив сборок версии Первая часть этой темы Скачать первую часть этой темы одним архивом ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов: Справочник по NSIS - создан силами нашего сообщества. Руководство пользователя. Перевод – Поляков А.В, зеркало Документация Утилиты разработчика Расширение функциональности Примеры скриптов на нашем форуме Скрипт NSIS для перепаковки AIMP2+Сборки Тема для Notepad++(пример парсинга XML) Достоинства Ещё немного полезной информации: |
|
------- Отправлено: 12:02, 09-12-2012 |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
Цитата kotkovets:
Вопрос, по какому действию скрывать и показывать другие? По нажатию кнопки Next? Как наиболее коротко это сделать? В голову приходят идеи создания отдельной функции, но может есть команды в одну строку? |
||
------- Отправлено: 13:41, 24-10-2013 | #631 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
Но что мне не нравится в WMI - подтормаживает... Пока всё определит... Может это издержки хедера ? И может можно как то ускорить его работу ? |
|
Отправлено: 13:46, 24-10-2013 | #632 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата MKN:
апи неверно работает в win8 - поэтому вынужден на WMI перейти --- Цитата alexfinik:
т.е если нужно по условиям предыдущей странички не показывать следующую.. что то, можно так объявить: что то мне подсказывает - здесь циклы -> тупик.. |
||
------- Последний раз редактировалось kotkovets, 24-10-2013 в 14:35. Отправлено: 14:19, 24-10-2013 | #633 |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать Цитата kotkovets:
1. На странице "Первая страница" задаю количество страниц с название "Вторые страницы" в поле. Например 4. 2. Далее возникают по очереди мои четыре страницы. На каждой из них задаю количество страниц "Третьи страницы" Допустим задам во всех окнах по 1,2,3,4 "третьих страниц", соответственно. 3. В конце одна 4-я страница 4. Ну соответственно у меня будет такая последовательность возникновения страниц на экране 1,2,3, 2,3,3, 2,3,3,3, 2,3,3,3,3, 4 На всех страницах вводится информация, которая дальше формирует ini и bat файлы. Укажите, куда копать, пожалуйста. Потому что вот с вложенным фором у меня проблемы возникли... Ну тут что-то типа массива второй степени получается, то бишь матрицы. Узнал уже кучу |
|
------- Последний раз редактировалось alexfinik, 24-10-2013 в 15:25. Отправлено: 14:56, 24-10-2013 | #634 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать alexfinik, т.е. вам нужно реализовать что...если я правильно понял:
Конструкцию, при которой пользователь сам решит, сколько страниц показывать (странички будут с одинаковым содержимым уже известным вам или как?) и далее, "дублирующее" действие, на следующих страничках, пользователь опять же сам укажет количество нужных для показа страничек? хм, я бы сделал это всё управлением переменных, т.е. к примеру: 1. В одну переменную кидаем количество нужных страничек - 4 Переходим ко второму диалогу, где читаем значение этой переменной и понимаем, что будем показывать 4 раза один (либо в теории с помощью функций менять содержимое элементов в зависимости от нумерации странички) 2. Когда "вторая" страничка будет подходить к концу показа (пользователь сделал там всё, что было необходимо) в конце функции после команды nsDialogs::Show мы плюсуем +1 к значению переменной (создаём ещё одну переменную), в которой мы указывали общее количество страничек, сравниваем значения и, если нам ещё нужно показывать странички (значение меньше 4), то перепрыгиваем меткой в начало функции (перед командой nsDialogs::Create), что поможет нам инициализировать создание второй странички в пределах одной функции, если же значение 4 (все необходимые странички были показаны), то завершаем функцию и идём дальше В теории, таким способом можно создать неограниченное количество страничек, вроде бы, решение вашей проблемы. Это просто набросок реализации, я сам понял, что написал, потому что в своё время много заморачивался со страничками на InstallOptions, а уловили ли вы мою идею, я не знаю В любом случае, пишите больше подробностей, если что - поможем |
------- Отправлено: 15:57, 24-10-2013 | #635 |
Пользователь Сообщения: 86
|
Профиль | Отправить PM | Цитировать определяю значение ,консервирую в переменную $1
ReadINIStr $1 "$EXEDIR\mod.ini" "Setting" "(I)D" после определения использую $1 nsExec::Exec '"$INSTDIR\PLUGINSDIR\7z.exe" e $INSTDIR\mod.7z -o"$1" -aos' например если в $1 значение $SMPROGRAMS то в итоге будет nsExec::Exec '"$INSTDIR\PLUGINSDIR\7z.exe" e $INSTDIR\mod.7z -o"$SMPROGRAMS" -aos' а мне нужно чтоб nsis определил $SMPROGRAMS как это он определяет по умолчанию, например C:\ProgramData\Microsoft\Windows\Start Menu\Programs\ то есть в итоге нужно nsExec::Exec '"$INSTDIR\PLUGINSDIR\7z.exe" e $INSTDIR\mod.7z -o"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\" -aos' возможно ли это? |
Последний раз редактировалось icq99999999, 24-10-2013 в 23:30. Отправлено: 17:45, 24-10-2013 | #636 |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать K.A.V., кажется что-то понял. Спасибо. Попробую повозиться с метками.
Не очень понял относительно nsDialogs::Show. Если у нас есть и в test0 у нас зашит этот самый nsDialogs::Show, то после этой команды он разве не переходит сразу к test1? Upd.: Поэкспериментировал. В моем случае, если 2 функции в странице участвуют, Goto не срабатывает если переход относится к другой функции. Кажется пока сам разбираюсь. Изврат полный, но получается... |
------- Последний раз редактировалось alexfinik, 24-10-2013 в 20:16. Отправлено: 17:49, 24-10-2013 | #637 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать alexfinik, держите
!include "MUI2.nsh" !include "FileFunc.nsh" !include "WinMessages.nsh" !include "nsDialogs.nsh" !include "LogicLib.nsh" var showagain var button var DialogCount var labelCount Page custom func1 func2 !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_LANGUAGE "Russian" Name "TEST.exe" OutFile "TEST.exe" ShowInstDetails show XPStyle on Function func1 StrCpy $DialogCount -1 showDialog: StrCpy $showagain "0" IntOp $DialogCount $DialogCount + 1 nsDialogs::Create 1018 pop $0 GetDlgItem $0 $HWNDPARENT 1037 SendMessage $0 ${WM_SETTEXT} 0 "STR:Мой текст строки №1" GetDlgItem $0 $HWNDPARENT 1038 SendMessage $0 ${WM_SETTEXT} 0 "STR:Мой текст строки №2" ${NSD_CreateLabel} 0 5u 100u 20u "Перезагрузок диалога: $DialogCount" pop $labelCount ${NSD_CreateButton} 25u 27u 150u 15u "Перезагрузка диалога" pop $button ${NSD_OnClick} $button StartDialog nsDialogs::Show StrCmp $showagain "1" showDialog 0 FunctionEnd Function func2 FunctionEnd Function StartDialog MessageBox MB_YESNO|MB_ICONQUESTION "Показать диалог ещё раз?" idyes restart strcpy $showagain 0 abort restart: strcpy $showagain 1 # Искусственно нажимаем кнопку "Далее", чтобы перезагрузить диалог GetDlgItem $0 $HWNDPARENT 1 SendMessage $0 ${BM_CLICK} 0 0 FunctionEnd Section SetAutoClose true SectionEnd Цитата alexfinik:
|
|
------- Отправлено: 20:27, 24-10-2013 | #638 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Может, кому пригодится...
Плагин делает окно инсталлятора прозрачным. Инструкция и пример в архиве |
------- Отправлено: 22:24, 24-10-2013 | #639 |
Пользователь Сообщения: 86
|
Профиль | Отправить PM | Цитировать почему так работает
CreateShortCut "$SMPROGRAMS\mod\mod.lnk" "$INSTDIR\mod.exe" а так нет? RMDir /r /REBOOTOK "$SMPROGRAMS\mod" пишу CreateShortCut "$SMPROGRAMS\очистка.lnk" "$INSTDIR\mod.exe" "/O" получаю ярлык с таким именем Тихая.lnk" в чём причина? |
Последний раз редактировалось icq99999999, 25-10-2013 в 08:38. Отправлено: 00:25, 25-10-2013 | #640 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 2 | dimadr | Наборы обновлений для Windows XP/2003/Windows 7 | 267 | 14-02-2020 08:25 | |
[архив].: NSIS - все вопросы :. | kotkovets | Автоматическая установка приложений | 3387 | 09-12-2012 11:56 | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 1 | jameszero | Наборы обновлений для Windows XP/2003/Windows 7 | 1491 | 22-07-2011 22:42 | |
Выбор|модернизация процессора .:[все вопросы]:. Часть I | Myxa | Выбор отдельных компонентов компьютера и конфигурации в целом | 1845 | 01-01-2011 19:18 | |
Вопросы по создателю инсталляций NSIS | MaxDELETE | Программное обеспечение Windows | 14 | 04-07-2007 10:01 |
|