Показать полную графическую версию : SFX Creator 4 Alpha - создаём SFX архивы
Limonica
13-08-2012, 22:42
Добавляя:
SetOverwrite try
Функция защиты неработает.
Плюс пожелание, чтобы файл SelfDel.exe из папки Temp так же самоудалялся.
Limonica
15-08-2012, 12:11
В справке не описана функция "Добавить операцию в реестре", несовсем понятно нужно прописывать полный путь или же путь после корневого раздела, как ни пробывал жобавить неполучилось и если можете добавте туда запись типа REG_BINARY, очень нужно.
В справке не описана функция "Добавить операцию в реестре" »
Я не стал описывать, т.к. там в диалоге всё очень даже понятно, выбираете раздел (сделал так специально, чтобы пользователь не ошибился при вводе корневого раздела) и далее вводите в поле "Ветка" то, что идёт после корневого раздела, например Software\Microsoft\TEST
если можете добавте туда запись типа REG_BINARY, очень нужно »
Сделаем
Limonica
15-08-2012, 12:58
Приятно, что у программы, такая сильная поддержка. При одновременно включеных функциях "Выполнить приложение" и "Операция в реестре" сначало выполняется приложение и лишь после его закрытия добавляется запись в реестр, при этом необходимо сохранить включённой функцию "Ждать до конца выполнения", можно добавить например, опциональный параметр что бы операция в реестре выполнялась раньше запуска приложения? И можете ли реализовать в фукции "Выполнить приложение", выполнение приложения с параметром, очень нужная функция.
Приятно, что у программы, такая сильная поддержка. »
Приятно, что мой труд пользуется спросом ;)
можно добавить например, опциональный параметр что бы операция в реестре выполнялась раньше запуска приложения? »
На данном этапе программы этого сделать не могу, т.к. в программе, которая создаёт исходный код (где прописаны все ваши команды в виде языка программирования), идёт жесткая привязка к обработке секций, т.е. SFX Creator обрабатывает секции "возможностей" в таком порядке:
Файлы для упаковки
Создание ярлыков
Импорт REG-файлов
Выполнение приложений
Действия в реестре
Файловые операции
Регистрация DLL
Выполнение собственных NSIS функций
Да, честно сказать я об этом много раз думал, чтобы дать возможность пользователю "раскидать" приоритеты в выполнении функций, но пока что, это не первоочерёдная задача, нужно переписывать ccode.exe, чего делать, честно сказать, не охото, но, с другой стороны, эта фишка была бы полезной для SFX Creator в плане гибкости программы
---
И можете ли реализовать в фукции "Выполнить приложение", выполнение приложения с параметром, очень нужная функция. »
А вы не пробовали прям в том же поле, после расширения файла прописать параметры?
Limonica
15-08-2012, 14:01
А вы не пробовали прям в том же поле, после расширения файла прописать параметры? »
Пробывал, не выходит.
Пробывал, не выходит. »
А что за приложение? MSI пакет?
Просто синтаксис впринципе будет одинаковый, что я добвлю отдельное поле, или если останется так, как сейчас, в поле "Выполнить" вводите примерно так?
$TEMP\TEST.exe /test
Limonica
15-08-2012, 14:48
Нет это не MSI, обычный EXE исполняемый файл программы, по идее должен сначала установится в качестве службы, затем запустится в фоновом режиме, в итоге ни реагирует ни на первый ни на второй параметр, просто запускается как test.exe.
$ProgramFiles\test\test.exe /install
$ProgramFiles\test\test.exe /start
Можно ли добавить функцию, присвоения атрибутов файлам, по типу "Добавить файловую операцию"?
Limonica, попробуйте открыть тот же файл NSIS\Source.nsi (или в файлах NSIS\Include\K.A.V._PRE_Function.nsh и K.A.V._POST_Function.nsh), найдите строки с исполнением данного приложения, и поместите параметр за кавычку, заменя строки, примерно так:
ExecWait '"$ProgramFiles\test\test.exe" /silentinstall'
ExecWait '"$ProgramFiles\test\test.exe" /start'
После редактирования, для компиляции запустите NSIS\compile.bat
О результате отпишитесь
---
Можно ли добавить функцию, присвоения атрибутов файлам, по типу "Добавить файловую операцию"? »
Можно
Limonica
15-08-2012, 15:38
О результате отпишитесь »
Вот так всё работает, спасибо.
Вот так всё работает, спасибо. »
Значит в следующей версии будет добавлено поле специально для командной строки исполняемого файла
Limonica
15-08-2012, 19:14
А скоро будет обновление?
А скоро будет обновление? »
Выпускать обновления я буду лишь для устранения ошибок в программе
Насчет выхода новой версии ничего не могу сказать
О выходе новой версии и что стоит в планах на реализацию, я информирую только через свою домашнюю страничку, кому интересно, заходите смотрите...Как только будут собраны идеи на новую версию, я сразу же обновляю информацию на своём сайте
Limonica
15-08-2012, 23:06
Зарегистрироваться на Вашем форуме не вышло и пишу здесь, хотелось выполнить собственную функцию NSIS
1. Выполнить после распаковки файлов.
2. Всё довольно просто. Добавить в реестр четыре значения и запустить исполняемый файл последовательно с тремя разными параметрами.
Нужно ли приводить ключи реестра или же будет возможность их вписать самостоятельно?
P.S. На форуме ругается на email
Введённый домен email не имеет корректной почтовой записи в DNS (MX record).
P.S. На форуме ругается на email »
Спасибо, исправил
Нужно ли приводить ключи реестра или же будет возможность их вписать самостоятельно? »
Смотря какие вам типы параметров нужно прописать, во вложении пример функции с записью в реестр и выполнением приложений (там комментарии читайте)
Разделы реестра указывайте такие:
HKCR или HKEY_CLASSES_ROOT
HKLM или HKEY_LOCAL_MACHINE
HKCU или HKEY_CURRENT_USER
HKU или HKEY_USERS
HKCC или HKEY_CURRENT_CONFIG
Инструкция по подключению выполнения своей функции
1. Распакуйте из архива файл MyFunc.nsh в папку \NSIS\Include\custom
2. Редактируете файл и сохраняете
3. Дополнительные возможности => Выполнить собственные функции
4. В поле Include файл вводите MyFunc.nsh
5. В поле Функция вводите MyFuncEx
6. Выбираете Выполнить после распаковки файлов
7. Добавить
Limonica
16-08-2012, 00:48
Информацию в реестр добавляет вопросов нет, но выполнение приложений, снова, происходит без учёта параметров, как есть. Пробывала и такой, и такой вариант:
ExecWait '"$ProgramFiles\test\test.exe" /test'
ExecWait "$ProgramFiles\test\test.exe /test"
Результат тот же. Что делать?
P.S. Совсем забыла, подскажите как будет выглядеть строчка добавления атрибута файлу?
выполнение приложений, снова, происходит без учёта параметров »
Возможно проблема именно в приложении...
Потому как:
ExecWait '"$ProgramFiles\test\test.exe" /test'
Должно срабатывать
как будет выглядеть строчка добавления атрибута файлу? »
SetFileAttributes "$WINDIR\Explorer.exe" READONLY|HIDDEN|SYSTEM
Значения аттрибутов указывайте такие:
NORMAL
ARCHIVE
HIDDEN
READONLY
SYSTEM
Limonica
16-08-2012, 10:49
Доброе утро, хочу выполнить собственную функцию NSIS, по типу (проверяет есть ли файл в заданной директории и в зависимости от результата делает переход на обозначенную константу). Неоходимо выполнить до распаковки файлов. Пример на BAT:
if exist "%ProgramFiles%\test\test.exe" (goto ex) else (goto in)
:in
install
:ex
exit
IfFileExists "$exedir\Отчёт.log" 0 NoFile
; Файл есть, выполняем код
NoFile:
; Файла НЕТ
Limonica
16-08-2012, 12:02
Спасибо, это работает, но только после распаковки файлов. Поскольку секции чётко зафиксированы, придумалось решение, дописать скрипт, поэтому снова нужна Ваша помощь, а именно:
Скрипт распаковки файлов в определённую директорию
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC