|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 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 |
|
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
Цитата K.A.V.:
значит не судьба Vincent7 ![]() |
||
|
------- Отправлено: 22:45, 01-12-2013 | #821 |
|
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать section "f" ExecDos::exec /NOUNLOAD /ASYNC /DETAILED '"$SYSDIR\cmd.exe" /c $EXEDIR\sisInstall.exe extractAll I:\sku.sis D:\h' sleep 3000 FindWindow $0 "ConsoleWindowClass" "$SYSDIR\cmd.exe" IsWindow $0 +2 0 MessageBox MB_OK|MB_ICONSTOP "not found" idok System::Call 'user32::GetWindowThreadProcessId(ir0, *l.r0)' System::Call 'kernel32::AttachConsole(ir0)i.r0' System::Call 'kernel32::GetStdHandle(i -11)i.r0' FileWrite $0 "Test" sectionend |
|
Отправлено: 01:13, 02-12-2013 | #822 |
|
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Vincent7:
это с какого такого такого такого...оно должно там появиться, если вы отправляете текст в консоль, а не напрямую в NSIS элемент?Вы хотите что сделать, чтобы запустить консоль, отправить туда текст, а потом чтобы ваше консольное приложение его прочитало и отобразило в NSIS окне? Пожалуй, я воздержусь в дальнейшем от ответов на ваши сообщения, сидите тут пудрите нам мозги откровенно говоря, нет чтобы четко и ясно разъснить, что вы хотите сделать Цитата Vincent7:
![]() |
||
|
------- Отправлено: 01:31, 02-12-2013 | #823 |
|
Пользователь Сообщения: 96
|
Профиль | Отправить PM | Цитировать плагин execDos с параметром /DETAILED отправляет содержимое командной сроки окну установщика
|
|
Отправлено: 01:41, 02-12-2013 | #824 |
|
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Vincent7, скажу просто: не тупите!
а то цирк уехал, а клоуны остались.. |
|
------- Отправлено: 02:18, 02-12-2013 | #825 |
|
Ветеран Сообщения: 2398
|
Профиль | Отправить PM | Цитировать Вызов диалогового окна выбора файлов
Пример для '*.nsi;*.nsh' Caption "Диалоговоое окно выбора файлов"
OutFile "OpenFile_Test.exe"
SilentInstall silent
!define OFN_READONLY 0x00000001
!define OFN_OVERWRITEPROMPT 0x00000002
!define OFN_HIDEREADONLY 0x00000004
!define OFN_NOCHANGEDIR 0x00000008
!define OFN_SHOWHELP 0x00000010
!define OFN_ENABLEHOOK 0x00000020
!define OFN_ENABLETEMPLATE 0x00000040
!define OFN_ENABLETEMPLATEHANDLE 0x00000080
!define OFN_NOVALIDATE 0x00000100
!define OFN_ALLOWMULTISELECT 0x00000200
!define OFN_EXTENSIONDIFFERENT 0x00000400
!define OFN_PATHMUSTEXIST 0x00000800
!define OFN_FILEMUSTEXIST 0x00001000
!define OFN_CREATEPROMPT 0x00002000
!define OFN_SHAREAWARE 0x00004000
!define OFN_NOREADONLYRETURN 0x00008000
!define OFN_NOTESTFILECREATE 0x00010000
!define OFN_NONETWORKBUTTON 0x00020000
!define OFN_NOLONGNAMES 0x00040000
#if(WINVER >= 0x0400)
!define OFN_EXPLORER 0x00080000 ; new look commdlg
!define OFN_NODEREFERENCELINKS 0x00100000
!define OFN_LONGNAMES 0x00200000
!define OFN_ENABLEINCLUDENOTIFY 0x00400000
!define OFN_ENABLESIZING 0x00800000
#endif /* WINVER >= 0x0400 */
#if (_WIN32_WINNT >= 0x0500)
!define OFN_DONTADDTORECENT 0x02000000
!define OFN_FORCESHOWHIDDEN 0x10000000
#endif // (_WIN32_WINNT >= 0x0500)
!define OPENFILENAME "(i,i,i,i,i,i,i,i,i,i,i,t,t,i,i,i,t,i,i,t,*v,i,i) i"
Section
Push `${OFN_ALLOWMULTISELECT}|${OFN_EXPLORER}` ;Flags
Push `Откройте файл` ;lpstrTitle
System::Call "*(&t1024) i .r1" ;lpstrFile
System::Call "*(&t25 'NSIS файл (*.nsi, *.nsh)', &t12 '*.nsi;*.nsh', &t9 'Все файлы', &t5 '*.*') i .r2" ;lpstrFilter
System::Call "Kernel32::GetModuleHandle(i) i.s" ;hInstance
Push $HWNDPARENT ;hwndOwner
System::Call "*${OPENFILENAME}(76,s,s,r2,,,0,r1,1024,,,,s,s,_) i.r0"
System::Call "Comdlg32::GetOpenFileName(i r0) i.r3"
StrCmp $3 0 0 +3
MessageBox MB_ICONINFORMATION|MB_OK " Вы не выбрали файл !"
Goto done
System::Call "*$1(&t1024 .r3)"
System::Call "*$0${OPENFILENAME}(,,,,,,,,,,,,,,.r4,_)"
IntOp $4 $4 - 1
StrLen $5 $3
StrCmp $4 $5 +3
MessageBox MB_ICONINFORMATION|MB_OK "Вы выбрали файл: $3"
Goto done
MessageBox MB_ICONINFORMATION|MB_OK "Вы выбрали в каталоге $3 , следующие файлы :"
StrCpy $5 $1
loop:
StrLen $4 $3
IntOp $5 $5 + $4
IntOp $5 $5 + 1
System::Call "*$5(&t1024 .r3)"
StrCmp $3 "" done
MessageBox MB_ICONINFORMATION|MB_OK "$3" ;Цикл для имен выбранных файлов
Goto loop
done:
System::Free $0
System::Free $1
System::Free $2
SectionEnd
|
|
Отправлено: 16:12, 06-12-2013 | #826 |
|
Ленивый кусок мяса Сообщения: 1986
|
Профиль | Сайт | Отправить PM | Цитировать Цитата MKN:
Есть замечательные плагины типа Dialogs plug-in, которые позволяют сократить количество строк в коде до пары (1 строка вызов команды + ваш остальной код) Неужели вас страшит лишние пары десятков Кб из-за добавления DLL плагина в пакет? ![]() Я, конечно, понимаю, что WinAPI это хорошо, но мне кажется только тогда - когда это необходимо и нечем заменить нужный функционал А использовать тонны кода для простеньких задач это как-то не айс, тем более кто лично в этой теме реально понимает, что ты написал? Ты, я, Вячеслав и ещё возможно пара человек, которые реально хотят кодить на NSIS и которые полностью прочитали наш справочник, включая описание System.dll и сидящие на MSDN для изучения WinAPI функций, есть вообще такие здесь? Я, честно признаюсь, раньше не использовал System.dll по одной простой причине - сложно было понять англ.доки по нему и читал описание данного плага из нашего же справочника , благодаря переводу Вячеслава я совсем недавно уже начал иногда применять system.dll в своём же "креаторе", мне раньше было проще написать dll, сейчас уже практически всё наоборотТы бы лучше взял и оформил все свои примеры, которые здесь выкладываешь, в стиле нашего справочника, редактить html не так уж и сложно через визуальные редакторы, я , к примеру использую лёгкий NVU - вполне сходит для создания и оформления лёгких страничек для справочников ![]() |
|
|
------- Отправлено: 16:36, 06-12-2013 | #827 |
|
Ветеран Сообщения: 2398
|
Профиль | Отправить PM | Цитировать Цитата K.A.V.:
Более совершенный чем тот же Dialogs plug, который конечно хорош, но лишён гибкости, в отличии от вышеприведённого кода. Я тоже не люблю жирных кодов и без нужды не использую. Но любой такой жиряга - это и есть внутренности плагинов и хедеров, которыми все с удовольствием пользуются, потому что этот жиропродукт в итоге позволяет обойтись парой строк кода... ![]() Цитата K.A.V.:
|
||
|
Последний раз редактировалось MKN, 06-12-2013 в 17:14. Отправлено: 16:58, 06-12-2013 | #828 |
|
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Скажите, можно ли через NSIS сделать выбор типа/режим установки, ПЕРЕД выбором компонентов
![]() чтобы при выборе одного из режимов у него был свой независимый набор файлов / секций / свои настройки деинсталлятора / иконок можно ли это сделать стандартными средствами (пока не удалось найти как)?, если да/нет то в какую хоть сторону копать? |
|
Отправлено: 11:10, 07-12-2013 | #829 |
|
Ветеран Сообщения: 1216
|
Профиль | Отправить PM | Цитировать Цитата areafix:
2. » Логические конструкции в скриптах NSIS в справочнике 3. » Создание своего инсталлятора на NSIS. Секции и выбор компонентов 4. » Читаем про свойства флагов секций: скрытие, переименование, отметки изменяем флаги (свойства секций) в зависимости от отметки радиобутонов естественно все это делаем до показа странички компонентов. |
|
|
------- Отправлено: 12:04, 07-12-2013 | #830 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Инфо - [ликбез] Помощь начинающим .:[все вопросы]:. часть 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 | |
|