|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив].: NSIS - все вопросы :. |
|
[архив].: NSIS - все вопросы :.
|
Ветеран Сообщения: 1216 |
Профиль | Отправить PM | Цитировать
|
|
Отправлено: 23:35, 17-06-2006 |
Ветеран Сообщения: 2360
|
Профиль | Отправить PM | Цитировать kotkovets,
Несколько вопросов по кастомной странице : Поясни пожалуйста назначение Function Directory в твоём примере. (И почему то без неё, выбор директории установки работает, а с ней - ругань при компиляции...) И где в коде должна быть запись : Page custom SelectDirectory Directory ? Ведь пользовательская страница уже создана записью типа : Page custom fnCustomInit fnCustomDestroy Каким образом осуществляется зависимое (ИЛИ-ИЛИ) переключение чекбоксов (двух и более) в коде кастомной страницы ? Почему при создании GroupBox имеем только надпись над группой, а не сам чекбокс, как при создании на обычной странице,(отключающий\включающий все чекбоксы, входящие в группу) ? Что для этого надо сделать ? Как реализовать отметку всех имеющихся на странице чекбоксов при помощи одной (или двух ?) кнопки ? Т.е. имеется несколько десятков чекбоксов (в группах в том числе). Нажал кнопку - все отмечены. Ещё раз нажал (или нажал вторую кнопку ?) - отметки сняты. |
Последний раз редактировалось MKN, 04-10-2011 в 08:59. Отправлено: 08:52, 04-10-2011 | #1691 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата MKN:
Page custom pre post pre - имя функции[Функция которая будет выполнена при выполнении своей странички] post - имя функции[Функция которая будет выполнена при закрытии странички] Таким образом можно объявлять множесто своих страничек, эти странички и команды, функции в страничках - не работают при тихом режиме. Цитата MKN:
Флажок-точка(радиобутоны) - системные контролы, зависимое переключение получается через системные ресурсы Если радиобутонов много, можно объединить в свои группы переключений. http://nsis.sourceforge.net/NsDialogs_FAQ (How to create two groups of RadioButtons) Цитата MKN:
http://nsis.sourceforge.net/NsDialogs_FAQ nsDialogs::OnClick [хэндл контрола] [имя функции] Определять статусы контролов, как первоначальные, так при обработке событий ${NSD_SetState} [хэндл контрола] 1 - статус отмеченный, 0 - наоборот В функции, которая будет выполнена при закрытии странички удобно снимать статусы чекбоксов, радиобутонов ${NSD_GetState} [хэндл контрола] $var $var = 0 -> чекбокс, радиобутон не отмечен, 1 -> наоборот |
|||
------- Отправлено: 10:39, 04-10-2011 | #1692 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать MKN, Пример к всему вышесказанному, будет полезно всем:
|
------- Последний раз редактировалось kotkovets, 04-10-2011 в 15:01. Причина: Добавил кнопку переключения чекбоксов Отправлено: 13:07, 04-10-2011 | #1693 |
Ветеран Сообщения: 2360
|
Профиль | Отправить PM | Цитировать Что то не вышло использовать для $INSTDIR (InstallDir "$SysDrive:\App") переменную системного диска по способу
StrCpy $SysDrive $WINDIR 2 в Function .onInit. Есть ли какие иные способы для $INSTDIR ? зы А почему собственно в NSIS нет переменной системного диска ? |
Последний раз редактировалось MKN, 04-10-2011 в 18:03. Отправлено: 17:57, 04-10-2011 | #1694 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата MKN:
Почитай синтаксис StrCpy - очень полезно для разбора строк, советую! открываем справку по nsis -> Перевод справки NSIS -> ExpandEnvStrings В справке почти все есть, для создания среднестатического дистрибутива! Красиво и со вкусом! |
|
------- Последний раз редактировалось kotkovets, 04-10-2011 в 18:28. Отправлено: 18:21, 04-10-2011 | #1695 |
Ветеран Сообщения: 2360
|
Профиль | Отправить PM | Цитировать Подскажите , как решить такую задачу :
Создал прогресс бар на кастомной странице : А как заставить его "действовать", т.е. отображать реальный ход установки, после клика на "Установить" ? В примерах всюду какой то Timer применяют... Или это для демонстрационной автономной "презентации" ? ps Хорошо бы дополнить справочник по NSIS, в разделе кастомные страницы, расширенным описанием и конкретными примерами для разных вариантов установок. А то сейчас по этому вопросу, информации обзорна и крайне скупа... |
Отправлено: 09:34, 05-10-2011 | #1696 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата MKN:
и снимаем позицию бара - помещаем текст позиции над баром. SendMessage $PROGBAR ${PBM_SETPOS} 0 10 SendMessage $PROGBAR ${PBM_GETPOS} 0 0 $1 ${NSD_SetText} $Text $1% !include LogicLib.nsh !include nsDialogs.nsh Name "nsDialogs Timer Example" OutFile "nsDialogs Timer Example.exe" XPStyle on Var DIALOG Var TEXT Var PROGBAR Var Button Page custom nsDialogsPage Function CreateFile Pop $Button FileOpen $4 text.txt a SendMessage $PROGBAR ${PBM_GETPOS} 0 0 $1 SendMessage $PROGBAR ${PBM_SETPOS} 0 0 ${NSD_SetText} $Text $1% FileWrite $4 "${__FUNCTION__} $1$\r$\n" Sleep 500 ;пауза для наглядности SendMessage $PROGBAR ${PBM_DELTAPOS} 10 0 SendMessage $PROGBAR ${PBM_GETPOS} 0 0 $1 ${NSD_SetText} $Text $1% FileWrite $4 "${__FUNCTION__} $1$\r$\n" Sleep 500 ;пауза для наглядности SendMessage $PROGBAR ${PBM_DELTAPOS} 10 0 SendMessage $PROGBAR ${PBM_GETPOS} 0 0 $1 ${NSD_SetText} $Text $1% FileWrite $4 "${__FUNCTION__} $1$\r$\n" Sleep 500 ;пауза для наглядности SendMessage $PROGBAR ${PBM_DELTAPOS} 10 0 SendMessage $PROGBAR ${PBM_GETPOS} 0 0 $1 ${NSD_SetText} $Text $1% FileWrite $4 "${__FUNCTION__} $1$\r$\n" Sleep 500 ;пауза для наглядности SendMessage $PROGBAR ${PBM_DELTAPOS} 10 0 SendMessage $PROGBAR ${PBM_GETPOS} 0 0 $1 ${NSD_SetText} $Text $1% FileWrite $4 "${__FUNCTION__} $1$\r$\n" Sleep 500 ;пауза для наглядности SendMessage $PROGBAR ${PBM_DELTAPOS} 10 0 SendMessage $PROGBAR ${PBM_GETPOS} 0 0 $1 ${NSD_SetText} $Text $1% FileWrite $4 "${__FUNCTION__} $1$\r$\n" Sleep 500 ;пауза для наглядности SendMessage $PROGBAR ${PBM_DELTAPOS} 10 0 SendMessage $PROGBAR ${PBM_GETPOS} 0 0 $1 ${NSD_SetText} $Text $1% FileWrite $4 "${__FUNCTION__} $1$\r$\n" Sleep 500 ;пауза для наглядности SendMessage $PROGBAR ${PBM_DELTAPOS} 10 0 SendMessage $PROGBAR ${PBM_GETPOS} 0 0 $1 ${NSD_SetText} $Text $1% FileWrite $4 "${__FUNCTION__} $1$\r$\n" Sleep 500 ;пауза для наглядности SendMessage $PROGBAR ${PBM_DELTAPOS} 10 0 ${NSD_SetText} $Text $1% FileWrite $4 "${__FUNCTION__} $1$\r$\n" Sleep 500 ;пауза для наглядности SendMessage $PROGBAR ${PBM_DELTAPOS} 10 0 SendMessage $PROGBAR ${PBM_GETPOS} 0 0 $1 ${NSD_SetText} $Text $1% FileWrite $4 "${__FUNCTION__} $1$\r$\n" Sleep 500 ;пауза для наглядности SendMessage $PROGBAR ${PBM_DELTAPOS} 10 0 SendMessage $PROGBAR ${PBM_GETPOS} 0 0 $1 ${NSD_SetText} $Text $1% FileWrite $4 "${__FUNCTION__} $1$\r$\n" FileClose $4 MessageBox MB_OK "Файл успешно создан!" IDOK FunctionEnd Function nsDialogsPage nsDialogs::Create 1018 Pop $DIALOG ${NSD_CreateLabel} 0u 0u 100% 9u "" Pop $TEXT ${NSD_CreateProgressBar} 0u 10u 100% 12u "99" Pop $PROGBAR ${NSD_CreateButton} 90u 70u 70u 12u "Создать файл" Pop $Button ${NSD_OnClick} $Button CreateFile nsDialogs::Show FunctionEnd Section SectionEnd |
|
------- Последний раз редактировалось kotkovets, 05-10-2011 в 11:03. Отправлено: 10:49, 05-10-2011 | #1697 |
Пользователь Сообщения: 89
|
Профиль | Отправить PM | Цитировать То есть, можно сделать и обратное продвижение бара?
|
Отправлено: 14:46, 05-10-2011 | #1698 |
Ветеран Сообщения: 2360
|
Профиль | Отправить PM | Цитировать kotkovets,
Пример с баром красивый и наглядный, но это ведь будет отдельная задача, выполняемая при клике на конкретную новую кнопку "Создать файл", на имеющейся кастомной странице. А как быть , если на этой странице уже есть куча чекбоксов, с поставленной для них задачей, исходя из их состояния ? А задача эта будет выполнена так, как уже указано в Function fnCustomDestroy (причём после закрытия страницы, т.е после нажатия стандартной кнопки "Установить")... А если надо, чтобы задачи связанные с состоянием чекбоксов, были выполнены при нажатии кнопки "Создать файл" (Или всё таки можно при нажатии кнопки "Установить" ?) с индикацией прогресс баром, при открытой странице ? Получается надо как то перестроить все действия ? Как ? |
Отправлено: 15:19, 05-10-2011 | #1699 |
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата sawe:
Пример использования таймера - системный цикл, который порождает отдельный поток основной программы, "многопоточное приложение", на примере таймер обновляет время частотой в 200 миллисекунд Цитата MKN:
Создаем еще страничку свою с прогрессом, типа нажали кнопку, неужели так трудно подумать и включить мозг и конечная стандартная страничка финиша........ |
||
------- Последний раз редактировалось kotkovets, 05-10-2011 в 15:45. Отправлено: 15:29, 05-10-2011 | #1700 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Мультимедиа - 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 |
|