|
Компьютерный форум 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 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
Т.е. идёт процесс - наглядно отображается время с нуля-начала процесса. Процесс закончился - отображение исчезло (+ , если возможно, заненсение результата в переменную) |
|
Отправлено: 11:30, 16-02-2013 | #261 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
Попробуй плагин ThreadTimer plug-in, там в callback функции пропиши определение времени, затем сообщения "WM_SETTEXT" на элемент, который будет таймер отображать Сам не пробовал (сейчас времени нет), чисто теория |
|
------- Отправлено: 11:52, 16-02-2013 | #262 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
Может как то самим организовать отсчёт ? : для минут и секунд заявим 3 переменные, которые будут обозначать разряды времени : $1 - десятки минут ( от 0 до 5 ), $2 - единицы минут (от 0 до 9), $3 - "сдвоенный" разряд, отсчёта секунд от 00 до 59. (или всё же лучше разделить разряды секунд на десятки и единицы ? Но по моему не обязательно...) и начнём посекундный отсчёт, с занесением ( и одновременно отображением) значений в эти переменные по следующей логике : как только отсчёт секунд достигнет 59, через следующую секунду $3 обнуляется до 00 , а в $2 - разряда единиц минут заносится - 1, и отсчёт секунд начинается вновь c 00 до 59 Когда цикл счёта секунд до 59+1 вновь завершится, к единицам минут добавится ещё единичка и так до 9, после чего добавляется единица в разряд десятков минут, т.е. в $1. И так до достижения 59 мин 59 секунд. А больше вообщем то и не надо, и такое то значение вряд ли когда понадобится на практике... (хотя в идеале часы тоже надо бы учесть...) |
|
Последний раз редактировалось MKN, 16-02-2013 в 12:40. Отправлено: 12:01, 16-02-2013 | #263 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
Я тебе его дал для создания отдельного потока, без которого обновлять элементы (менять циферки, пока идёт распаковка файлов к примеру) не получится Короче вот смотри код, смотри на заголовок окна А там уже добавишь высчитывание диапазона времени, если нужно (плагином Time plug-in) ; Script generated by the HM NIS Edit Script Wizard. ; HM NIS Edit Wizard helper defines !define PRODUCT_NAME "Моя программа" !define PRODUCT_VERSION "1.0" !define PRODUCT_PUBLISHER "Моя компания, LLC." !define PRODUCT_WEB_SITE "http://www.mycompany.com" ; MUI 1.67 compatible ------ !include "MUI.nsh" !include WinMessages.nsh XPStyle on ; MUI Settings !define MUI_ABORTWARNING !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\modern-install.ico" ; Welcome page !insertmacro MUI_PAGE_WELCOME ; Directory page #!insertmacro MUI_PAGE_DIRECTORY ; Instfiles page !insertmacro MUI_PAGE_INSTFILES ; Finish page !insertmacro MUI_PAGE_FINISH ; Language files !insertmacro MUI_LANGUAGE "Russian" !include "FileFunc.nsh" !insertmacro GetTime var day var month var year var name_day var hour var minute var seconds var HWND_Timer ; MUI end ------ Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "setup.exe" InstallDir "$TEMP" ShowInstDetails show ; Получаем Handle Section -TEST #GetDlgItem $HWND_Timer $HWNDPARENT 1028 #SendMessage $HWND_Timer ${WM_SETTEXT} "" "STR:TEST" GetFunctionAddress $0 FuncTimer ThreadTimer::Start /NOUNLOAD 1000 -1 $0 SectionEnd Function FuncTimer ${GetTime} "" "L" $day $month $year $name_day $hour $minute $seconds SendMessage $HWNDPARENT ${WM_SETTEXT} "" "STR:$hour:$minute:$seconds" FunctionEnd Section sleep 2000 SectionEnd Section sleep 100 SectionEnd Section sleep 300 SectionEnd Section sleep 499 SectionEnd Section sleep 5000 SectionEnd Section sleep 100 SectionEnd Section sleep 2000 SectionEnd Section sleep 300 SectionEnd Section sleep 100 SectionEnd Section -Post SectionEnd Это тебе как в пример, блин пока писал, ты тут понаписал много чего про цифры Сейчас прочитаю и вникну в суть --- Цитата MKN:
Тот плагин "Time", там можно подсчитать разницу во времени, т.е. смотри: запускается инсталлер - команда определения времени в той функции, которую я тебе выше написал (для отображения часов в реальном времени) там прописываем команду на математическую операцию (из текущего времени вычитаем то, которое было на момент запуска инсталлера) и таким образом получаем то время, которое работает инсталлер на текущий момент Решил изобрести велосипед?? |
||
------- Последний раз редактировалось K.A.V., 16-02-2013 в 12:43. Отправлено: 12:37, 16-02-2013 | #264 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать K.A.V.,
Не, мы кажись не поняли друг друга... Сначала. Чего я хотел : идёт процесс (или не идёт, всё равно) , в окне инсталлера наблюдаем оконце с таймером, который я запускаю как душе угодно. Или вовсе автономно или когда начнётся процесс установки. Таймер после запуска начинает отсчёт с 00:00. Ключевой момент - от 00: 00. Для начала - всё. Вот, как то так... |
Последний раз редактировалось MKN, 16-02-2013 в 12:54. Отправлено: 12:49, 16-02-2013 | #265 |
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать MKN, да блин, какая разница то? Используй плагин time и делай математическую операцию
Ведь всё к одному и тому-же сходится один фиг Держи, дружище Копайся !include "MUI2.nsh" !include "FileFunc.nsh" !include "LogicLib.nsh" !include "WinMessages.nsh" !include "nsDialogs.nsh" !include "FileFunc.nsh" !insertmacro GetTime var day var month var year var name_day var hour var minute var seconds var S_day var S_month var S_year var S_name_day var S_hour var S_minute var S_seconds !include "Time.nsh" Page custom func !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_LANGUAGE "Russian" Name "TEST.exe" Caption "TEST.exe" OutFile "TEST.exe" ShowInstDetails show XPStyle on Var dlg Var RadioButton1 Var RadioButton2 Var CheckBox Var Label Var button var TimerStarted Function func 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_CreateButton} 25u 27u 150u 15u "Жми давай!" pop $button ${NSD_OnClick} $button StartTimer ${NSD_CreateLabel} 0 5u 200u 200u "Здесь будет времечко ;)" pop $Label GetFunctionAddress $0 FuncTimer ThreadTimer::Start /NOUNLOAD 1000 -1 $0 nsDialogs::Show FunctionEnd Function StartTimer # Добавил переменную, потому что при старте сразу идёт отображение времени StrCpy $TimerStarted 1 ${GetTime} "" "L" $S_day $S_month $S_year $S_name_day $S_hour $S_minute $S_seconds GetFunctionAddress $0 FuncTimer ThreadTimer::Start 1000 -1 $0 FunctionEnd Function FuncTimer # Добавил переменную, потому что при старте сразу идёт отображение времени StrCmp $TimerStarted "1" +2 0 abort SendMessage $button ${WM_SETTEXT} "" "STR:Жми ещё для сброса таймера!" ${GetTime} "" "L" $day $month $year $name_day $hour $minute $seconds ${time::MathTime} "second($day.$month.$year $hour:$minute:$seconds) - second($S_day.$S_month.$S_year $S_hour:$S_minute:$S_seconds) =date" $0 StrCpy $0 $0 "" -8 ; Здесь мы отсекаем строку даты, оставляя только часы/минуты/секунды SendMessage $Label ${WM_SETTEXT} "" "STR:Время: $hour:$minute:$seconds (с момента запуска прошло: $0)" FunctionEnd Section ;SetAutoClose true SectionEnd |
------- Отправлено: 13:27, 16-02-2013 | #266 |
Ветеран Сообщения: 2358
|
Профиль | Отправить PM | Цитировать K.A.V.,
Однако, как хитро запутанно... Благодарю ! |
Отправлено: 13:36, 16-02-2013 | #267 |
Новый участник Сообщения: 18
|
Профиль | Отправить PM | Цитировать Здравствуйте! Нижепредставленый код загружает в RichDesc содержимое из rtf файла. Но на компьютере конечного пользователя требуется наличие этого файла.
Можно ли его при компиляции также прикрепить этот файл и загружать его в RichDesc из инсталлятора, а не из папки? Это для того, чтобы не таскать вместе с инсталлятором rtf файлы. Заранее спасибо |
Отправлено: 00:13, 17-02-2013 | #268 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата Awral:
но можно во временную папку для работы плагов (установщик автоматом создает и по завершении работы подчищает) |
|
------- Отправлено: 00:51, 17-02-2013 | #269 |
Новый участник Сообщения: 49
|
Профиль | Отправить PM | Цитировать Подскажите что я делаю не так. Есть код:
Этим кодом я хочу проверить установлена ли библиотека и если нет, то установить. В UninstallString прописан путь к Uninstaller программы полностью вместе с файлом, поэтому использую ${GetParent}, чтобы отсечь Uninstall.exe и получить просто путь, ну а далее проверка есть лигтштыефдд в папке, если есть значит пропустить, но почему-то этот код не катит, постоянно идёт установка, хотя по пути в реестре всё есть. Проверка в реестре 2 раза, т.к. при установке в 32 битной и 64 битной системе путь в реестре разный. |
Отправлено: 20:48, 17-02-2013 | #270 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 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 |
|