Ну, во-первых я пропущу.
Касаемо во-вторых: вообще-то говоря, не принято (везде) красть чужое, - т.е. брать чужой аддон, чуток его изменять и выкладывать под своим именем (что на этом форуме я уже наблюдал и не раз); подправить чужой аддон, устранив в нем ошибки, или расширить его функциональность, не трогая авторство, - чтобы автор мог его перепроверить и включить в состав своих аддонов, - это совсем другое дело (не, ну я тоже сначала только выписывал комменты по аддонам, т.к. негативно отношусь к воровству чужого, но потом - по запросу - выложил и подправленные версии аддонов; у
anddy со временем напряг + это удобнее для автора, - сразу визуально видеть, что изменилось в файлах аддона, нежели чем править то, что понаписали в комментах).
Так и скажи: "не имею достаточных знаний, чтобы сделать 3 под-аддона, а посему налил тут воды на десяток предложений".
Касаемо в-третьих и bat-ника: во-первых, непонятно тогда, че ты тогда отписываешься в этой теме, которая посвящена аддонам
anddy для правки дистрибутива; во-вторых, я как раз таки наоборот сторонник удаления всякого мусора из I386, - зачем совершать лишние манипуляции с bat-никами (не, ну у меня тоже 1 такой на T-13 запускается, но там внесение настроек в реестр, пересортировка Пуска, да снос того, что создается при работе некоторых прог, а не вносится через inf-файлы), удаляя то, что зачастую можно и не создавать вовсе; ну и в-третьих: если четко знаешь и представляешь, что делают Z-аддоны, можно быть на все 100% уверенным в том, что всё будет в ажуре и абсолютно безопасно. К тому же, bat-никами не всё можно снести, - те же захваченные папки и защищенные файлы ты не сможешь удалить (файлы-то сможешь, но ругань ОС будет); + Z-Del-аддоны - это не тупо удаление файлов, это еще и грамотная правка inf-файлов, подправка реестра и прочее, - в общем, если сравнить работу Z-Del-аддона с работой обычного bat-ника, - это все равно что сравнить те же аддоны для удаления cmpnents и Z-Del_Upgrade с ручным сносом соответствующих папок (в общем, совершенно иной уровень исполнения, - переход от тупого удаления к осознанию совершаемых действий, - в этом и есть заслуга
anddy, поэтому мне и интересна эта тема).
P.S.: ну и по делу, - я таки вернулся к вот этой своей давней высказанной идее (ниже).
читать дальше »
Касаемо sysoc и RunOnce для удаления/создания папок/файлов и внесения настроек в реестр - а почему бы не расширить функциональность (и не забивать sysoc и RunOnce всяким мусором) и не добавить какой-нить файл наподобие hive/sysoc, в который бы помещались обычные bat/cmd-конструкции; из которых затем формировался единый bat-ник, добавляемый в конец svcpack (туда же, куда идет содержимое файла run)? Получили бы 1 bat-файл (1 cmd-окно, а не мельтешение их), запускаемый в конце T-13 (т.к. бо'льшая часть конструкций, прописываемых в sysoc, идет через HKLM/../RunOnce, выполняемый как раз перед запуском svcpack на всё том же T-13; ну и париться/извращаться с добавлением в HKLM/../RunOnce, запускаемый при первом запуске, уже тоже не нужно, - я про двойное добавление в этот раздел для отработки на T-13 и последующей отработке на 1-м логоне, причем иногда - как я здесь видел - нужно прописывать более 2-х вложений).
Т.к. копирование файлов через sysoc без соответствующих cat-файлов вызывает ругань ОС (логи гляньте; я увидел сей факт на аддоне 'Codec Pack', т.к. кроме него у меня через sysoc ставится только сам UpdatePack и WMP11, но они с cat-файлами) + мельтешение этих cmd-окошек (что на T-13, что при первом входе) - явно не есть good, то я расширил функциональность аддона Z-Dll_Patcher (ну, ниже всех расположен, хотя думаю создать отдельный аддон на его уровне), добавив в него папку Files\ForceCopy\SVCPACK\ и 2 файла - Start и Start!.cmd со следующим содержимым (отталкивался от логики аддонов
anddy и делал по подобию; отличие этих 2-х файлов только в верхних строчках, т.к. Start подхватывается UpdatePack-ом, а Start!.cmd служит для тестинга, - т.е. запускается из своей папки).
Верх файла Start:
Содержимое файла Start!.cmd:
читать дальше »
@Echo Off
Set WD=.
Set BIN=..\..\BIN
Set Addons=..\..\Addons
If Not Exist "%BIN%\Iconv.exe" (
Echo Отсутствуют служебные файлы аддона %~1!
Echo.
Echo Выполнение прервано
pause
GoTo :EOF
)
Set Run="%WD%\Run"
Echo !Run.cmd>%Run%
Set RunCmd="%WD%\Files\ForceCopy\SVCPACK\!Run.cmd"
Echo @echo off>%RunCmd%
Echo echo START!>>%RunCmd%
Echo CD /D "%%SystemRoot%%">>%RunCmd%
Echo.>>%RunCmd%
Set RunMod=0
For /F "UseBackQ Delims=" %%I In (`Dir %Addons% /AD /B /ON 2^>nul`) Do (
If Exist "%Addons%\%%I\RunCmd" (
%BIN%\Iconv.exe -c -f cp1251 -t cp866 "%Addons%\%%I\RunCmd">>%RunCmd%
Echo.>>%RunCmd%
Set RunMod=1
)
)
If "%RunMod%"=="0" del /f /q %Run%
Что делает этот файлик Start:
1. на начальном этапе обработки скриптом __PATCH.CMD аддона UpdatePack производится просмотр подпапок папки addons в поисках файлов RunCmd (без расширения, как и Run, в ANSI-cp1251-кодировке), которые представляют собой обычные bat-ники, - ну, для удаления папок, к примеру.
2. Все эти файлы собираются в единый файл !Run.cmd, лежащий в SVCPACK, причем перекодируются из кодировки cp1251 в кодировку cp866 (с помощью iconv.exe из папки BIN) для правильной обработки кириллических путей.
3. в корне аддона Z-Dll_Patcher создается файл Run (который подхватывается UpdatePack-ом на следующем этапе обработки, - вместе с копированием файлов) с содержимым '!Run.cmd', и т.к. это самый нижний аддон, то запуск файла !Run.cmd добавляется в самый низ секции [SetupHotfixesToRun] файла Svcpack.inf, - т.е. запустится после всех прочих файлов, прописанных в Run аддонов выше.
Ну еще в самом верху файла '!Run.cmd' прописываются автоматом строки:
т.е. сразу отрубаем echo, вывешиваем Start! для того, чтобы отличить свое окошко от других, а также делаем переход в %SystemRoot% с ключом /D, чтобы не заморачиваться с этим в других bat-никах.
Плюсы: всего 1 cmd-окно взамен пачки, нет копирования левых inf-файлов и забивания sysoc.inf всяким мусором; т.к. запуск осуществляется в конце T-13, можно как регистрировать библиотеки для аддонов, так и сносить доп. левые папки.
Покамест эта фишка в режиме тестирования и улучшения.
