![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка Windows 2000/XP/2003 » Модифицированный SFX модуль 7-Zip'а для установок |
|
Модифицированный SFX модуль 7-Zip'а для установок
|
Старожил Сообщения: 341 |
Модифицированный SFX модуль 7-Zip'а для установок Версия 1.6.1 Stable, сборка 3873 (5 марта 2016 г.) Версия 1.7.0 Develop, сборка 3873 (5 марта 2016 г.) Модифицированный модуль предоставляет широкие возможности для создания SFX архивов. Используя модуль, Вы можете:
Зеркалa: Веб-архив сайта Яндекс.Диск - полный набор OneDrive - полный набор, пароль: 7zsfxmod OneDrive - только модули SFX (7zsd_tools_170_3900.7z) Обсуждение GUI (графической оболочки) для создания 7-zip SFX с модифицированным модулем ведется в этой теме. Автор GUI - hobbeat. Кнопка для работы с 7z SFX архивами в Total Commander-е находится здесь (автор - gora, вечная память) Файлы конфигурации 7z SFX обсуждаются в этой теме (автор - gora) Отдельное спасибо ArtXGroup за финансовую поддержку Теперь модуль будет в двух версиях: 1. Stable. В дальнейшем в нем из изменений будет только исправление ошибок (надеюсь их не будет) и обновление кода самого 7-Zip до последней стабильной версии. 2. Develop->Alpha->Beta. Исходные коды 7-Zip - последняя бета версия самого архиватора, добавление новых функций. FAQ |
|
Отправлено: 06:20, 11-07-2005 |
Новый участник Сообщения: 40
|
Профиль | Отправить PM | Цитировать Еще раз вернулся к скриптам защиты от повторного запуска и сбоев:
http://forum.oszone.net/post-2688624.html#post2688624 Собственно, теперь скрипт формируется и запускается на выполнение прямо в PreExtract (в папке %SfxVarApiPath%): PreExtract="%%P:hidcon:cmd.exe /c \"(echo set zz_T=%zz_T:\\\\=\\%&echo For /F \"Skip=1 Tokens=1,2 Delims=,\" %%I In ^('Tasklist /FO CSV /FI \"IMAGENAME eq %zz_M%\" /NH '^) Do ^(If %%I==\"%zz_M%\" Set PID=%%~J^)&echo If Defined PID ^(cd /d \"%TEMP\"%^&rd /s /q \"%SfxVarApiPath%\"^&TaskKill /PID %PID% /T /F^)&echo If Exist \"%zz_T%\z3_Stop.cmd\" ^(cd /d \"%zz_T%\"^&call z3_Stop.cmd^))>z1_TaskKill.cmd\"&z1_TaskKill.cmd" ![]() ===================================== Какая-то непонятная ситуация возникает ![]() |
Последний раз редактировалось Victor_Man, 27-01-2017 в 14:06. Причина: Доработка Отправлено: 02:39, 27-01-2017 | #1801 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 40
|
Профиль | Отправить PM | Цитировать Ж.Д.А.Л.К.Е.Р.,
Только сейчас дошло, что проблема в /FI "IMAGENAME eq XXXX"....я прошлый раз не так понял. 2003 у меня нет, проверить негде. Через полчасика переделаю, все-равно была еще ошибочка (ее я уже исправил). |
Отправлено: 19:35, 27-01-2017 | #1802 |
Пользователь Сообщения: 91
|
Профиль | Отправить PM | Цитировать Victor_Man, Так все работает????
Если такая длинная строчка, можно ее и на части разделить, для удобочитаемости... Создавать, например, батник построчно... |
Отправлено: 19:59, 31-01-2017 | #1803 |
Ветеран Сообщения: 1861
|
Профиль | Отправить PM | Цитировать Victor_Man, Tasklist из 2003 сервера тупо не находит процесс если использовать встроенный фильтр, поэтому формируем список всех процессов и дальше его разбираем другими командами.
tasklist x86/x64 из 2003, переименовать чтоб имя не совпадало с системным и закинуть в одну из папок %Path%. Так на другой Windows (проверил на Хр х86 и 7 х64) можно воспроизвести проблему 2003-го Tasklist-а. CryptoNick, Нет, там все по старому. Цитата CryptoNick:
|
|
Отправлено: 10:42, 01-02-2017 | #1804 |
Новый участник Сообщения: 11
|
Профиль | Отправить PM | Цитировать How last version 7zsd?!
|
Отправлено: 14:03, 01-02-2017 | #1805 |
Пользователь Сообщения: 91
|
Профиль | Отправить PM | Цитировать magsood, Вот
|
Отправлено: 14:32, 01-02-2017 | #1806 |
Новый участник Сообщения: 40
|
Профиль | Отправить PM | Цитировать CryptoNick,
Так я так и делал, это в Preextract строчка одна, а .cmd создается многострочный. V2 вроде рабочий, но.....после длительного тестирования - запускал из .cmd несколько копий - он более чувствительный, иногда, хотя и редко, копии оставались в памяти. Реально такого частого запуска не быть может, конечно, но, тем не менее, как говорится - лучшее враг хорошего. Немного подшаманил V1 (мод. варианта Ж.Д.А.Л.К.Е.Р) - должен работать на W2003: http://forum.oszone.net/post-2688624.html#post2688624 Все-таки жалко, что Олег не сделал функции выхода из программы...но, что есть, то есть. |
Последний раз редактировалось Victor_Man, 08-02-2017 в 13:22. Отправлено: 20:40, 05-02-2017 | #1807 |
Новый участник Сообщения: 40
|
Профиль | Отправить PM | Цитировать Кстати, столкнулся с еще одной "базовой" проблемой (долго не мог понять, в чем дело):
Windows всегда (наверное?) принимает в пути \\ за \ Для примера, вот так файл Test.txt распечатывается без проблем: @echo off set "TEMP=C:\AA BB\" echo %TEMP% type "%TEMP%\Test.txt" type "C:\\AA BB\\Test.txt" Pause Все прекрасно работает, пока не попадается система, где назначен TEMP с концевым флэшем. Этот флэш остается в InstallPath и при попытке загрузить программу по RunProgram 7xSFX не находит файл программы! С одной стороны, вроде в %TEMP% слэша не должно быть, но явно нигде не указано. И некоторые в процессе настройки системы под себя его ставят. В основном - "старые волки", которые еще DOS помнят. И вот возникают проблемы с некоторыми программами, они часто неявные, непонятные и не критические, но...7z SFX этому пример. Неприятно, т.к. мало ли куда может попасть разработанная сборка...всем заранее не укажешь, что %TEMP% без слэша д.б. Реального универсального выхода из этой проблемы в 7zSFX я не нашел. Ну, точнее, один есть - все делать через .cmd и cmd /c, но это выход не универсальный. Может, кто-нибудь все-таки нашел? |
Отправлено: 13:24, 08-02-2017 | #1808 |
Ветеран Сообщения: 1861
|
Профиль | Отправить PM | Цитировать Цитата Victor_Man:
Цитата:
|
||
Отправлено: 21:44, 08-02-2017 | #1809 |
Ветеран Сообщения: 1579
|
Профиль | Отправить PM | Цитировать Ж.Д.А.Л.К.Е.Р., Victor_Man,
Некоторые размышления по-поводу 1. Предотвращения повторного запуска инсталлятора. Создание какого-либа файла типа z1_KillTask.cmd вообще не требуется. Строка типа ExecuteOnLoad="hidcon:cmd /c FOR /F \"Tokens=1,2\" %I IN ('\"TASKLIST|FINDSTR /BILC:\"%%M\"\"') DO SET /A N+=1&Set PID=%~J&FOR /F \"Tokens=*\" %k IN ('cmd /v:on /C IF !N! GTR 1 ECHO !PID!') DO TASKKILL /F /T /PID \"%k\"" 2. Хорошая идея проверять и удалять инсталляцию, которая по какой-то причине покрашилась. Но что-то не хочется для этого перезагружаться (я по поводу ключа в RunOnce) - ведь инсталляция может прерваться не только из-за вольной или невольной перезагрузки компьютера. Также лично мне не нравится создание в архиве с программой каких-либо дополнительных файлов (я имею в виду z3_Stop.cmd). Помимо этого в этот файл (z3_Stop.cmd) надо занести всю информацию для полной деинсталляции приложения, хотя инсталляция может быть прервана задолго до конца и полная деинсталляция может оказаться избыточной. Но и не это так важно (влиять должно только на время деинсталляции), как, например, то, что при инсталляции ключи реестра могут не просто добавляться/удаляться, а изменяться. В этом случае заранее не известно какое значение ключа реестра было до инсталляции, и, соответственно, что должно быть в реестре после деинсталляции. Отсюда вывод - данные для инсталляции необходимо создавать динамически в самом процессе инсталляции. Причем эти данные можно использовать не только для восстановления системы после неудачной инсталляции, а и просто для обычной деинсталляции впоследствии. Чтобы не быть голословным опять же приведу в пример свой Конструктор инсталляторов на основе 7z SFX. Инсталляторы, созданные с его помощью, в процессе установки формируют файл UnCom.~ в папке с программой. В этот файл записывается все, что делает инсталлятор, в том числе и изменяемые параметры реестра. После установки в реестре создается ветка для деинсталляции программы с помощью стандартного апплета Установка и удаления программ, а команда для деинсталляции использует данные из UnCom.~, которые записываются в реестр, сам файл UnCom.~ после этого удаляется. Так вот, если перед распаковкой программы UnCom.~ будет находится в папке, в которую должна будет установиться программа, то после окна предупреждения команды для деинсталляции из него будут выполнены, удалена папка с программой и процесс инсталляции таксккиллится. |
------- Отправлено: 16:16, 10-02-2017 | #1810 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Горячие клавиши для восстановления заводских установок ноутбуков | Sparkster | Ноутбуки | 398 | 03-10-2019 15:11 | |
GUI для модифицированного 7-Zip SFX модуля для установок | hobbeat | Автоматическая установка Windows 2000/XP/2003 | 259 | 09-10-2016 07:01 | |
Создание silent 7-zip sfx | mitiya | Автоматическая установка Windows 2000/XP/2003 | 17 | 01-03-2011 22:14 | |
[решено] Как создать модуль SFX? | CtrlSoft | Программное обеспечение Windows | 3 | 13-02-2008 21:31 | |
CMD/BAT - [решено] замена set str2=%str1:.zip/=.zip/!% глючит на пробелах?! | akrav | Скриптовые языки администрирования Windows | 5 | 12-02-2008 11:54 |
|