SFX Creator 4 Alpha - создаём SFX архивы

Ответить
 • Просмотры: 19
Аватара пользователя
Ka3hak

Re: SFX Creator 4 Alpha - создаём SFX архивы

Сообщение Ka3hak »

Цитата K.A.V.:



А с корня диска пробовали?
SFX Creator 4 Alpha - создаём SFX архивы




Да


Цитата K.A.V.:



Кстати, у вас ОС не х64 случайно?
SFX Creator 4 Alpha - создаём SFX архивы




Нет



Спасибо, пока оставим, как есть.
Аватара пользователя
K.A.V.

Re: SFX Creator 4 Alpha - создаём SFX архивы

Сообщение K.A.V. »

K.A.V., добрый день... Долго думал, стоит ли баламутить тему... Никто не пишет, видимо, все работает у них... А у меня все не так... Ну это лирика. Теперь по делу. Скачал программу по новой, установил. Делаю простенький пакет: батник и текстовый файл. Батник содержит команду на удаление текстового файла, а затем. - пауза. Создаю четыре пакета, в которых выбраны четыре возможных варианта запуска приложений, задаваемые режимом: Скрыть окно (Не скрывать), Не ждать завершения (ждать).

Три варианта, когда: 1 Не выбрано ничего, 2 выбран верх, 3 выбран низ, - пакет распаковывается, запускается батник, текстовый файл удаляется.

При четвертом же варианте настроек : выбран верх и низ, т.е. Скрыть окно и не ждать завершения команды, команда не проходит - батник не запускается, файл не удаляется, хотя распаковка есть.



Вот исходник этого варианта:



Function .onInit

Var /Global CommandLine

!insertmacro GetParametersCall $CommandLine

${GetTime} "" "L" $Day $Month $Year $WeekDay $Hour $Minute $Seconds

StrCpy $TMPDIR "$TEMP\sfxcreator_$Minute$Hour$Seconds"

CreateDirectory "$TMPDIR"

call PRE_Function

SetOverWrite on

SetOutPath "$INSTDIR"

File "D:\SFX_Creator\Avira.txt"

SetOverWrite on

SetOutPath "$INSTDIR"

File "D:\SFX_Creator\CMDs.cmd"

ExecDos::exec /NOUNLOAD /ASYNC /DETAILED '"$INSTDIR\CMDs.cmd" ' "" ""

call POST_Function

RMDir /r /REBOOTOK "$TMPDIR"

quit

FunctionEnd



Наличие процессов контролировались следящими программами. Win XP/32.

Пишу это к сведению, срочности нет...
Аватара пользователя
Limonica

Re: SFX Creator 4 Alpha - создаём SFX архивы

Сообщение Limonica »

KAV как сделать так, чтоб процесс распаковщика принудительно прекращался, не проверяя выполнился процесс или нет?
Аватара пользователя
Limonica

Re: SFX Creator 4 Alpha - создаём SFX архивы

Сообщение Limonica »

Salmo, здравствуйте Изображение


Цитата Salmo:



батник не запускается, файл не удаляется
SFX Creator 4 Alpha - создаём SFX архивы




Батник как раз и запускается, но файл не удаляется по простой причине, сейчас объясню:



Всё дело в том, что при запуске BAT файла у него есть такое понятие как "текущая директория", а она имеет путь директории, откуда был запущен инсталлятор...

Т.е. вам сначала нужно использовать команду "cd" в батнике для смены текущей директории окружения, а затем только удалять файл (если не прописываете полный путь)



Как вариант я вам могу посоветовать распаковку батника в директорию $TEMP (указывайте в проекте), а в самом BAT файле изменяйте текущую дерикторию командой:



Код:

Код: Выделить всё

cd %TEMP%

И вообще, зачем такие извращения, для удаления файла??

Есть же в SFX Creator "Дополнительные возможности => Добавить файловую операцию"





---




Цитата wakeup.wakeup:



Добрый день K.A.V.!
SFX Creator 4 Alpha - создаём SFX архивы




Здравствуйте Изображение


Цитата wakeup.wakeup:



Возможно ли реализовать в "SFX Creator" раздел диалогового окна наподобие этого?
SFX Creator 4 Alpha - создаём SFX архивы




На данный момент такой возможности нет, и вряд ли будет в ближайшее время, т.к. там очень много ньюнсов

Создать такую страничку можно самому, но тогда придётся перед каждой компиляцией проекта вносить изменения в исходный код вашего проекта уже на языке NSIS

Я мог бы вам помочь, но в данное время у меня очень мало личного времени
Аватара пользователя
K.A.V.

Re: SFX Creator 4 Alpha - создаём SFX архивы

Сообщение K.A.V. »

Цитата K.A.V.:



