Показать полную графическую версию : [архив].: NSIS - все вопросы :.
XCV, я привёл вам код, но его не тестировал, нет, он конечно работает, когда "вытаскивает" лог из текущей установки, а когда данный код используется для "вытаскивания" из другого окна инсталлера - почему-то не работает... :(
Хотя я проверял, дескрипторы окон одинаковые (когда вызывается вытаскивающий EXE и тот, в котором хранится лог), в чем проблема я не разбирался...да ведь и не особо нужно... ;)
да ведь и не особо нужно »
ну мне эт очень нужно, я перепаковываю инсталяторы (к примеру для добавления возможности тихой установки, или выбрасывания лишнего, или наоборот добавления компонентов.....), и многие собраны в нсис, и вместо того чтобы долго сидеть разбираться что куда надо кинуть, что зарегить, что дополнительно установить и т.д., намного проще было бы взять лог и исходя из него писать свой скрипт... Но видать не судьба, прийдется самому разбираться с каждой прогой в отдельности... хорошо в этом плане с инновскими инсталяторами, с них можно вырвать часть основную скрипта, жаль в нсис этого не сделать...
ещё один вопрос господа профессионалы, в нсис скрипте команда Exec "files.exe" запускает какой либо процесс, как сделать чтобы инсталятор дождался конца выполнения этого процесса и только после этого продолжил свою работу?
ЗЫ: ExecWait "files.exe" тоже не ждет окончания работы запущенного процесса :(
Вообще ExecWait должен ждать...Посмотрите, PID процесса не меняется? Может запускаемый файл сам себя перезапускает :dont-know
Вообще ExecWait должен ждать...Посмотрите, PID процесса не меняется? »
да действительно, файл перезапускает себя, с этим можно бороться? (тоесть заставить нсис ждать окончания второго процесса)
проблемму эту обошел, но все равно интересно на будущее
с этим можно бороться? »
Средствами только NSIS маловероятно...
Я бы сделал примерно следующее: написал бы DLL, которая получает список процессов, запущенных в данный момент, и, если полный путь процесса совпадает с файлом, который мы запускали, снова определяем запущенные процессы...когда процесс завершит свою работу, продолжаем... :)
написал бы DLL »
не, для меня это слишком....
не, для меня это слишком.... »
Ну тогда, например, можно искать запущенный процесс только по образу (если вы уверены в уникальности имени процесса :) ), а не по полному пути (например notepad.exe), наличие процесса может определить плагин Processes plug-in (http://nsis.sourceforge.net/Processes_plug-in)
наличие процесса может определить плагин Processes plug-in »
во, эт самое то...
Есть исходник библиотеки, нужно dll пересобрать как плагин для nsis.
Кто сталкивался, знает как и что нужно делать?
andreyl, там добавляется буквально 1 "h" файл, и вызывается функция (для инициализации с NSIS), ну ещё и заголовок функции меняется, ну и ещё 2 функции для передачи параметров из NSIS скрипта и получение данных из DLL :)
Пример пустой функции в прикреплённом архиве
В dllmain.c
#include "exdll.h"
Нужный файл :)
EXDLL_INIT();
Инициализация, без этой функции вы не сможете принимать/отдавать параметры
popstring(tmp);
Получаем данные из NSIS скрипта
pushstring(tmp);
Отправляем данные в NSIS скрипт
Переменная tmp должна быть типа Char
Всем привет раскажите про NSIS можно ли спомощью него перепокавать любую прогу и как? У меня есть пару програм которые просто не хотят устанавливатся с помошью обычных ключей. И плиз скажите как правельно покавать в SFX архивы. Заранеее спасибо.
Habetdin
23-02-2010, 00:17
tiylar, NSIS [...] как? »
Создание своего инсталлятора на NSIS. Первые шаги (http://winreview.ru/news.php?extend.33.11)
Ссылки на остальные уроки - в шапке ;)
SFX »
Создание SFX-архива (http://www.oszone.net/3171), SFX Creator - для создания SFX архивов (http://forum.oszone.net/thread-151756.html)
Добрый вечер/день. Подскажите почему после компиляции иконка у скомпилированного файла не меняется(размер больше 1Gb) на указанную.
Проблема известна и это проблема Windows. На больших SFX архивах или любых .exe файлах иконка "из файла" не отображается. Решения проблемы нет. »
Может из-за этого? А вообще, я не в курсе...ибо инсталляторы вообще не пишу :)
Да именно так и есть из-за ограничения размера выполняемого файла иконка не отображается. Да я тоже не писАл инсталляторы, но вот пришлось, после, приблизительно, месяца я избавил себя от кучи проблем и беготни.
CyberMaster
02-03-2010, 14:18
Подскажите пожалуйста, можно ли добавить в инсталлятор сразу все файлы и подпапки из директории pkgdir? (я имею ввиду одной командой, а не прописывать в скрипте каждый файл, который нужно включить в инсталлятор) и чтоб при распаковке инсталлятора, была сохранена структура папок, как в папке pkgdir?
CyberMaster
SetOutPath "Куда распаковать файлы"
File "Папка для упаковки\*.*"
CyberMaster
02-03-2010, 22:42
K.A.V., да эт понятно :) вот только если папок штук 150 очень надоест прописывать пускай не каждый файл, но каждую папку. Поэтому я спрашивал можно ли добавить в инсталлятор сразу все файлы и подпапки из директории pkgdir?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC