|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » .: NSIS - все вопросы :. часть 2. |
|
|
.: NSIS - все вопросы :. часть 2.
|
|
Ветеран Сообщения: 1216 |
![]() Данная тема предназначена для обсуждения вопросов, связанных с инсталлятором Nullsoft Scriptable Install System, или просто NSIS. Сайт приложения. Описание: Текущая версия: NSIS 3.05 от 15 декабря 2019 года Скачать | Архив сборок версии Первая часть этой темы Скачать первую часть этой темы одним архивом ВНИМАНИЕ! прежде, чем задать вопрос, почитайте, где Вы найдете ответы на большинство вопросов: Справочник по NSIS - создан силами нашего сообщества. Руководство пользователя. Перевод – Поляков А.В, зеркало Документация Утилиты разработчика Расширение функциональности Примеры скриптов на нашем форуме Скрипт NSIS для перепаковки AIMP2+Сборки Тема для Notepad++(пример парсинга XML) Достоинства Ещё немного полезной информации: |
|
|
------- Отправлено: 12:02, 09-12-2012 |
|
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать Тоесть получается, что нельзя сделать перезагрузку именно из функции нажатия бутона, а надо пихать Reboot в секцию установки...но мне это не подходит...хотел именно так...
Как же посоветуешь выйти из ситуации kotkovets, или можно что то придумать? |
|
Отправлено: 08:58, 20-06-2013 | #401 |
|
Ветеран Сообщения: 2398
|
Профиль | Отправить PM | Цитировать diakov,
Если я правильно понял, то раз после нажатия OK сообщения, сразу предполагается Reboot , т.е. по сути, сначала закрытие-выход инсталлятора, а затем уже Reboot - то можно закрыть инсталлятор после нажатия ОК и после закрытия, организовать Post функцию с Reboot и с условием, что был нажат нужный ОК. А вот для этого условия могут быть варианты... |
|
Последний раз редактировалось MKN, 20-06-2013 в 09:41. Отправлено: 09:31, 20-06-2013 | #402 |
|
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 10:25, 20-06-2013 | #403 |
|
Ветеран Сообщения: 2398
|
Профиль | Отправить PM | Цитировать diakov,
Самое простое, если устанавливается драйвер, то в TEMP ещё помещается и маркерный файл (предположим пустой файл - drv) и исходя из его наличия совершается нужное действие (перезагрузка) после закрытия инсталлятора. ( Нет маркерного файла - нет перезагрузки. ) !include "MUI2.nsh"
OutFile "Test_OK-Reboot.exe"
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Section
SetOutPath "$TEMP"
File "drv"
MessageBox MB_ICONEXCLAMATION|MB_OK "ОК - перезагрузка."
Quit
SectionEnd
Function .onGUIEnd
${If} ${FileExists} "$TEMP\drv"
MessageBox MB_OK "Reboot"
Delete "$TEMP\drv"
;Reboot
${Else}
${EndIf}
FunctionEnd
Наверняка можно и по другому сделать. |
|
Последний раз редактировалось MKN, 20-06-2013 в 13:06. Отправлено: 12:59, 20-06-2013 | #404 |
|
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать MKN, немного не то, мне надо что бы перезагрузка происходила именно после выполнения всех команд в функции нажатия бутона, пробовал писать Quit, Abort и т.д. не помогает инстальник не закрывается, как сделать это именно в функции что бы он закрылся?
Если воспользоватся командой ${KillProcess} то инстальник убивается но ф-ция .onGUIEnd не отрабатывает. |
|
Отправлено: 14:01, 20-06-2013 | #405 |
|
Ветеран Сообщения: 2398
|
Профиль | Отправить PM | Цитировать diakov,
Вызови функцию из функции или ещё откуда : Section
Call ClickButton1
SectionEnd
Function ClickButton1
SetOutPath "$TEMP"
File "drv"
MessageBox MB_ICONEXCLAMATION|MB_OK "ОК - перезагрузка."
Quit
FunctionEnd
Function .onGUIEnd
${If} ${FileExists} "$TEMP\drv"
;MessageBox MB_OK "Reboot"
Delete "$TEMP\drv"
Reboot
${Else}
${EndIf}
FunctionEnd
|
|
Отправлено: 15:50, 20-06-2013 | #406 |
|
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать MKN, ну вот допустим так:
Function ClickButton1
pop $btn1
IfFileExists "$SYSDIR\drivers\sptd.sys" 0 NotFiles
MoreInfo::GetFileVersion "$SYSDIR\drivers\sptd.sys"
Pop $1
${StrFilter} "$1" "1" "." "()" $0
MessageBox MB_USERICON|MB_YESNO 'Обнаружена установленная версия драйвера SPTD $0.$\n Хотите обновить драйвер до версии 1.83? $\n$\n (В конце установки ПК будет автоматически перезагружен.)' IDYES +2 IDNO
Abort
${If} ${RunningX64}
ExecWait '"$PLUGINSDIR\SPTD64.exe" add /q'
${Else}
ExecWait '"$PLUGINSDIR\SPTD86.exe" add /q'
${EndIf}
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" "Setup" '"$EXEPATH"'
SetOutPath "$TEMP"
File "D:\ystanovka\Alcohol 120\diakovreb.txt"
Quit
NotFiles:
${If} ${RunningX64}
ExecWait '"$PLUGINSDIR\SPTD64.exe" add /q'
${Else}
ExecWait '"$PLUGINSDIR\SPTD86.exe" add /q'
${EndIf}
WriteRegStr HKCU "SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" "Setup" '"$EXEPATH"'
SetOutPath "$TEMP"
File "D:\ystanovka\Alcohol 120\diakovreb.txt"
Quit
FunctionEnd
Function .onGUIEnd
BrandingURL::Unload
${If} ${FileExists} "$TEMP\diakovreb.txt"
MessageBox MB_ICONEXCLAMATION|MB_OK "После нажатия на кнопку ОК компьютер автоматически перезагрузится."
Delete "$TEMP\diakovreb.txt"
Reboot
${Else}
${EndIf}
FunctionEnd
Можна тупо написать автоитовский скрипт и сэмулировать нажатия на кнопки, но хочется средствами нсис... |
|
Отправлено: 16:35, 20-06-2013 | #407 |
|
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата diakov:
здесь винда, вот на помощь и идет апи.. завершить процесс можно и плагинами или читая наш справочный материал. зы. но внезапное прерывание не выгружает плагинов загруженные нсисом.. это я в скрипте вижу - BrandingURL |
|
|
------- Отправлено: 19:03, 20-06-2013 | #408 |
|
Старожил Сообщения: 176
|
Профиль | Отправить PM | Цитировать kotkovets, так какой выход посоветуете из ситуации?
|
|
Отправлено: 20:34, 20-06-2013 | #409 |
|
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать diakov,
как алкоголь 120% установку видели.. вот точно так можно.. что тут сложного.. в установку все перенести ps. или отдельно написать установку драйвера (на nsis) - кнопкой тупо запускать установщик ( в тихом режиме).. |
|
------- Последний раз редактировалось kotkovets, 20-06-2013 в 21:30. Отправлено: 21:17, 20-06-2013 | #410 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 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 | |
|