И вообще, зачем такие извращения, для удаления файла??
SFX Creator 4 Alpha - создаём SFX архивы




Удаление файла только для визуального контроля запуска батника.

Скажите, пожалуйста, подразумевает ли выбор пункта "С скрытием окна", что запущенный процесс CMD не будет виден среди других процессов в диспетчере задач?

Если забыть про удаление файла, то все, что я хотел сказать, заключается во фразе: "Батник НЕ запускается, когда выбраны пункты Скрытие Окна и Не ждать окончания..." Как я написал, в батнике прописана команда PAUSE и процесс CMD должен висеть в диспетчере задач, что и происходит при других настройках, когда эти пункты не выбраны оба одновременно... Когда они выбраны оба, запуск НЕ происходит. Могу допустить, что это происходит только у меня, тогда, нет смысла мне больше об этом писать. Изображение
Цитата K.A.V.:



Тестируем программку и не стесняемся задавать вопросы
SFX Creator 4 Alpha - создаём SFX архивы




Еще раз спасибо за труд...
Аватара пользователя
Limonica

Re: SFX Creator 4 Alpha - создаём SFX архивы

Сообщение Limonica »

Цитата Salmo:



Скажите, пожалуйста, подразумевает ли выбор пункта "С скрытием окна", что запущенный процесс CMD не будет виден среди других процессов в диспетчере задач?
SFX Creator 4 Alpha - создаём SFX архивы




Нет...

В данном случае "скрытие" - это всего лишь скрытие окна командной строки, не более




Цитата Salmo:



Когда они выбраны оба, запуск НЕ происходит
SFX Creator 4 Alpha - создаём SFX архивы




Обновитесь через встроенную в SFX Creator программу обновления (через меню), ошибка должна исправиться
Аватара пользователя
K.A.V.

Re: SFX Creator 4 Alpha - создаём SFX архивы

Сообщение K.A.V. »

Limonica, возможность выполнения собственных NSIS функций создана для выполнения функций только до или после распаковки файлов, так что данная "Дополнительная возможность" вряд-ли будет доступна для управления ею в "Порядке выполнения команд"



При добавлении выполнения своей функции выбирайте переключателем, когда выполнить...
Аватара пользователя
Limonica

Re: SFX Creator 4 Alpha - создаём SFX архивы

Сообщение Limonica »

Цитата K.A.V.:



Обновитесь через встроенную в SFX Creator программу обновления (через меню), ошибка должна исправиться
SFX Creator 4 Alpha - создаём SFX архивы




Сделал, но...увы. Далее, без особой цели, не меняя настройки, добавил в пакет еще VBSскриптик и дополнительную команду на Shell-запуск и... стала выполнятся и команда запуска батника, правда, через раз. Что изменилось? - очевидно, время жизни процесса...

Тогда решил запускать свой батник (без дополнительных файлов и команд) с параметром /TIMEOUT=, чтобы определить, сколько нужно дополнительного времени процессу, чтобы нормально подгрузить библиотеку и выполнить функции. Оказалось, что, в моем случае, ~100 миллисекунд:

..............................

SetOutPath "$INSTDIR"

File "D:\SFX_Creator\CMDs.cmd"

SetOverWrite on

SetOutPath "$INSTDIR"

File "D:\SFX_Creator\Avira.txt"

ExecDos::exec /TIMEOUT=100 '"$INSTDIR\CMDs.cmd" ' "" ""

call POST_Function

RMDir /r /REBOOTOK "$TMPDIR"

quit

FunctionEnd



И, добавив в свой примитивный скрипт задержку на 100 миллисекунд, получил стабильный запуск батника со скрытием окна, без ожидания конца процесса...:

.............................

SetOverWrite on

SetOutPath "$INSTDIR"

File "D:\SFX_Creator\CMDs.cmd"

ExecDos::exec /NOUNLOAD /ASYNC '"$INSTDIR\CMDs.cmd" ' "" ""

Sleep 100

call POST_Function

RMDir /r /REBOOTOK "$TMPDIR"

quit

FunctionEnd
Аватара пользователя
K.A.V.

Re: SFX Creator 4 Alpha - создаём SFX архивы

Сообщение K.A.V. »

Уважаемый К.А.В. А можно в Вашу замечательную программу добавить проверку наличия прав Администратора?
Аватара пользователя
K.A.V.

Re: SFX Creator 4 Alpha - создаём SFX архивы

Сообщение K.A.V. »

Salmo, значит потом добавим эту паузу в 400 мс, на всякий случай)




Цитата Salmo:



А можно в Вашу замечательную программу добавить проверку наличия прав Администратора?
SFX Creator 4 Alpha - создаём SFX архивы




Буквально страничку назад пролистайте, было такое пожелание...Позже добавим
Ответить

Вернуться в «Автоматическая установка приложений»