Показать полную графическую версию : SFX Creator 4 Alpha - создаём SFX архивы
Доброго времени, хочу создать простенький патч основанный на замене файлов и удалении лишнего. Как заменять и удалить файлы разобрался, а вот как удалить лишние папки со всем содержимым никак. В инструкции сказано http://img.ii4.ru/thumbs/2015/01/06/560958_kiss_25kb.jpg (http://img.ii4.ru/images/2015/01/06/560958_kiss_25kb.jpg) , но что то не получается. Подскажите пожалуйста.
как удалить лишние папки со всем содержимым »
Был подобный вопрос на оф.форуме, ответ процитирую оттуда:
Команда на удаление каталога сделана так, что нельзя удалить одной командой всю директорию со всеми файлами, сделал это я прежде всего для безопасности пользователей программы, т.к. при указании, скажем, по ошибке системной директории или директории рабочего стола - будут удалены все файлы
Если вам необходимо удалить каталог, сначала пропишите удаление всех файлов в этом каталоге, указав маску всех файлов, пример:
http://s012.radikal.ru/i319/1410/e5/b1dbde228d07t.jpg (http://radikal.ru/fp/f84a53cde42048858cf0a1b3a3e82bdc)
K.A.V., спасибо, ну вроди бы понял, сначала проделываем замену, потом удаляем все из папки которую надо удалять, а потом и саму папку. Еще такой вопрос, прошу прощения за наглость, в моем случае правильно ли указана директория http://img.ii4.ru/thumbs/2015/01/06/561005_kiss_114kb.jpg (http://img.ii4.ru/images/2015/01/06/561005_kiss_114kb.jpg) У меня все файлы и папки находятся в одном месте.
в моем случае правильно ли указана директория »
В главном окне SFX Creator в поле "Директория установки" у вас не правильно указано. Файл справки открывали? Рекомендую это сделать ;)
После запуска SFX архива значение переменной $INSTDIR будет равно тому, что указано в этом поле, в файле справке об этом сказано (может, не очень понятно?)
В это поле вам следует указывать либо полный путь (C:\Program Files\bla\bla 2\bla 3) либо путь с системной переменной ($ProgramFiles\bla\bla 2\bla 3), но учтите, если вы будете указывать абсолютный путь без переменных (с буквой диска) - ваш SFX архив не будет универсальным для всех систем, т.к. буква системного тома у пользователей может отличаться.
При указании в это поле, например, $ProgramFiles\bla\bla 2\bla 3, переменная $INSTDIR примет абсолютный путь к папке "Program Files" у пользователя + добавится весь остальной указанный вами путь с папками "\bla\bla 2\bla 3"
K.A.V., спасибо что не оставили без внимания мои вопросы , но увы SFX Creator не подойдет для моей задачи. В папке которую надо удалить, находятся файлы и они будут разными у разных пользователей, то есть будут разные имена, таким образом просто не возможно указать какие именно файлы надо удалить, а вот имя папки как раз у всех одинаковое. Программа довольно простая и почти понятная, но увы ...а жаль
По поводу переменных, вчера я просто пробовал и экспериментировал с заменой, все менялось как надо, директорию выставлял так http://img.ii4.ru/thumbs/2015/01/06/561021_kiss_70kb.jpg (http://img.ii4.ru/images/2015/01/06/561021_kiss_70kb.jpg)
С удалением все работает, но только с файлами, а не с папками. Все пропало, все пропало..... :))))
находятся файлы и они будут разными у разных пользователей, то есть будут разные имена, таким образом просто не возможно указать какие именно файлы надо удалить, а вот имя папки как раз у всех одинаковое. »
Так я же вам показал скрин изображения, как команды прописать и что нужно указывать маску файлов, в файле справки да, нет информации, что можно указывать маску файлов, но замечание про маску есть над текстовой строкой в диалоге:
Объект (для копирования и удаления возможно указывать маску)
Т.е. не обязательно знать точное имя файлов, если вам нужно произвести массовое удаление файлов, вы можете так же удалить файлы только определённого типа, указав соответствующее расширение имени файлов
Например, при создании команды удаления файлов с путём:
$DESKTOP\*.rar
ваш SFX архив удалит все файлы с расширением rar с рабочего стола у пользователя
Если вам необходимо удалить все файлы, независимо от расширений и имён, то следует указать маску всех файлов:
$DESKTOP\*.*
С удалением все работает, но только с файлами, а не с папками »
Опять же, повторюсь, для удаления директории необходимо, чтобы она была пустая, об этом был мой ответ на ваше первое сообщение
ps
а во второе поле вы не правильно опять же указали путь, прочтите страничку "Как правильно добавлять файлы в проект" и посмотрите примеры проектов в файле справки
K.A.V., спасибо, завтра буду разбираться, С Рождеством !
Доброго дня, это снова я. С заменой и удалением файлов и папок разобрался. Перечитал всю инструкцию и нигде не нашел пояснений к выполнению операций в реестре, то что указываем тип операции, корневой раздел, раздел реестра это понятно, но сколько не пробовал раздел не удаляется, может где в главном окне или в настройках нужно что то указать или поменять ?
то что указываем тип операции, корневой раздел, раздел реестра это понятно, но сколько не пробовал раздел не удаляется, может где в главном окне или в настройках нужно что то указать или поменять ? »
Да нет, ничего дополнительно указывать не нужно.
Выбираем тип операции: Удаление (Раздел)
Корневой раздел: HKEY_LOCAL_MACHINE
Раздел реестра: SOFTWARE\TEST
В пути раздела не должно быть кавычек (насчет спец. символов ничего сказать не могу)
Создаёте раздел и смотрите, у меня всё удаляет корректно под правами администратора.
Раздел реестра: SOFTWARE\TEST »
Ага, вот здесь ошибся, я указывал полный путь, HKEY_LOCAL_MACHINE\SOFTWARE\TEST
Спасибо за подсказку.
laden2009
21-01-2015, 15:35
Столкнулся с такой трудностью: требуется открыть папку в проводнике, куда распаковался архив. Возможно ли это сделать средствами SFX Creator?
Столкнулся с такой трудностью: требуется открыть папку в проводнике, куда распаковался архив. Возможно ли это сделать средствами SFX Creator? »
Добавьте команду в диалоге "Выполнение приложений и Shell-команд"
Тип команды: Shell-запуск
Приложение/файл на выполнение или адрес в интернете: $INSTDIR (или другая папка, куда у вас всё распаковывается)
Добрый вечер, столкнулся с такой проблемой, мне нужно перезаписать файлы находящиеся в C:\Documents and Settings\All Users это понятно в ХР и C:\ProgramData\ в семерке. Переменную я ставлю $APPDATA http://img.ii4.ru/thumbs/2015/01/25/566369_kiss_73kb.jpg (http://img.ii4.ru/images/2015/01/25/566369_kiss_73kb.jpg) но вот в чем беда, файлы для замены попадают в C:\Documents and Settings\Admin а не в All Users, на семерке не проверял. В справочнике нашел инфу
$APPDATA — папка с данными учётной записи пользователя (c:\Documents and Settings\Ваше имя\Application Data\ или c:\Documents and Settings\All Users\Application Data\). Для неё справедливо замечание SetShellVarContext, равно как и для $DESKTOP.
Подскажите что это за замечание и что с ним делать ?
И еще один вопрос, если указывать переменную $APPDATA для замены файлов, применяя патч на ХР и на Win 7 будут ли создаваться папки не применимые для данной оси, то есть не будет ли создана в ХР папка C:\ProgramData\ с файлами и наоборот.
Написал инструкцию для решения данной проблемы: 11 новых переменных для проекта SFX Creator: общие папки пользователей (http://winxpregp.narod.ru/news/11_novykh_peremennykh_dlja_proekta_sfx_creator_obshhie_papki_polzovatelej/2015-01-26-8)
Для неё справедливо замечание SetShellVarContext, равно как и для $DESKTOP.
Подскажите что это за замечание и что с ним делать ? »
Это означает, что если вы знаете язык NSIS и создаёте пакеты инсталляторов с помощью данной системы, то вы можете отредактировать исходный код скрипта вашего SFX архива перед созданием выходного EXE файла и добавить команду "SetShellVarContext all", которая перенаправит значения всех переменных пользователя с путями в папки (рабочий стол, мои документы, Application Data и т.д.) так, что пути будут указывать на профиль "All Users"
И еще один вопрос, если указывать переменную $APPDATA для замены файлов, применяя патч на ХР и на Win 7 будут ли создаваться папки не применимые для данной оси, то есть не будет ли создана в ХР папка C:\ProgramData\ с файлами и наоборот. »
Нет, такого не будет, не волнуйтесь
если вы знаете язык NSIS и создаёте пакеты инсталляторов с помощью данной системы »
:o :wow:
"Многие вещи нам непонятны не потому, что наши понятия слабы; но потому, что сии вещи не входят в круг наших понятий."(К. Прутков)
Спасибо за инструкцию :bow: буду пробовать, :clever-ma только путем проб и ошибок можно получить опыт
Доброго времени, это снова я, случилась новая закавыка, решить пока не получается, посоветуйте . Патч самый простой сделал и по мере совершенствования появляются новые проблемы. В чем суть. Перед распаковкой файлов нужно убить процесс. В батнике или cmd выглядит так %windir%/system32/taskkill.exe /f /im "NS.exe" или просто taskkill.exe /f /im "NS.exe" , что соответствует $SysDir\taskkill.exe подскажите какой тип команды будет правильным и как надо правильно вписать в поле "Параметры приложения"?????????
В справочнике только пример на запуск msi с указанием пути.
P.S. сделал так вроди заработало http://i63.fastpic.ru/thumb/2015/0209/39/07ac7a400fadb00cdd10d8fe3ccb3b39.jpeg (http://i63.fastpic.ru/big/2015/0209/39/07ac7a400fadb00cdd10d8fe3ccb3b39.jpg)
Соленый, для этого в SFX Creator есть возможность Проверка/закрытие и ожидание запущенных приложений, запустить диалог настройки можно там же, в выпадающем списке "Дополнительных возможностей"
запустить диалог настройки можно там же, в выпадающем списке "Дополнительных возможностей" »
А где этот выпадающий список ? что то я не могу его найти
http://i58.fastpic.ru/thumb/2015/0209/ae/e4a2c8f86e7dc312a73f16ef5bab77ae.jpeg (http://i58.fastpic.ru/big/2015/0209/ae/e4a2c8f86e7dc312a73f16ef5bab77ae.jpg)
А где этот выпадающий список ? что то я не могу его найти »
Я про тот выпадающий список, через который вы уже запустили этот диалог настройки :)
Вам осталось прописать нужные настройки в этом диалоге и добавить данные в проект, если хотите, чтобы приложение закрывалось сразу в автоматическом тихом режиме, пропишите всё так:
http://s018.radikal.ru/i522/1502/c0/181e0b51dc4ft.jpg (http://radikal.ru/f/s018.radikal.ru/i522/1502/c0/181e0b51dc4f.jpg.html)
И прочитайте страничку в справке о данной возможности, и о её настройках, нажав на кнопку с красным вопросом
НО, спешу вас "обрадовать", что данная возможность некорректно работает на 64-bit системах, вызывая синие экраны при попытке завершения процессов, это было замечено уже после выхода RC версии SFX Creator, поэтому об этом в справке нет ни слова, пока SFX Creator "стоит на паузе" в разработке, поэтому за решение этой проблемы не брался.
Вам осталось прописать нужные настройки в этом диалоге и добавить данные в проект »
Я уже пытался таким образом убить процесс, но бесполезно, вы наверно догадались что это процесс антивиря и просто так он не даст себя грохнуть, а через taskkill получилось. Осталось только разобраться как через настойки групп и компонентов правильно настроить очередность выполнения приложений, какие до распаковки в первую очередь и какие после распаковки. На сколько я понял из справки, то приложение которое должно запускаться самое первое надо добавит в корень и связать с командой которая прописана в выполнениях приложений и shell команд и там же выставить выполнить перед распаковкой.
http://savepic.ru/6690231m.jpg (http://savepic.ru/6690231.jpg)
Те приложения которые должны запуститься после распаковки, можно или даже нужно не добавлять в настройках групп и компонентов и выставить на запуск после распаковки файлов.
http://savepic.ru/6742454m.jpg (http://savepic.ru/6742454.jpg)
Но вот я боюсь что они будут запускаться не после распаковки , а перед ней, сразу за taskkill. Можете как нибудь прояснить этот момент ? или ладно сейчас немного отдохну и проверю
Спасибо за помощь, да наблюдал следующее в настойках групп и компонентов, когда в выполнениях приложений и shell команд добавлено несколько приложений, то в настройках компонентов не правильно связывается команда, а если по одному добавлять, то для компонета нормально, для групп не пробовал
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC