Показать полную графическую версию : SFX Creator 4 Alpha - создаём SFX архивы
А с корня диска пробовали? »
Да
Кстати, у вас ОС не х64 случайно? »
Нет
Спасибо, пока оставим, как есть.
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.
Пишу это к сведению, срочности нет...
wakeup.wakeup
29-09-2012, 16:19
Добрый день K.A.V.!
Возможно ли реализовать в "SFX Creator" раздел диалогового окна наподобие этого? Был бы очень признателен если бы вы мне помогли.
Salmo, здравствуйте :)
батник не запускается, файл не удаляется »
Батник как раз и запускается, но файл не удаляется по простой причине, сейчас объясню:
Всё дело в том, что при запуске BAT файла у него есть такое понятие как "текущая директория", а она имеет путь директории, откуда был запущен инсталлятор...
Т.е. вам сначала нужно использовать команду "cd" в батнике для смены текущей директории окружения, а затем только удалять файл (если не прописываете полный путь)
Как вариант я вам могу посоветовать распаковку батника в директорию $TEMP (указывайте в проекте), а в самом BAT файле изменяйте текущую дерикторию командой:
cd %TEMP%
И вообще, зачем такие извращения, для удаления файла??
Есть же в SFX Creator "Дополнительные возможности => Добавить файловую операцию"
---
Добрый день K.A.V.! »
Здравствуйте :)
Возможно ли реализовать в "SFX Creator" раздел диалогового окна наподобие этого? »
На данный момент такой возможности нет, и вряд ли будет в ближайшее время, т.к. там очень много ньюнсов
Создать такую страничку можно самому, но тогда придётся перед каждой компиляцией проекта вносить изменения в исходный код вашего проекта уже на языке NSIS
Я мог бы вам помочь, но в данное время у меня очень мало личного времени
И вообще, зачем такие извращения, для удаления файла?? »
Удаление файла только для визуального контроля запуска батника.
Скажите, пожалуйста, подразумевает ли выбор пункта "С скрытием окна", что запущенный процесс CMD не будет виден среди других процессов в диспетчере задач?
Если забыть про удаление файла, то все, что я хотел сказать, заключается во фразе: "Батник НЕ запускается, когда выбраны пункты Скрытие Окна и Не ждать окончания..." Как я написал, в батнике прописана команда PAUSE и процесс CMD должен висеть в диспетчере задач, что и происходит при других настройках, когда эти пункты не выбраны оба одновременно... Когда они выбраны оба, запуск НЕ происходит. Могу допустить, что это происходит только у меня, тогда, нет смысла мне больше об этом писать. :) Тестируем программку и не стесняемся задавать вопросы »
Еще раз спасибо за труд...
Скажите, пожалуйста, подразумевает ли выбор пункта "С скрытием окна", что запущенный процесс CMD не будет виден среди других процессов в диспетчере задач? »
Нет...
В данном случае "скрытие" - это всего лишь скрытие окна командной строки, не более
Когда они выбраны оба, запуск НЕ происходит »
Обновитесь через встроенную в SFX Creator программу обновления (через меню), ошибка должна исправиться
Timofejj
30-09-2012, 15:31
K.A.V.
Премного благодарен за столь полезную программу. А тут как-то WinRar примитивен к 7-sfx привыкнуть не могу (крут, но есть куча недостатков). Inno Setup понравилась (шедевры творить можно), NSIS как-то не очень. До остальных руки ещё не дошли (перечисленных с головой хватает). Ещё раз благодарю за труд!
Обновитесь через встроенную в SFX Creator программу обновления (через меню), ошибка должна исправиться »
Сделал, но...увы. Далее, без особой цели, не меняя настройки, добавил в пакет еще 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
Уважаемый К.А.В. А можно в Вашу замечательную программу добавить проверку наличия прав Администратора?
Salmo, значит потом добавим эту паузу в 400 мс, на всякий случай)
А можно в Вашу замечательную программу добавить проверку наличия прав Администратора? »
Буквально страничку назад пролистайте, было такое пожелание...Позже добавим
Limonica
08-10-2012, 12:44
Срочно нужна помощь, нужен скрипт проверяющий архитектуру системы и в зависимости от неё выполнял действия, пример:
проверка архитектуры:
x86=x86 inst
x64=x64 inst
x86 inst:
...
...
....
x64 inst:
....
....
...
...
всё конечно хорошо, только я даже не могу поставить программу.
у меня увеличенные шрифты. окно установки обрезано.
Marfeika2012
09-10-2012, 13:22
Привет всем. Народ подскажите пожалуйста как в SFX Creator сделать так чтобы упакованный в обычный rar или zip архив файл exe который скомпливировала эта программа автоматически удалялся или удалялся бы сам архив вместе с содержимом. Тоесть открываешь winrar архив нажимаешь два раза на исполняемый файл после чего у меня архив закрывается(в настройках программы нашел) но не удаляется хоть и стоит галочка на самоудаление.
Limonica
09-10-2012, 15:08
Функция защиты от распаковки снова не работает при включённой фукции самоудаления.
Marfeika2012
09-10-2012, 19:12
Народ это снова я. Не подскажите как можно сделать самоудаление архива sfx который упакован в winrar.
Или же как расспаковать файл туда же где находится сам файл exe который скомпливирвала данная программа.
Marfeika2012, Я вижу спецы молчат...
Если я вас правильно понял, вы запускаете файл sfx.exe прямо в окне архиватора без предварительного извлечения из архива winrar? В этом случае, упакованный sfx.exe извлекается архиватором во временную папку %TEMP% и запускается в ней. При этом, функция самоудаления, заданная при компиляции sfx архива, будет выполнятся относительно файла sfx.exe, который находится во временной папке. Чтобы удалить архив winrar (с файлом sfx.exe) надо sfx.exe перед запуском извлечь из архива winrar (а не запускать в окне архиватора) в папку с архивом winrar и, после закрытия окна архиватора, запустить. Предварительно, до компиляции в SFX Creator, надо задать функцию самоудаления sfx.exe и файловую операцию по удалению архива winrar с переменной пути $EXEDIR. Добавлю, что функция самоудаления на моих машинах с ХР и Win7 не сработала, что может произойти и у других пользователей. Я же использую для самоудаления простой VBS скрипт, который создаю через "Выполнить собственные функции" и запускаю через Shell при распаковке sfx.exe, - не так красиво, но надежно...
как расспаковать файл туда же где находится сам файл exe который скомпливирвала данная программа. »
Задать в SFX Creator директорию установки $EXEDIR, а для файлов, входящих в архив, $INSTDIR
Marfeika2012
10-10-2012, 17:35
а нет ли команды для того чтобы удалить rar архив после запуска exe файла. Или же как в WINRAR SFX там если пути не указывать то он расспаковывает в текущую папку.
Можно было бы расспаковать батник со строками удаления и все.
Подскажите пожалуйста.
а нет ли команды для того чтобы удалить rar архив после запуска exe файла »
Я же написал вам выше, что нужно в SFX Creator в поле "Дополнительные возможности" выбрать "файловая операция" и, в открывшемся окне, создать команду на удаление вашего rar архива (в поле "выбрать действие" выберите "удалить файл", а в поле "объект" впишите $EXEDIR\ваш_rar_архив). Если вы извлечете содержимое (sfx.exe) rar архива в текущую папку и запустите sfx.exe после закрытия окна архиватора, архив rar будет удален и будет удален sfx.exe, если вы зададите самоудаление. Вариант с батником это "огород", т.к. все можно осуществить функционалом SFX Creator...
Marfeika2012
10-10-2012, 23:07
Спасибо огромное. Очень сильно помогли. Спасибо.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC