Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Наборы обновлений для Windows XP/2003/Windows 7 (http://forum.oszone.net/forumdisplay.php?f=62)
-   -   Руководство по созданию аддонов (текущая версия) (http://forum.oszone.net/showthread.php?t=104104)

volk1234 27-02-2008 19:19 749397

Руководство по созданию аддонов (текущая версия)
 

Руководство перенесено в статью на сайте, но его обсуждение не закончилось. Любой может добавить в него что- нибудь новенькое.

Предлагаю сосредоточиться пока на двух разделах, которые будут дорабатыватся в ветке и только потом переносится в Руководство.

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

prokazzza 27-02-2008 20:14 749447

volk1234,

Цитата:

Цитата volk1234
2.7 Finish - фактически это cmd-файл (без расширения), выполняется после завершения интеграции всех компонентов; »

Еще раз по этому пункту. Выполняется после завершения интеграции каких компонентов???

volk1234 27-02-2008 20:27 749460

Цитата:

Цитата prokazzza
Еще раз по этому пункту. Выполняется после завершения интеграции каких компонентов??? »

вот вам я и предлагаю дополнить этот пункт :)

хотя помоему и так ясно- всех компонентов пака

prokazzza 27-02-2008 20:35 749470

volk1234,

volk1234,
Цитата:

Цитата volk1234
хотя помоему и так ясно- всех компонентов пака »

Вопрос на засыпку. Интересно тогда как выполняется интегрирование ресурсов пака VistaPath без Finish??? :)

volk1234 27-02-2008 20:45 749477

Цитата:

Цитата prokazzza
Вопрос на засыпку. Интересно тогда как выполняется интегрирование ресурсов пака VistaPath без Finish?? »

А у вас как раз таки и есть файл finish в составе аддона :) забыли?

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

prokazzza 27-02-2008 20:52 749483

Цитата:

Цитата volk1234
А у вас как раз таки и есть файл finish в составе аддона забыли?
если вы разбираетесь лучше меня так предложите свой вариант описания я дополню инструкцию »

Есть то он есть, но только он выполняется точно не после интергации ресурсов, а насчет описания лучше обратиться к jameszero, он лучше в этом понимает.

Vadikan 27-02-2008 21:00 749489

Наверное, нужно еще вначале объяснить, какие способы интеграции аддонов существуют, чем они отличаются и какие файлы используются (или не используются) для каждого способа.

По поводу имен и кодировок файлов - это скорее должно идти вторым пунктом (как более общая информация) и, видимо, нужно указать, в какой конкретно кодировке должны быть файлы (или в какой не должны быть).

Что касается примера с Netsky... юмор понятен, но может имеет смысл взять для примера какой-нибудь реальный аддон? Так люди смогут "пощупать" его :)

volk1234, предлагаю продолжать править сообщение 343, поскольку ссылка на него уже в шапке (можно инструкцию там сразу в развернутом виде, без читать дальше).

gora 27-02-2008 22:43 749580

Цитата:

Цитата Vadikan
нужно еще вначале объяснить, какие способы интеграции аддонов существуют, чем они отличаются »

Аддоны могут быть трех типов интеграции:
1 Аддоны типа SYSOC... Первый тип знаю плохо и его описание оставлю другим, специализирующимся именно на них

2 Аддоны типа SVCPACK обычно используют SFX архивы (7z, RAR, и т.д.) которые могут быть использованы и для установки на "живую" систему или "тихие" инсталяторы. Они имеют следующую структуру (на примере аддона WinFlip):
Код:

<WinFlip0424RU>
--Run
--addon.nfo
--<Files>
----<ForceCopy>
------<SVCPACK>
--------WinFlip.exe

SFX архив (WinFlip.exe) может быть один или их может быть несколько. Все они располагаются рядом, в папке <SVCPACK>. Порядок их запуска определяется последовательностью записей в файле Run, который должен обязательно заканчиваться пустой строкой. Т.е. после названия .exe файла и его ключей просто нужно нажать Enter и сохранить файл, этого вполне достаточно!
Ключи через "механизм" SVCPACK передаются, но требуют соблюдения определенных условий. Передать путь с пробелами не удастся и кавычки при этом не спасают. Ключи типа хххх-хххх-хххх-хххх тоже не передаются из-за знака минус (-) в ключе. Но обойти эти ограничения в ряде случаев удается.

3 Комбинированные использующие оба типа (SVCPACK и SVCPACK) одновременно.

volk1234 28-02-2008 00:20 749630

Цитата:

Цитата Vadikan
в какой конкретно кодировке должны быть файлы (или в какой не должны быть). »

Мне стыдно но я не могу придумать в какой кодировке должны быть файлы.
Цитата:

Цитата Vadikan
Что касается примера с Netsky... юмор понятен »

Как только выйдем на более менее нормальный объем(и смысл) инструкции, сразу сменю на что-нить стоящее.
Цитата:

Цитата Vadikan
По поводу имен и кодировок файлов - это скорее должно идти вторым пунктом »

сделано

Gora а если както так?

Аддоны в зависимости от целей и способов реализации делятся на 4 типа(в зависимости от способов интеграции в дистрибутив):
1.Аддоны использующий SYSOS
вот здесь надо пригласить когонибудь знающего

2.Аддоны использующий для интеграции SVCPACK.
Изначально механизм SVCPACK предназначался для установки обновлений вышедших после ОС.Однако вместо обновлений можно
замечательно устанавливать и свои приложения. Самое главное преимущество этого способа - SVCPACK обрабатывается на Т13 когда уже доступны
все инструменты Windows: реестр, учетные записи....и когда существуют все необходимые папки и файлы.....
В аддонах типа SVCPACK обычно используют SFX архивы(7z, RAR, и т.д.) либо исполняемые файлы, которые могут быть использованы и для установки на "живую" систему или "тихие" инсталяторы. Если исполняемых файлов или SFX архивов несколько, порядок запуска определяется в конфигурационном файле Run .


3.???????

4.Аддоны изменяющие дистрибутив в процессе интеграции обновлений и других аддонов. Категория т.н. служебных аддонов.

предлагаю инструкцию разделить
на
А Общие понятия
B Типы Аддонов
С Примеры и приложения(если будут)

vek 28-02-2008 00:25 749636

Цитата:

Цитата gora
Аддоны SVCPACK имеют следующую структуру »

Небольшое дополнение:
Все файлы из папки аддона расположенной по пути Files\ForceCopy\SVCPACK в процессе работы скрипта основного пакета просто копируются в папку I386\SVCPACK дистрибутива Windows.
Вся последовательность записей из файла Run, расположенного в корне папки аддона, добавляется в секцию [SetupHotfixesToRun] файла I386\svcpack.inf дистрибутива Windows. Приложения внесенные в секцию [SetupHotfixesToRun] файла svcpack.inf и находящиеся в I386\SVCPACK начинают поочередно выполняться за 13 минут до окончания установки Windows.
Расписал как для школьников. Чувствую общими стараниями может получиться еще одна познавательная статья в Учебник

vek 28-02-2008 00:52 749652

Цитата:

Цитата volk1234
предлагаю инструкцию разделить »

Излагаю свое видение содержания:

1. Общие понятия и определения.
читать дальше »
Вводная часть. Описание общей структуры аддонов. Основные определения, используемые в дальнейшем

2. Описание и назначение "служебных" файлов и папок аддонов.
читать дальше »

2.1.SpecCase
2.2.KillWFP.lst
2.3.Finish
2.4.DelDrv.lst
2.5DelOC.lst
2.6.Addon.nfo
2.7.Required
2.8.Conflict
2.9.Hive
2.10.Upd
Каждый файл заслуживает детального описания и примеров использования

3. Типы аддонов
читать дальше »

3.1. SYSOC
3.1.1. dosnet.inf
3.1.2. sysoc.inf
3.1.3. txtsetup.sif
3.1.4. РУководство по INF
3.2. SVCPACK
3.2.1. run
3.2.2. Создание "тихих" инсталяторов.

4. Примеры

volk1234 28-02-2008 01:47 749674

vek(кстати по русски -мул:) )
предложение интересно

несколько ремарок.
всеже основные главы надо выделить буквами(или в будущем будет другая структура)
поэтому предлагаю придерживатся нумерации типа ABC 123 1.1 2.1 3.1 тд (если уж стандартизируем)

ваше деление типов аддонов не на 4 вида интересно, но надо обьяснить подробнее почему именно так,
ведь не по принципу: все что осталось "запихнем" сюда.
например:не совсем верно распихивание конфигурационных файлов по разным разделам: типы аддонов, ...
всеже их описание с примерами лучше разместить рядом.


Опять же вы употребляете слово "служебный" и для конфигурационных файлов и для типов аддонов, что весьма путает
Категория служебный аддон появилась недавно, я в инструкции имел в виду именно это, подробнее смотрите ветку: открыта общественная группа Авторы аддонов

Any case, я сторонник "груповухи или вместе веселее", как решим совместно так и будет, любые предложения принимаются....

volk1234 28-02-2008 02:05 749678

Gora, vek а если как то так?

Аддоны в зависимости от целей и способов реализации делятся на 4 типа(в зависимости от способов интеграции в дистрибутив):

1.Аддоны использующие SYSOС
вот здесь надо пригласить кого-нибудь знающего

2.Аддоны использующие для интеграции SVCPACK.
Изначально механизм SVCPACK предназначался для установки обновлений вышедших после ОС. Однако вместо обновлений можно устанавливать и другие приложения. Самое главное преимущество этого способа - SVCPACK обрабатывается за 13 минут до окончания установки Windows, когда уже доступны все инструменты : реестр, учетные записи..????..и когда существуют все необходимые папки и файлы.....????
В процессе работы скрипта Update Pack все файлы из папки аддона Files\ForceCopy\SVCPACK копируются в папку I386\SVCPACK дистрибутива Windows. Вся последовательность записей из файла Run добавляется в секцию [SetupHotfixesToRun] файла I386\svcpack.inf дистрибутива Windows.
Приложения внесенные в секцию [SetupHotfixesToRun] файла svcpack.inf и находящиеся в I386\SVCPACK начинают поочередно выполняться на Т13 .
В аддонах типа SVCPACK обычно используют SFX архивы(7z, RAR, и т.д.) либо исполняемые файлы, которые могут быть использованы и для установки на "живую" систему или "тихие" инсталяторы. Если исполняемых файлов или SFX архивов несколько, порядок запуска определяется в конфигурационном файле Run.


3.???????

4.Аддоны изменяющие дистрибутив в процессе интеграции обновлений и других аддонов. Категория т.н. служебных аддонов.


*спецально не трогаю инструкцию пока не оближем этот кусок- ИМХО для "чайников" он самый важный

IDDQDesnik 28-02-2008 07:07 749715

1. SYSOC
2. SVCPACK
3. Аддоны изменяющие дистрибутив в процессе интеграции обновлений и других аддонов.
4. Комбинированные

Shido 28-02-2008 07:19 749721

All
Цитата:

Цитата volk1234
-Run
-KillWFP.lst
-Finish
-Addon.nfo >(конфигурационные файлы)
-Required
-Conflict
-Hive »

А почему все забыли про START, например в HTMLINFO он прекрасно работает. Функции теже что и у Finish, но отрабатывает в самом начале.

gora 28-02-2008 09:13 749753

Цитата:

Цитата volk1234
В аддонах типа SVCPACK обычно используют ...»

Не понял почему это описание перекочевало из пункта 2 в пункт 4!?
2 ALL
Мне кажется что мы здесь скатываемся к написанию статьи об аддонах, что само по себе не плохо и даже целесообразно, но разговор начинался со стандартизации оформления таковых!

а) Название папки аддона должно содержать номер версии, что бы когда потребуется представить список используемых аддонов можно без дополнительных вопросов определить версию аддона.
б) Название папки аддона должно содержать указание о типе интеграции в виде одной буквы в конце. Например: SVCPACK - P, SYSOC - C, комбинированные - K, изменяющие дистрибутив в процессе интеграции обновлений и других аддонов - S. Это облегчит их идентификацию по названию.
в) Название дистрибутива (архива) аддона должно содержать ДАТУ "выпуска". Формат даты тоже должен быть стандартизован.
г) Название папки аддона должно быть БЕСПРОБЕЛЬНЫМ, содержать только латиницу и цифры ну и некоторые допустимые символы.
Учитывая сказанное это может выглядеть так:
Аддон (название папки аддона): <WinFlip0424RU_P>
Название файла дистрибутива аддона: WinFlip0424RU_P_080206_09-59.7z

Почему-то забыли про аддон 3rdParty который необходим при использовании аддонов с типом интеграции SYSOC и комбинированных (для SVCPACK он не нужен, про четвертый тип не скажу). О его назначении необходимо написать в описательной части и в файл addon.nfo вводить указание о его необходимости, для указанных типов, ОБЯЗАТЕЛЬНЫМ требованием.

volk1234 28-02-2008 10:29 749790

Цитата:

Цитата Shido
А почему все забыли про START, »

Добавил

Цитата:

Цитата gora
Название папки аддона должно содержать номер версии »

это уже есть в п.1 тоже самое по остальным пунктам

Цитата:

Цитата gora
WinFlip0424RU_P_080206_09-59.7z »

представте до чего можно достандартизироватся. :o
все это хорошо, но мы здесь говорим о формате файлов и папок 8.3 в составе аддонов и тудже предлогаем архивы называть в 29.3 символов. Наверное лучше указать так: Для облегчения пользователям поиска и использования вашего аддона, добавляйте в название архива с очередной версией аддона дату сборки и\или версию аддона.

Цитата:

Цитата gora
забыли про аддон 3rdParty »

как только ктонить грамотно распишет сразу добавлю.

gora 28-02-2008 12:00 749826

Цитата:

Цитата volk1234
Все файлы и папки аддонов должны иметь имена в формате 8.3 »

Это что за фантазии?
Цитата:

Цитата volk1234
В названии архива с аддоном и\или папки аддона желательно указывать версию или дату создания аддона. »

Это не совсем то, что написал я. Стандарт не должен иметь двойных толкований на то он и стандарт! Ни каких и/или. Для каждого файла, папки оговоренные правила, а то один вставит версию в архив дистрибутива, а другой только дату в имя папки. Это уже не стандарт получается, а анархия (что мы уже имеем в настоящее время).
Цитата:

Цитата volk1234
это уже есть в п.1 тоже самое по остальным пунктам »

Это Вы здорово прокомментировали! Я что то пропустил или Вас уже назначили "Главным редактором" "стандарта"!? Коли так, тады Ой!!! Я считал, что каждый вправе высказываться, и решать, что должно попасть в стандарт, а что нет, будут ВСЕ, ну уж во всяком случае не Вы иначе бы я даже не стал писать!
Цитата:

Цитата volk1234
представте до чего можно достандартизироватся.
все это хорошо, но мы здесь говорим о формате файлов и папок 8.3 в составе аддонов и тудже предлогаем архивы называть в 29.3 символов »

Это вообще трудно комментировать! Где это разговор шел о формате 8.3 имени дистрибутива и папок??? Как Вы вообще все это представляете? Имя папки в формате 8.3? Имя дистрибутива с указанием названия аддона, версии, даты и все это в формате 8.3!? Приведите примеры, я свои предложения снабдил примерами, а Вы пока только пустословите.

vserd 28-02-2008 15:27 749913

Цитата:

Цитата gora
а) Название папки аддона должно содержать номер версии, что бы когда потребуется представить список используемых аддонов можно без дополнительных вопросов определить версию аддона. »

Только не это. Название папки должно быть фиксированным. Иначе вы замучаетесь отвечать что "убери WinFlip0424RU_P, и оставь WinFlip0425RU_P".

А вот название архива с аддоном ОБЯЗАНО содержать версию аддона и/или другую информацию, которая позволяет быстро и однозначно определить нужную версию.

jameszero 28-02-2008 15:58 749932

gora
Цитата:

Цитата vserd
"убери WinFlip0424RU_P, и оставь WinFlip0425RU_P" »

И не только это. Нужно учитывать, что файлы conflict и required в других аддонах могут быть не готовы к смене названия отдельно взятого аддона.

Цитата:

Цитата gora
а) Название папки аддона должно содержать номер версии, что бы когда потребуется представить список используемых аддонов можно без дополнительных вопросов определить версию аддона. »

Помоему, проще внести корректировки в диагностический аддон, чтобы он включал в архив с логами ешё и файл ADDONS.TXT, а в нём уже можно будет посмотреть версии и даты аддонов.

mercuryn 28-02-2008 16:07 749941

vserd,
Цитата:

Цитата vserd
Только не это. Название папки должно быть фиксированным. Иначе вы замучаетесь отвечать что "убери WinFlip0424RU_P, и оставь WinFlip0425RU_P".
А вот название архива с аддоном ОБЯЗАНО содержать версию аддона и/или другую информацию, которая позволяет быстро и однозначно определить нужную версию. »

Хрен редьки не слаще... так как узнать версию аддона в папке с фиксированным именем затруднительно, только через .inf или .txt. Скорее с GUI лучше вариант gora.
Для исключения попадания разных версий одного и того же отделять имя аддона от версии или даты специальным символом &, $ или разного типа скобками - WinFlip&0425RU_P, WinFlip[0425RU_P], ...

Shido 28-02-2008 16:16 749948

vserd, Согласен на все сто. Архив должен идентефицироватся однозначно имя-версия-дата, а вот для папки достаточно имени. Но и с gora я тоже соглашусь для имени 8+3 явно недостаточно.

2 All Гораздо важнее я считаю распределить префиксы для папок. Привести их в соответствие с типом и порядком отработки аддонов. Например 0-HTMLINFO(Служебный не затрагивающий дистрибутив), 1-BASECSP (Базовый набор), 2-UNOFFICIAL (Неофициальные обновления и дополнения к ОС), 3-RAID (Хаки), 4-HASHTAB_2.08 (dll или OCX SYSOC-тип), 5-WINRAR (Сторонние программы, SYSOC и SVCPACK), 6-DEL_CAM (удаление драйверов), 7-DELNETMEETING (удаление компонентов системы), 9-BCDW (сборка дистрибутива и прочий постпроцессинг), и.т.д.

mercuryn,
Цитата:

Цитата mercuryn
Скорее с GUI лучше вариант gora.
Для исключения попадания разных версий одного и того же отделять имя аддона от версии или даты специальным символом &, $ или разного типа скобками - WinFlip&0425RU_P, WinFlip[0425RU_P], ... »

Мыже вроде собирались оставить совместимость GUI и CMD-скрипта? Кажется скобки и др служебные символы пролетают. Я не прав?

gora 28-02-2008 16:52 749978

Цитата:

Цитата mercuryn
Для исключения попадания разных версий одного и того же отделять имя аддона от версии или даты специальным символом &, $ или разного типа скобками »

Этого делать НЕЛЬЗЯ. Скрипт при работе не обработает/не правильно обработает спец. символы. Они в cmd зарезервированы на определенные операции и использовать их в других целях НЕЛЬЗЯ!
Если уж нужно как то выделить неизменяемую часть, то лучше использовать "нейтральные" символы, например так: WinFlip__0424RU_P

mercuryn 28-02-2008 16:53 749980

Shido,
Цитата:

Цитата Shido
Я не прав? »

- да.
А причём
Цитата:

Цитата Shido
префиксы для папок »

в имени аддона?

Shido 28-02-2008 16:57 749985

Цитата:

Цитата mercuryn
А причём
Цитата Shido:
префиксы для папок »
в имени аддона? »

mercuryn, Порядок отработки аддонов я задаю именно таким образом. До сих пор ни каких проблем за всё время использования пакета не было, считаю что порядок отработки аддонов очень важен т.к. почти полностью исключает перехлёст файлов разных версий, разного рода конфликты и.т.п. вещи

mercuryn 28-02-2008 16:58 749987

gora, По поводу & и $ я погорячился, но дейсвительно, есть -, _, ...

Shido,
Цитата:

Цитата Shido
Порядок отработки аддонов я задаю именно таким образом. До сих пор ни каких проблем за всё время использования пакета не было, считаю что порядок отработки аддонов очень важен т.к. почти полностью исключает перехлёст файлов разных версий, разного рода конфликты и.т.п. вещи »

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

gora 28-02-2008 17:16 749997

Цитата:

Цитата vserd
Иначе вы замучаетесь отвечать что "убери WinFlip0424RU_P, и оставь WinFlip0425RU_P". »

Это ж каким ... нужно быть, что бы поместить в папку пака два одинаковых аддона, но разных версий!? Они будут стоять один за другим и не заметить, что их два просто ну очень трудно (если я Вас правильно понял).
Цитата:

Цитата jameszero
Нужно учитывать, что файлы conflict и required в других аддонах могут быть не готовы к смене названия отдельно взятого аддона. »

Довод действительно серьезный и возразить сложно, но... Это касается некоторых весьма специфических аддонов авторами которых являются гуру и такие аддоны могут быть и исключениями из общего правила.
Цитата:

Цитата jameszero
проще внести корректировки в диагностический аддон, чтобы он включал в архив с логами ешё и файл ADDONS.TXT, а в нём уже можно будет посмотреть версии и даты аддонов. »

Так это уже потом я узнаю какую же я версию установил, а мне хотелось бы просто, глянув в папку с аддонами, узнать, что там у меня и каких версий без дополнительных рысканий по папкам аддонов в поисках нужной информации. А так мне трудно определить, что у меня за аддон ResPatch будет установлен, то ли от Jekson07, то ли от YuriPet, то ли от zuckij. И какая это версия (а их там так много ;) )
Я думаю, что в большинстве случаев имя папки аддона с указанием версии это больше благо, чем вред! ИМХО.

vserd 28-02-2008 18:46 750049

gora,
Цитата:

Цитата gora
Это ж каким ... нужно быть, что бы поместить в папку пака два одинаковых аддона, но разных версий!? »

Слушай, ты прям первый день на форуме.... Люди совершают и более простые ошибки... :(
А если у тебя будут папки
VistaPatchJ07_080226
VistaPatchYP_080229
VistaPatchZJ_260208
то новички практически гарантированно будут интегрировать их все..... И твой ответ будет "Выбери один из..., и интегрируй..."

Особенно "класно" будет если окажется что две очень похожие программы будут иметь очень близкое расположение.
Например так:
WinFlip0424RU_P,
WinFlup0867RU_P,
и пользователи будут их переодически грохать промахиваясь мимо нужного... или переписывать один аддон другим...

Цитата:

Цитата gora
Так это уже потом я узнаю какую же я версию установил, а мне хотелось бы просто, глянув в папку с аддонами, узнать, что там у меня и каких версий без дополнительных рысканий по папкам аддонов в поисках нужной информации. А так мне трудно определить, что у меня за аддон ResPatch будет установлен, то ли от Jekson07, то ли от YuriPet, то ли от zuckij. И какая это версия (а их там так много ) »

Если будет стандартизировано имя файла с дополнителой инфой, например : VERADDON.TXT, то написать файлик/батник который будет брать этот VERADDON.TXT и складывать в общий файл VersionAddonsFile.txt, а ты его уже будешь просматривать.
Этот батник войдет в стандартную поставку UpdatePack, и заморачиваться с пробеганием по всем папкам не нужно будет. Да и на форуме будет проще выкладывать списки аддонов, больше инфы будет.
Единственная проблема это чтобы автора аддонов обновляли его....


Всем
Сразу давайте оговаривать как будем писать даты в файлах. Предлагаю YYMMDD (год, месяц, день). Например так NAME_YYMMDD_Version.7z
такие файлы будут удобно располагаться по "дате выпуска". И если нужно будет быстро удалить старые версии, не прийдется долго бегать по списку и выбирать.

gora 28-02-2008 19:23 750084

vserd, проблема совместимости аддонов (из-за чего и папки предлагается оставить с постоянными именами) не решается даже если сделать их (названия) постоянными. Обрисую возможную ситуацию.
Есть аддон ResPatch от zuckij, например, он заменяет ресурсы, тему, курсоры, звуки. Это какую ж надо сделать исследовательскую работу, что б отловить по форуму все аддоны каким либо образом меняющие эти компоненты тоже!!! Представляете каков будет список таких аддонов с которыми нельзя устанавливать аддон ResPatch от zuckij. Но это еще не все! Аддон выложен и живет своей жизнью без обновлений, а список каждый день пополняется разными вариантами аддонов со звуками, с темами, курсорами и т.д. Что делать? Проводить мониторинг форума постоянно, скачивать все подозрительные аддоны, проверять их на предмет совместимости и включать их в свой черный список, а затем перевыпускать свой аддон с измененным списком!? На это ни у кого не хватит времени, сил, трафика.

Итог: проблема совместимости аддонов решить "неизменностью" названия аддона не удастся! Пользователь все равно должен понимать, что если он ставит аддон ResPatch с заменой курсоров, а потом еще и отдельный аддон с курсорами, то он непременно нарвется на неожиданный результат. :( Пользователь должен думать!!! Помогать ему не делать ошибок - наша задача, но отучать его думать - НЕТ. ИМХО

Цитата:

Цитата vserd
Например так NAME_YYMMDD_Version.7z »

С этим я полностью согласен, но мне больше нравиться так: NAME_Version_YYMMDD.7z

vek 28-02-2008 19:37 750089

All
Что то стандартизация аддонов начинает превращаться в стандартизацию архивов, в которые они запакованы. Считаю что:
1) Имя папки аддона должен выбирать сам автор, исходя из того как (а главное когда) он считает нужным чтобы скрипт интегрировал его аддон в дистрибутив.
2) Применять стандарты к имени архива в который запакован аддон, по моему просто глупо. Я, например, храню аддоны в распакованом виде в отдельной папочке. И зачем мне нужен этот стандарт?
3) Исходя из вышеизложенного, считаю что файл addon.nfo в папке аддона вполне самодостаточен. Из него Вы сможете узнать и версию и дату и билд и название программы :).

Jekson07 28-02-2008 19:49 750099

vek,
Цитата:

Исходя из вышеизложенного, считаю что файл addon.nfo в папке аддона вполне самодостаточен. Из него Вы сможете узнать и версию и дату и билд и название программы.
Полностью согласен, всё должно быть отражено в файле addon.nfo и этой информации вполне достаточно, а не в названиях архивов и папок.
Название архивов пользователь может переименовывать и сам на своё усмотрение, как ему удобно.

NRG 28-02-2008 20:09 750114

vek, Jekson07, поддерживаю этих ораторов, файла addon.nfo достаточно !

vek 28-02-2008 20:15 750118

В этой теме начался разговор об именах папок, файлов, архивов... По моему мы отклонились от темы, которую затронули в посте 343. А там значилось, что необходима инструкция по созданию аддонов, с чем я полностью согласен. Дело в том, что людей до конца осознающих структуру аддонов не так уж и много на этом форуме, и Инструкция по их созданию восполнит пробелы в заниях. Поэтому предлагаю обсудить содержание будующей инструкции, а затем наполнить его содержимым. Вобщем вернуться на несколько десятков постов назад и начать сначала.
Свое видение содержания я изложил
По поводу классификации на 4 типа не очень понятно. Ведь по сути их два. Остальные комбинированные. Но рассматривать комбинированные аддоны, по крайней мере сейчас, наверное не стоит. Сначала нужно уяснить принцип работы первых двух, а потом вопросов с комбинацией аддонов наверное и не будет.

gora 28-02-2008 21:00 750141

Цитата:

Цитата vek
По моему мы отклонились от темы, которую затронули в посте 343. А там значилось, что необходима инструкция по созданию аддонов »

Что то у меня со зрением!?
Цитата:

Цитата mercuryn
Господа Авторы аддонов!
Хотелось бы обратить Ваше внимание на следующую проблему - стандарты в технологиях оформления и использования аддонов. »

Цитата:

Цитата mercuryn
аддоны должны соответствовать целому ряду стандартов, »

Цитата:

Цитата mercuryn
На мой взгляд, стандарты в оформлении и технологии аддонов и следование им являются тем краеугольным камнем, обеспечивающим при коллективной распределённой работе совместимость результатов (некий аналог ISO9000). »

Так с чего все началось и кто отклонился от темы? ;)

volk1234 28-02-2008 22:32 750209

Цитата:

Цитата vserd
Сразу давайте оговаривать как будем писать даты в файлах. Предлагаю YYMMDD (год, месяц, день) »

Цитата:

Цитата gora
С этим я полностью согласен, но мне больше нравиться так: NAME_Version_YYMMDD.7z »

В принципе согласен, но лучше как и сказал vek рекоммендовать это, а не настаивать.

Цитата:

Цитата gora
Что то у меня со зрением!?
Цитата mercuryn:Господа Авторы аддонов!
Хотелось бы обратить Ваше внимание на следующую проблему - стандарты в технологиях оформления и использования аддонов. » »

Я переименовал пост #343. Ещераз предлагаю всем присоединятся к написанию инструкции по созданию аддонов. Ветке уже второй год, и второй год откровенно жевались сопли по поводу инструкции по написанию аддонов. Те кто умеет все, не имели времени написать ее, а те кто хотели написать не имели знаний.

Цитата:

Цитата gora
Это Вы здорово прокомментировали! Я что то пропустил или Вас уже назначили "Главным редактором" "стандарта"!? Коли так, тады Ой!!! Я считал, что каждый вправе высказываться, и решать, что должно попасть в стандарт, а что нет, будут ВСЕ, ну уж во всяком случае не Вы иначе бы я даже не стал писать! »

Не надо психовать на пустом месте . Я просто указал, что эта информация уже есть, зачем писать одно и тоже 10 раз. Есть масса неохваченых тем, которых я и многи авторы не знают и не делали. И коли я начал это обсуждение(не сильно стремясь кстати), а Vadikan прикрепил пост в шапку, то мне ее и редактировать. В этом смысле я редактор, но отнюдь не главный. Как только составим инструкцию, тогда и будет что редактировать.

Насчет версий и даты в названиях, я связался с Boasoft и предлжил для GUI в разделе аддонов внести две колонки: дата и версия аддона, информация будет братся из addon.nfo
поэтому и важно стандартизировать его структуру.

prokazzza 28-02-2008 23:00 750234

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

Может давайте еще выпустим справочник/учебное пособие "Стандартизация при создании Аддонов для чайников" :lol:

volk1234 28-02-2008 23:06 750239

Обновлена инструкция.
*подкоректированно описание формата файлов(из формата8.3 исключены папки).
*Добавлена рекоммендация о именах архивах с аддонами
+Добавлен скелет структуры аддонов
+В раздел аддоны типа SVCPACK добален скелет конфигурационных файлов применяющихся для данного типа, жду ваших предложений

prokazzza
Вы вместо общих обсуждений, напишите что-нибудь про аддоны изменяющие дистрибутив.

no404error 28-02-2008 23:22 750251

Ну лично я против версий. Прочитал все и не вижу смысла в них. В чем смысл версии если есть дата? Тот же UPK версия это дата - год.месяц.день.

Vadikan 29-02-2008 00:49 750299

По поводу версий... если их внедрять, то можно следовать принципу версий набора обновлений (Y.M.D)

All
Прошу не переходить на личности и вести конструктивное обсуждение. Если вы не согласны с чьим-либо мнением, приводите аргументы, а не "хлопайте дверью". Помните, что не может быть решения, которое удовлетворит всех, поэтому надо стремиться к компромиссу.

Текущая версия будет находиться с ообщении volk1234, поскольку он первым предложил осмысленный вариант инструкции. К сожалению, я не могу быть третейским судьей, поскольку не занимаюсь аддонами, но вы можете попросить модераторов форума выступить в этой роли. Просто четко сформулируйте проблему, по которой не удается достичь компромисса, и обратитесь к ним.


Цитата:

Цитата prokazzza
Может давайте еще выпустим справочник/учебное пособие "Стандартизация при создании Аддонов для чайников" »

Это планируется, но после создания единого стандарта и рекомендаций ;) <-- это шутка

Vadikan 29-02-2008 07:08 750371

All
Предлагаю вернуться к обсуждению стандартов аддонов, а все предложения и пожелания по сайту/оффлайн версии направлять в тему Оффлайн версия сайта (6.0), куда и были перенесены несколько последних сообщений.

mercuryn 29-02-2008 10:10 750428

no404error, немножко погулял по аддонам прошлого года, и нашлись ситуации, где небольшие ошибки исправлялись по два (три) раза в день. При наличии только даты - такой аддон не отличишь, была бы версия или другой признак - нет проблем.
А ведь есть пользователи, которые взяв первый вариант такого аддона и в целях экономии траффика продолжат работу, а потом засыпят форум вопросами о проблемах...
Есть много вариантов упорядочивания библиотеки аддонов, но в основном по архивам или по распакованным архивам (в том числе и в папке Addons), и комбинированном . В зависимости от этого и варианты упорядочивания или имён архивов или папок, ну а некоторые предлагают систему анархии...
Я бы, с учётом личного опыта, предложил:
1. Имена архивов - ХХХ...ХХХ.vYYY-ГГММДД-ФИО.7z(rar)
2. Имена папок -ХХХ...ХХХ
3. В папке - ХХХ...ХХХ.vYYY-ГГММДД-ФИО.NFO

Где ХХХ...ХХХ - имя аддона и папки, отделяется от дополнительной информации точкой, - ограничение количества симфолов - ?
vYYY - номер версии продукта, если отсутствует, v-
далее дата и, если аддоны разные, по 3 символа от ника.
Название NFO совпадает с именем архива.
Но обязательно нужна программа для получения короткой справки о составе аддонов и их версий в папке Addons.
В данном предложении я ничего нового не предлагаю, просто компромисно упорядочил уже звучавшие предложения...
Мне кажется что это упорядочивание только начальная часть выработки согласованных элементов стандартов (соглашений).
Кстати, тем кто кроме Windows работают или работали (или принимали участие в разработке) с юниксоидными системами, должно быть знакомо понятие принятых соглашений (стандартов). Без этих правил ни одна распределенная разработка ОС не появилась бы на свет...
PS
Доже реализация такого соглашения позволила бы упростить анализ проблем при при создании дистрибутива ОС всех категорий пользователей.

volk1234 29-02-2008 11:32 750481

Цитата:

Цитата mercuryn
ограничение количества симфолов - ? »

Вот и меня волнует этот вопрос, не будет ли багов если в названии папки аддона будет больше 8 сиволов.
Из инструкции я убрал рекомендацию по пакам оставив только файлы.А ну как speccase conflict будут глючить....

В очередной раз про имена архивов: может стоит всех авторов привести к выработке версий аддонов по аналогии с Upadate Pack -
по дате? Сразу упреждаю mercuryn если один аддон вышел дважды в день - на конуе добавляется счетчик N.
AddonNameProgramVersion_date(version)Y.mm.dd_N. Соответственно если в один день не выпускалось 2 версии аддона, счетчика не будет.
пример: DrWeb444_8.2.29
в случае обнаружения ошибки и\или переделки аддона в тотже день DrWeb444_8.2.29_2 и тд.

Цитата:

Цитата Shido
Гораздо важнее я считаю распределить префиксы для папок. Привести их в соответствие с типом и порядком отработки аддонов. »

я не совсем понимаю что это даст, поскольку все и так замечательно работает, но может быть вы напишите пару абзацев для новичков как пользоватся префиксами.

Drinko 29-02-2008 11:43 750486

Цитата:

Цитата volk1234
Вот и меня волнует этот вопрос, не будет ли багов если в названии папки аддона будет больше 8 сиволов. »

Не будет :)

mercuryn 29-02-2008 15:05 750631

volk1234, вопрос о конечном варианте - коллективная работа. Предложен комплексный вариант...
Имя папки в архиве отделяется от прочей информации нейтральным символом - точкой или тире, что оставляет возможность анализа. Учтено и то, что авторов вариаций одного аддона может быть несколько...

volk1234, буду Вам очень признателен, если Вы прекратите раздирать по собственному разумению на части комплексные предложения, тем более, что Вас об этом уже просили...

Лучше выскажите собственное мнение по этому вопросу...

volk1234 29-02-2008 18:06 750763

Цитата:

Цитата mercuryn
буду Вам очень признателен, если Вы прекратите раздирать по собственному разумению »

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

volk1234 02-03-2008 03:49 751591

Обновлена инструкция.
+Добавлено определение аддона раздел А.
+Добавлен конфигурационный файл OUT.ini(Кстати он еще нужен? и почему нет нигде упоминания о Distr.ini ???) раздел А. пункт3.16
+Добавлено описание sysoc (усилено читаю учебник по inf) ;) Раздел B пункт 1.
+Добавлен пример аддона sysoc - FoxitReader Раздел B пункт 1.
+Парочка нюансов sysoc -в конце Раздел B пункт 1 (NB)
+Нюанс svcpack -в конце Раздел B пункт 2 (NB)
*Подправлены опечатки

ёмоё ктонибудь будет помогать или как..?

Drinko 02-03-2008 05:14 751599

volk1234,

Цитата:

Цитата volk1234
3.16 Out.ini по аналогии с Distr.ini »

Нет описания ни того, ни другого ;)

Далее...
Цитата:

Цитата volk1234
3.10 Addon.nfo »

Цитата:

Цитата volk1234
3.Конфигурационные файлы »

Не совсем верно, это больше Информационные файлы

нет описания HTML.NFO для [addon] HTMLINFO
Цитата:

Цитата asmol
Вся информация берется из файла HTML.NFO и только в случае его отсутсвия из файла ADDON.NFO »

Далее...
Цитата:

Цитата volk1234
2.Аддоны использующие для интеграции SVCPAC »

Цитата:

Цитата volk1234
когда уже доступны все инструменты GUI: реестр, учетные записи..???? »

Учетные записи еще не созданы! (почитайте Процесс установки по минутам)
Цитата:

Цитата volk1234
Если исполняемых файлов или SFX архивов в аддоне несколько, порядок их запуска определяется в конфигурационном файле Run »

Если необходимо одновременно запустить на выполнение несколько фалов, их необходимо прописать в .cmd файле

Надеюсь хоть немнго помог :)

volk1234 02-03-2008 11:35 751678

Цитата:

Цитата Drinko
это больше Информационные файлы »

так у petya v4sechkin, я лишь продублировал.Надо же како-то обобщить их.
Цитата:

Цитата Drinko
Учетные записи еще не созданы! »

Ну уж УЗ System уже присуствует :) Хотя написал я неверно.
Цитата:

Цитата Drinko
Если необходимо одновременно запустить на выполнение несколько фалов, их необходимо прописать в .cmd файле »

так тоже можно согласен. Но ведь и в Run тоже отрабатывает. См.мой аддон http://forum.oszone.net/attachment.p...3&d=1200251825

По поводу HTMLInfo - это всеже дополнение к существующему порядку addons.nfo. Поэтому, если вам нетрудно опишите htmlinfo в ключе дополнительной опциии, как файлы подготавливать и тд. Я лично не пользую \htmlinfo\

кстати насчет
Цитата:

Цитата Drinko
(почитайте Процесс установки по минутам) »

на каком этапе создается реестр? На этапе копирования файлов???
спустя некоторое время: на этапе txtsetup ?

Drinko 02-03-2008 14:44 751777

Цитата:

Цитата volk1234
на каком этапе создается реестр? На этапе копирования файлов??? »

После Т-39 но до Т13 (более конкретно сказать не могу :( ) На этане копирования создается шаблон (основа)...

ЗЫ Хотя немного не правильно, реестр создаетя на всем этапе установки, вопрос в том какие разделы (ключи) создаются на каждом конкретном этапе...

volk1234 02-03-2008 16:38 751832

Уррра! Я сам разобрался в устройстве sysoc !!!

Обновлена инструкция.
+Добавлено описание SYSOC и механизм его работы(теперь описание этого типа практически закончено) Раздел В.пункт 1.
+Нюанс аддонов с изменением компонетов -в конце Раздел B пункт 4 (NB)
*Чуть добавлен пример аддона sysoc.
*Подправлены опечатки

Все еще существует 2 вопроса:
1.Out.ini Distr.ini что это и для чего?
2.Для чего в аддоне dosnet.ini ???

про реестр - фактически на текстовом этапе копируются ульи реестра -прототип. Но учитывая что из инф файлов добавляются уже ветки в реестр, следовательно он существует с момента записи на диск. Несмотря на то что это фалы, для записи в них из inf, advinf.dll должна знать про его внутреннее устройство -bin, секции, метки...а раз она работает с реестром, значит он уже есть

jameszero 02-03-2008 17:25 751846

volk1234

Distr.ini - обязательный конфигурационный файл, в котором указывается путь к исходному дистрибутиву.
Out.ini - опциональный конфигурационный файл. В нём указывается путь, по которому нужно скопировать дистрибутив, а затем обработать. При отсутствии файла Out.ini обработка происходит по пути указанному в Distr.ini

dosnet содержит список файлов добавляемых в txtsetup и используется только при установке Windows с жёсткого диска.

volk1234 02-03-2008 19:10 751904

Ясно эти файлы(Distr out) больше к паку относятся

vserd 03-03-2008 10:53 752248

Цитата:

Цитата volk1234
на каком этапе создается реестр? На этапе копирования файлов???
спустя некоторое время: на этапе txtsetup ? »

Где-то на этапе текстовой установки. Минимально необходимый. На T-40 он уже есть, и в него можно добавить инфу, которая возможно будет перекрыта на более поздних этапах.

vserd 03-03-2008 13:17 752342

volk1234,
Может так сформулировать (выделено жирным)?
Аддон - программа для интеграции в дистрибутив (или изменения дистрибутива) Windows XP\2003 посредством скрипта UpdatePack от Petya V4sechkin. Для создания аддонов необходимо
следовать некоторым правилам и стандартам, которые мы далее и будем описывать.

volk1234 03-03-2008 13:40 752356

Обновлена инструкция.
+Добавлено описание аддона-конструктора
+Добавлен пример адона-конструктора SVCPACK (все в разделе B. пункт 2)
+Начал описание смешанного типа аддонов (раздел B. пункт 3)
*В приложения решено добавить аддон пример Puntoswitcher и аддон конструктор Klite codec Pack от jameszerro(раздел С)
*Переработано описание SVCPACK
* изменил определение аддона:
Аддон - программа для интеграции в дистрибутив Windows XP\2003 сторонних программ или изменение дистрибутива посредством скрипта UpdatePack от Petya V4sechkin.

[!]требуется помощь разьяснение как работает аддон WMP 11. Интуитивно я догадываюсь...
[!]описание 2 главных типов практически закончено, кто может рассказать про аддоны патчеры????

Boa Soft 03-03-2008 18:34 752583

Цитата:

Цитата vserd
Цитата volk1234:
на каком этапе создается реестр? На этапе копирования файлов???
спустя некоторое время: на этапе txtsetup ? »
Где-то на этапе текстовой установки. Минимально необходимый. На T-40 он уже есть, и в него можно добавить инфу, которая возможно будет перекрыта на более поздних этапах. »

В конце процесса установки текстового этапа. После окончания копирования, перед перезагрузкой.
Кажется, пишется инициализация реестра. Реестр создается на основе inf-файлов, перечисленных в секциях

Код:

[HiveInfs.Fresh]
[HiveInfs.Fresh.RemoteBoot]
[HiveInfs.Upgrade]



Код:

hivecls.inf
hivedef.inf
hivesft.inf
hivesys.inf
hiveusd.inf


В зависимости от ситуации (чистая, обновление, сетевая).

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

volk1234 07-03-2008 00:26 755068

Обновлена инструкция.
+Мелкие добавления, на тему SYSOC, префиксов
+Файл Txtsetup.sif Перевел статью Gosh c MSFN. Размещена в этом посте, поскольку в тот уже не влазит :)

Помощи, за небольшими приятными исключениями, так и нет :(

Кто нибудь из авторитетных товарищей почитайте статью про txtsetup, может что добавить есть...
Файл Txtsetup.sif
Перевод статьи Gosh c MSFN.
читать дальше »

Txtsetup.sif - это как и понятно из названия файла Text setup system information file - файл установки текстового режима. После текстового режима, этот файл не нужен системе, поэтому он не копируется из дистрибутива не защищен цифровой подписью и не включен в состав файлов защищаемых SFC. В связи с этим, Txtsetup.sif идеально подходит для целей автоустановки, добавления-удаления компонентов и записей реестра.

Добавление\удаление записей

Удалить строку из txtsetup.sif проще простого - любой текстовый редактор это может. Также можно закомментировать строку точкой с запятой (что лучше, если вы не знаете что делаете).
А вот добавить строку сложнее, требуется знать синтаксис.

Синтаксис записи в секции копирования txtsetup.sif:
filename_on_source= diskid, , , , , , , subdir, upgradecode, newinstallcode, spare, spare, newfilename, flag, unknown

Рассмотрим пример:
Код:

locsecw.chm = 1, , , , , , , 21, 0, 0, localsec.chm
[locsecw.chm]-файл дистрибутива (понятно, что он находится в i386)
[1] - соответствует секции [SourceDisksNames.x86] в txtsetup.sif. В данном случае параметр [1] означает,
что файл из оригинальной (RTM) сборки. Значение [100], например, означает принадлежность файла к SP1, SP2.
Отвечает на вопрос ОТКУДА?

[,,,,,,,] - пустые параметры отделенные знаками запятой специфика winnt систем. Точные значения неизвестны.

[21] - указывает папку назначения, секция [WinntDirectories], в данном случае %Windir%\Help
Отвечает на вопрос КУДА?

[0] - upgradecode - режим копирования файла. Предназначен для корректного обновления с нижних ОС.
значения:
0-Копировать всегда
1-Копировать только если файл присутствует в папке назначения
2-Не копировать если файл присутствует в папке назначения
3-Не копировать файл

[0] - newinstalcode - указывает на "чистую установку". Опционально. Если не указан, используется значение по умолчанию = 3, файл не копируется.

[localsec.chm] - новое имя, переименовывает при копировании.
Интересное отступление: в первоначальном имени присутствует буква w. Gosh предполагает, что w -сокращение от workstation, а p - Personal. Так планировалось называть версии XP, аналогично Professional и Home.
cmconW.chm = 1, , , , , , , 21, 0, 0, cmconcepts.chm - xp pro txtsetup.sif
cmconP.chm = 1, , , , , , , 21, 0, 0, cmconcepts.chm - xp home txtsetup.sif


[flag] - флаг копирования (подробнее смотрите руководство по работе с inf-скриптами).
[unknown] - пока не могу сказать, что это, но в родном файле используется для драйверов и системных файлов, значения от 2 до 180.

Теперь рассмотрим другой пример:
Код:

autofmt.exe = 1, , , , , , _x, 2, 0, 0, , 1, 2
[_x] означает, что файл дистрибутива не сжат. Если [_x] отсутствует, программа установки предполагает, что файл сжат. Каждый файл XP перечислен в layout.inf, вместе с размером в байтах. Размер в байтах очевидно зависит от того, сжат ли файл или нет. Если txtsetup.sif укажет установке, что файл не сжат, то установщик будет сравнивать размер файла с layout.inf, чтобы удостовериться что размер не был изменен. Если размер файла не соответствует тому, что указан в layout.inf, установка xp может быть прервана ошибкой.

NB.Если устанавливается сторонняя программа, размера и имени которой нет в layout.inf, необходимость использования параметра [_x] отпадает.

NB2 Txtsetup.sif не сообщает установке место нахождение файлов. Его единственная функция скопировать в нужную папку нужный файл. Txtsetup.sif запускается после того как dosnet.inf скопирует дистрибутив в C:\$WIN_NT$. ~ LS. Txtsetup.sif предполагает, что исходные файлы постоянно находятся в этой папке. При установке с CD\DVD
все проще, потому как, файлы сразу переписываются в %windir%. В таком варианте dosnet.inf скорее выполняет второстепенные функции по указанию путей копирования.
Фактически, txtsetup.sif отвечает за копирование файлов, обеспечение удаления старых папок при апгрейде, создании кустов реестра, первоначальной загрузкой критических драйверов.

(с) Gosh http://gosh.msfn.org/txtsetup.htm
-------------------------------------------------------------------
авторский перевод + мелкие дополнения Volk1234

Пример txtsetup.sif для аддона CCleaner

[SourceDisksFiles]
Cleaner.inf = 100,,,,,,,20,0,0
CCleaner.cab = 100,,,,,,_x,,3,3

1. Как видим использован параметр [100] то есть указание на SP2(что не очень принципиально)
2. Inf Файл копируется в папку %Windir%\inf [20] для возможности деинсталяции аддона
3. Cab файл в папку Windows не копируется [,3,3] и несжат[_x](?). Файлы из cab просто устанавливаются с помощью одноименного inf.

Boa Soft 07-03-2008 00:56 755086

volk1234, отличная полезная статья. Не могу согласится только с одним:

Цитата:

Цитата volk1234
Фактиически, за исключением копирования файлов txtsetup.sif больше ничего и не делает. »

Этот файл отвественен еще за многое - обеспечение удаления старых папок при апгрейде, создании (заполнении информацией?) кустов реестра, первоначальной загрузкой критических драйверов и многих других базовых вещей. Достаточно полистать файл и посмотреть на название секций и их содержание.

Vadikan 07-03-2008 01:02 755089

volk1234, я на досуге отредактирую и добавлю в Справочник, пожалуй

На сайте есть немного информации, но она в разделе установки драйверов Параметры [SourceDisksFiles]

volk1234 07-03-2008 01:21 755108

Boa soft исправил

Vadikan
http://oszone.net/3123

Цитата:

Необходимые запятые. Минимум - 6 запятых; 7 запятых для хигнорирования следующего параметра (3_ или _х)
не совсем верно в свете статьи gosh и http://www.msfn.org/board/Switches-T...IF-t14852.html
я не включал в статью, так как не видел практического смысла, но там пишут:
Цитата:

Цитата rasken
I've also noticed that with a CD install the [SourceDisksNames] are all the same. I believe that these are really just dummy files (especially 2_ through 6_). I would also suspect that in your own modifications to TXTSETUP.SIF you could probably replace 3_ with 1_ through 6_ and have success...haven't tested it though.

Цитата:

Цитата Bilou_Gateux
Maybe this number 3_ is just used to recreate the Setup Boot floppies with makeboot or makebt32 tool.
3_ means put the file on the 3rd disk
4_ means put the file on the 4th disk
because there is 4 setup boot floppies on Windows 2000

on Windows XP, there is 6 setup boot floppies

Если кто не знает англиского, первый постер утверждает что параметр 3_ можно заменить любым значением вроде 1_, 4_(не проверено)
второй постер предполагает, что данный параметр лишь разбивает(относит) файлы по дискетам, для загрузочных дискет WinXP(которых как и параметров 6 штук)

может кто лучше обьяснит.
а кстати в этойже ветке и Вадикан засветился:)
Цитата:

Цитата Vadikan
"1- Original or RTM." What is RTM?


Drinko 07-03-2008 04:50 755142

volk1234,
Вот более точная информация по этапам установки:
Код:

Первый этап в текстовом режиме:

1. Запуск загрузчика установочного диска boot/ntboot.bin.
2. Запуск i386/bootfix.bin.
3. Запуск i386/setupldr.bi.
4. Чтение и интерпретация i386/txtsetup.sif, i386/winnt.sif и других *.sif.
5. Загрузка драйверов оборудования.
6. Запуск system32/ntdll.dll и system32/smss.exe.
7. Копирование файлов с дистрибутивного диска.
8. Обновление hive*.inf в реестр.
9. Перезагрузка.

Второй этап продолжается в графическом режиме.

1. 39 минут – запуск setup.exe/syssetup.dll (syssetup.inf).
2. Загрузка nt5.cat и *.cat.
3. Выполнение *.inf.
4. Запуск ocmanage.dll.
5. Определение оборудования (machine.inf).
6. 37 минут – установка драйверов устройств.
7. Запуск intl.cpl (intl.inf).
8. Запрос CD-KEY.
9. Установка компонентов ОС (sysoc.inf).
10. 32 минуты – установка поддержки сети.
11. 29 минут – копирование всех необходимых файлов ОС.
12. 25 минут – завершение установки.
13. 22 минуты – установка меню «Пуск» (shell.inf).
14. 18 минут – регистрация компонентов (OLE regsrv).
15. 13 минут – запуск $OEM$/Cmdlines.txt.
16. 9 минут – сохранение параметров.
17. 8 минут – сохранение настроек (sfc.dll сканирует все системные файлы для создания базы WFP).
18. Создание signhash Hardware ID.
19. Удаление временных файлов.
20. Перезагрузка.

Третий этап продолжается в графическом режиме:

1. Включение oobeinfo, активация копии системы.
2. Добавление пользовательских бюджетов.
3. Применение установок.
4. Настройка пользовательских профилей.
5. Запуск команд из секции GuiRunOnce.
6. Загрузка рабочего десктопа.


volk1234 07-03-2008 11:29 755255

Drinko,
пропустили в п 13-17
(по вашей же ссылке)
4.Setup installs Start menu items and makes changes to the registry.

5. Setup sets file and folder permissions to protect the new operating system, for example, for files in the root directory, the system root folder, and the registry.

volk1234 08-03-2008 00:15 755685

Чуток подкорректировал статью про txtsetup
в варианте gosh небыло флагов.
Добавил флаги копирования в шаблон.
Добавил неизвестный параметр, скорее всего тоже флаг.(1,,,,,,,20,0,0,newname,4,22)

IDDQDesnik 08-03-2008 16:41 755994

Народ! нет аддонов SYSOS, есть SYSOС и файл называется sysoc.inf поправьте статью

volk1234 08-03-2008 17:13 756021

IDDQDesnik
Исправил 2 опечатки

Anakin 09-03-2008 14:04 756451

Vadikan, вы планируете включить в учебник по автоустановке новый материал о процессе по минтуам, который предоставил Drinko?

Vadikan 10-03-2008 18:33 757200

Цитата:

Цитата Anakin
Vadikan, вы планируете включить в учебник по автоустановке новый материал о процессе по минтуам, который предоставил Drinko? »

Где? Я не читаю все темы и сообщения форума. Еще раз повторяю, все предложения по улучшению сайта/оффлайн версии следует направлять в тему Оффлайн версия сайта (6.0)

Vadikan 10-03-2008 19:48 757306

Цитата:

Цитата Drinko
Вот более точная информация по этапам установки: »

В списке не указано, на каком этапе выполняются команды из svcpack.inf.

volk1234 18-03-2008 00:43 762533

Обновлена инструкция.
+Мелкие исправлния
+Файл Sysoc.inf. Собрал что смог. Размещена в этом посте, поскольку в тот уже не влазит :)
+Сделал учебный аддон для "чайников" с описанием. В следующем посте


Файл Sysoc.inf
читать дальше »


SYSOC.INF

Здесь немногое что удалось собрать.
Sysoc - System Optional Components - диспетчер установки дополнительных компонентов ОС.
В процессе выполнения программы установки выполняется файл sysoc.inf, посредством библиотеки ocgen.dll и других.
Состоит в основном из секций [Components] где указываются устанавливаемые дополнительные компоненты.

Синтаксис:
WGA= ocgen.dll, OcEntry, Pck_WGA.inf, HIDE, 7

WGA- имя исполняемой секции
ocgen.dll- библиотека обработчик sysoc
OcEntry- команда ocgen.dll (нечто вроде точки входа)
Pck_WGA.inf- название inf файла устанавливаемого компонента
Hide- скрыть компонент
7- флаг (неизвестно) для ocgen.dll всегда равен 7

-Для интеграции установки через Sysoc в ваш inf-файл необходимо добавить секцию:
Код:

[Optional Components]
Имя исполняемой секции

-Для размещения вашего приложения устанавливаемого через Sysoc в группе 3rdParty (Программы сторонних разработчиков)
добавьте в исполняемую сециюParent=NonMS и удалите из Sysoc параметр HIDE.
[/code]

-Параметр Modes=0,1,2,3
точное значение не известно, однако разместить его в исполняемой секции можно 2 способами:
Код:

Modes=0,1,2,3    ;аддон будет установлен по умолчанию
;Modes=0,1,2,3   ;аддон не будет установлен по умолчанию, его доустановка возможна из "Установки компонентов Windows"

Без параметра Modes аддон не будет установлен.

volk1234 18-03-2008 01:17 762548

Пример создания аддона из утилиты Netlook (для начинающих)
читать дальше »

Для примера я выбрал программку Netlook. Причина: желание совместить приятное с полезным, такого аддона еще нет, программка не очень большая,записей в реестр не делает(то есть практически портэйбл), и лично мне пригодится.
Сознательно не использовались средства автоматизации создания аддона (смотрите во втором примере), дабы пример был более наглядным.
Аддон можно скачать здесь и подробно изучить.

Этап один.

После изучения структуры самой программки, я скопировал ее в отдельную папку для экспериментов и распотрошил, извлек все файлы в одну папку. Их оказалось не много не мало, 32 штуки.
Наступило время создать inf файл собственно. Создаем заголовок.
Код:

[Version]
Signature="$WINDOWS NT$"
SetupClass=BASE

WINDOWS NT стоит использовать вместо CHICAGO, мы же не делаем аддон для win95? Кроме указания на базовый класс установки больше в заголовке ничего не пишем, пока и не нужно.
Затем создаем самую главную секцию нашего inf-файла - исполняемую

Код:

[DefaultInstall]
CopyFiles=CopyMain, CopyConfig, CopyHelp, CopyHist, CopyLang, CopySkin, CopySound, CopyTools, CopyInf, RenToolsLang
ProfileItems=NL.AddShortcut

Эта секция не обязательно должна иметь такое скучное имя, но поверьте от того, что она есть вам хуже не будет.
Разбираем по строчкам: CopyFiles копирует файлы попутно создавая нужные папки, ProfileItems добавляет ярлык программы. В моем случае ( хороший стиль написания inf-файла :) ) я воспользовался уже кем-то созданной папкой по адресу Пуск\Все программы\Утилиты.
Вроде, все выглядит просто. Но, для того чтобы создать секции копирования, которые так красиво смотрятся в строке CopyFiles=, придется попотеть- создать все эти секции с перечислением файлов вручную. Вам никто не мешает проявить смекалку и используя специальные утилитки получить на руки в текстовом виде список файлов из папки куда вы их "распотрошили".
Секции я поименовал в соответствии с названием папок аддона Copymain - корневая и тд.
Далее прописываем будущую структуру папок в секции [DestinationDirs]
Не буду вас утомлять просто приведу ее
Код:

[DestinationDirs]
CopyMain=16422, "Netlook"
CopyConfig=16422, "Netlook\Config"
CopyHelp=16422,"Netlook\Help"
CopyLang=16422,"Netlook\Languages"
CopySkin=16422,"Netlook\Skin"
CopySound=16422,"Netlook\Sound"
CopyTools=16422,"Netlook\Tools\Configurator"
RenToolsLang=16422,"Netlook\Tools\Configurator\Languages"

Здесь поясню почему так называется последняя секция. Оказалось, что создатель программы Netlook, ничего не слышал про хороший стиль программирования и присвоил двум файлам в своей программе одинаковое имя. Вот и пришлось один из них переименовать (файлы то лежат вместе), с тем чтобы далее, в секции RenToolsLang при копировании в отдельную папку вернуть все обратно.
Код:

[RenToolsLang]
"russian.lng",russian2.lng,,4

И последняя секция, указывающая откуда копировать [SourceDisksNames]. Я запаковал все файлы из одной папки в cab-архив с
гордым именем netlook.cab и прописал его в inf-файле:

Код:

[SourceDisksNames]
1="NetLook Files","netlook.cab",0

Создал секцию добавления ярлыка:
Код:

[NL.AddShortcut]
Name= "Netlook 2.3"
CmdLine= 16422,"Netlook",NetLook.exe
WorkingDir= 16422,"Netlook"
SubDir= "Утилиты"
Infotip= "Netlook 2.3"


Второй этап.
Поместив inf и cab файлы рядом я проверил как устанавливается приложение. Хорошо устанавливается, клещами не вытянешь.
На этом этапе мы и будем изобретать клещи - секции для удаления нашего приложения (uninstall).
Сразу скажу, мне это далось не легко. В теории (учебнике по INF файлам) все выглядело просто. Указав в исполняемой секции AddReg= Секция добавления строк в реестр мы еще при установке приложения добавляем его в список установки\удаленимя программ.
Сама секция незамысловата и подробно описана в Учебнике. Самая важная строка это
Код:

HKLM,"%Key%","DisplayName",,"Netlook 2.3"
HKLM,"%Key%","DisiplayIcon",,"16422,"Netlook",0"
HKLM,"%Key%","UninstallString",,"rundll32.exe advpack,LaunchINFSectionEx %17%\netlook.inf,NL.Uninstall"

, нижняя запись указывает какую секцию выполнить в inf файле при удалении программы.
Наблюдательный человек сразу заметит, что путь к netlook.inf необычный, %17% = Windows\INF\
Для корректной отработки нам необходимо скопировать наш файл именно в эту директорию. Добавляем в секции копирования
Код:

[CopyInf]
netlook.inf

и добавляем в
[DestinationDirs]
CopyInf=17(Знаки процента в этой секции использовать нельзя)

Вот так вот.
Собственно секция которая отвечает за удаление должна выглядеть так: удаление файлов, удаление директорий, удаление записей в реестре, удаление ярлыков программы. У вас, наверняка, как и у меня сразу мелькнула мысль, а может просто удалить всю папку с файлами и подпапками, и дело с концом? Сразу огорчу, не получилось. Оговорюсь, не получилось методами описанными в учебнике. Есть гораздо более действенные способы.
В результате консультаций на форуме, пришлось создавать отдельные секции удаления файлов (по сути дубляж секций COPY). Зато результат был налицо - файлы удалялись.
Дальше я создал секции удаления записей в реестре(сразу после удаления программы она исчезала из списка удаления программ), удаления ярлыка и удаления директорий. Все работало замечательно. Огорчало только, то что директории не удалялись.
Учебник однозначно говорит, что вызвать DelDirs проще простого:
1)Вызвать из секции деинсталяции
Код:

Commandline="""%11%\rundll32.exe"" advpack,LaunchINFSection ""%17%\netlook.inf"",NL.DD,4"
2)затем указать саму комманду
Код:

[NL.DD]
DelDirs=dirs

3)и уже в секции [dir] указать директорию, которую необходимо прибить.

Не буду вас мучить, мне помогли добрые люди на форуме, и средства автоматизации создания аддонов, которые мы решили здесь не рассматривать.
Оказалось, во-первых DelDirs необходимо запускать только через RunPostSetupCommands, т.к. команда Run, которую я упорно мучил, принадлежит setupapi, а DelDirs запускается через advapi; во-вторых необходимо было прибить всю структуру папок снизу. Только после этого мой скрипт заработал как надо.

Секции деинсталяции аддона
Код:

[NL.Uninstall]
DelFiles=DelCopyMain, DelCopyConfig, DelCopyHelp, DelCopyHist, DelCopyLang, DelCopySkin, DelCopySound, DelCopyTools, DelCopyInf, DelRenToolsLang
DelReg=Dreg
ProfileItems        =        ShortcutD
RunPostSetupCommands=NL.AdinfCall

[NL.AdinfCall]
Commandline="""%11%\rundll32.exe"" advpack,LaunchINFSection ""%17%\netlook.inf"",NL.DD,4"

[NL.DD]
DelDirs=dirs

[dirs]
"%16422%\Netlook\Tools\Configurator\Languages"
"%16422%\Netlook\Tools\Configurator"
"%16422%\Netlook\Tools"
"%16422%\Netlook\Sound"
"%16422%\Netlook\Skin"
"%16422%\Netlook\Languages"
"%16422%\Netlook\Help"
"%16422%\Netlook\Config"
"%16422%\Netlook"

[Dreg]
HKLM,"%Key%"

[ShortcutD]
Name                =        "Netlook 2.3",0x00000002
SubDir                =        "Утилиты"

Этап третий.
Создание собственно аддона. Все что мы делали до этого - создание собственного инсталлятора для программы.
Инсталлятор готов, можно использовать его на здоровье. Вспомним структуру аддонов и приступим.
Копируем откуда-нибудь скелет аддона (хороший стиль, это чужой стиль, незабываем :)). Сразу же переименовываем главную папку аддона
своим именем, правим файл Addon.nfo где пишем информацию, которую все равно никто не будет читать. Копируем в папку Files\Forcecopy
cab и inf -файлы. Оттуда их проинтегрирует в i386 скрипт Petya V4sechkin.
Важный момент! Так как мы все делаем вручную, надо проверить папку i386 на предмет совпадений с нашими файлами, дабы не перезаписать что-нибудь важное или просто принадлежащее системе, в любом случае при совпадениях имен система копирует свой родной файл из дистрибутива, а не "чужой". К счастью, я нашел только нечто, с именем NETLOOP.inf.

Теперь нам необходимо создать в корневой папке аддона 3 файла. Начнем по порядку. Сначала наш аддона будет скопирован из дистрибутива
посредством txtsetup.sif при помощи dosnet.inf и только позднее будет обнаружен и установлен через sysoc.inf. В такой последовательности
я и предлагаю создавать файлы, незабывая, что в UpdatePack эти файлы без расширений.
Здесь же в приложениях есть статья про txtsetup . Поверьте, совсем не лишняя в багаже знаний.

txtsetup
Код:

[SourceDisksFiles]
Netlook.inf        = 100,,,,,,,20,0,0
Netlook.cab        = 100,,,,,,_x,,3,3

Комментировать нечего, inf файл при установке копируется в Windows\INF\, а cab архив не копируется, так как это наш дистрибутив.

dosnet

Код:

[Files]
d1,Netlook.inf
d1,Netlook.cab

*здесь d1 это папка i386.

Ну и собственно,

Sysoc
Код:

Netlook=ocgen.dll,OcEntry,Netlook.inf,,7
Вроде бы все готово. Однако если подумать, то в файле txtsetup мы не скопировали наш cab -файл. Обязательно надо переделать секцию указывающую
на источник копирования, дабы сообщить где искать cab.
Код:

[SourceDisksNames]
1="Netlook Files","netlook.cab",,"I386"

Но еще не все, я как все новички споткнулся на файле sysoc. Запись Netlook=ocgen.dll,OcEntry,Netlook.inf,,7 означает, что будет исполнена
секция [netlook] в файле netlook.inf. А моя исполняемая секция называлась DefaultInstall. Естественно ничего не установилось...
Кроме того, необходимо добавить в наш установочный файл секцию указывающую sysoc, что это "его" компонент и команду для автоустановки аддона:
Код:

[Optional Components]
Netlook    (указатель для sysoc на исполняемую секцию)
.....
[Netlook]
...
Modes=0,1,2,3

Также после проверки работоспособности установщика, удаляются записи о копировании inf-файла, так как txtsetup.sif скопирует его самостоятельно.
Теперь аддон готов к интеграции в дистрибутив. Интегрируем, проверяем аддон, проверяем журнал событий и выполняем qfecheck на отсутствие наличия ошибок.

volk1234 18-03-2008 01:59 762573

Цитата:

Цитата gora
Информация об использовании аддоном ключа HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx с конкретным номером(и) должна быть доступна пользователю и где то написана, например, в addon.nfo.
2 Сделать некий "стандартный" аддон »

Я как то даже не задумывался над этим.
Проблема предложенных вариантов, как и любых других в разделении ответственности: с одной стороны, что-то должны сделать авторы,
с другой пользователи должны добавить спецальный аддон(что маловероятно даже с Required).

Честно говоря незнаю других путей,
но предложить могу кое-что: Надо создать ветку здесь или на вики, допустим "Аддоны имеющие проблемы совместимости". В шапке можно
разбить по категориям аддоны. В чем плюс такой ветки: авторы видя такую сомнительную славу своего творения, будут стремится исправить ситуацию, пользователи будут проинформированны о возможных проблемах. Минус все тот же: такая ветка всеже не заставит, всех авторов что-либо менять в аддоне, и кто-то должен постоянно вести эту ветку...

FGT-ZS 18-03-2008 19:45 763172

Цитата:

Цитата volk1234
*почему две запятые я не знаю »

INF SourceDisksNames Section
diskid = disk-description,cab-file,unused,path

Где
diskid - Положительное целое число в десятичном формате, индификатор диска.
disk-description - Параметр имеет информационное значение, возможно использование переменных
типа %zzz%, объявленных в секции Strings
cab-file - Определяет название файла, поставляемого на дистрибутивном диске или в инсталляционном
корне.
unused - Используется только в Windows 9x/Me.
path - Значение определяет путь к каталогу на дистрибутивном диске, содержащем исходные файлы.
Путь относителен к инсталляционному корню. Если это значение опущено То предполагается,
что файл находятся в инсталляционном корне дистрибутивного диска.

volk1234 18-03-2008 22:43 763307

FGT-ZS
Здесь http://oszone.net/display.php?id=3827
в Руководстве по Inf

Код:

[SourceDisksNames]
1 = "Drive_Name","data1.cab",subdir
2 = "Drive_Name 2","",0

где:
1 - переменная дистрибутивного пути,
"Drive_Name" - имя диска (label),
"data1.cab" - cabinet-архив на диске "Drive_Name", содержащий файлы, предназначенные для копирования (допускается указывать имя файла cab-архива без расширения),
subdir - Поддиректория на диске "Drive_Name",
содержащая файл "data1.cab".

Если верна ваша информация получается такая строка :

1="NetLook Files","netlook.cab",0

отрабатывает просто из за того что '0' попадает на неиспользуемый параметр?
Или это знаменитая путаница мелкомягких?

FGT-ZS 18-03-2008 22:51 763315

volk1234,
Информация - made in MSDN,
скорее 0 попадает на неиспользуемый параметр и не обрабатывается.

volk1234 18-03-2008 23:45 763356

Значит надо просить Vek или Vadikan поправить статью по INF.
FGT-ZS можно линк?

FGT-ZS 18-03-2008 23:51 763359

http://msdn2.microsoft.com/en-us/library/ms794354.aspx

Zetoke 20-03-2008 18:38 764455

Насчет руководства по созданию аддонов
Цитата:

3.Конфигурационные файлы располагаются в паке Files аддона
Может они находятся в корневой папке аддона? А может я ошибаюсь... По-моему в папке Files находятся файлы, которые копируются в дистрибьютив. :)

volk1234 21-03-2008 10:05 764840

Цитата:

Цитата Master Fess
Может они находятся в корневой папке аддона? А может я ошибаюсь... »

Исправил.Спасибо

volk1234 22-03-2008 12:22 765521

Господа аддоно-писатели
нашел в sysoc секцию [NetOptionalComponents]
что она дает?
Возможно ее применение даст гибкость установки
есть сеть - сетевая утилита ставится, нету - не ставится.
Или я неправильно понял значение этой секции??

и еще вопрос
программа при установке копирует один файл в две директории
если я пропишу это в 2х разных секциях копирования
не будет ругатся установщик??

DyadyaGenya 22-03-2008 13:36 765548

volk1234, я высскажу некоторые соображения по написанию статьи про аддоны которую вы затеяли. я конечно не такой гуру в написании аддонов как основная часть форумчан, но вроде как причастен к обучающему процессу, стажа уже лет 15, и немного сталкивался с написанием учебных пособий, на мой взгляд коректней сперва (как вы и сделали) дать понятие что такое аддон, а потом поменять местами раздел Имена файлов и папок да и вообще всю главу про общие понятия с типами аддонов. Предлагаемая мною структура учебного пособия
1 - что такое аддон
2 - типы аддонов и способы их применеия
3 - общие понятия
4 - структура аддона sysoc
5 - структура аддона svpack
6 - структура комбинированного аддона
7 - структура аддона изменяющего дистрибутив
8 - примеры и приложения
9 - характеристика приложений с помощью которых облегчаеться написание аддонов

и конечно же оставить ссылку на обязательное прочтение статьи про инф файл

volk1234 22-03-2008 23:01 765799

спасибо за ваше участие в проекте.
немного критики предложенного вами:
ваш пункт2 и пункты 4,5,6,7
чем различаются? Как обьяснять устройство аддона sysoc без понятия работы sysoc, txtsetup, конфигурационных файлов?
от того что в начале будет прочто указанно на какие типы делятся аддоны легче понять их устройство не станет.
Но если вы убедительно докажете необходимость предварительного обьявления типов аддонов, я так сделаю :)

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

Drinko 23-03-2008 01:27 765885

Цитата:

Цитата volk1234
нашел в sysoc секцию [NetOptionalComponents]
что она дает? »

[NetOptionalComponents] (Sysprep)

volk1234 29-03-2008 01:08 770215

Обновлено руководство по написанию аддонов.
+Мелкие орфографические правки
+Комбинированные аддоны. Размещено в этом посте, поскольку в тот уже не влазит :)
+Обработка аддонов скриптом Update Pack пункт4 раздела А. (следующий пост)

Раздел B.
3.Комбинированные аддоны.

читать дальше »
Из названия следует, что данный тип использует оба выше описанных типа SYSOC и SVCPACK. Обычно это необходимо, когда после установки программы требуется
установить обновления, либо, когда некоторые значения записанные программой затираются на более поздних этапах установки. Рассмотрим это на примере аддона WMP 11
Структура папок сложнее, чем у простого аддона:

Код:

WMP11Rus
        +Files
            --wmplayer.adm -файлы аддона находящиеся в папке files
                                  пакуются в cab- архивы и копируются в i386
                                  замещая оригинальные файлы WMP9
              ......
               
              -+ForceCopy
                      --+SVCPACK
                            ----KB894871.CA_ - файлы каталогов необходимые для
                                                установки через SVCPACK на Т13
                            ......
                           
                      ---WMP11.CAB - файлы аддона находящиеся в папке ForceCopy
                                        копируются в i386 без сжатия
                          .......
                         
        -Dosnet
        -Sysoc
        -Txtsetup
        -Addon.nfo

Как работает этот аддон? Используется специальным образом подготовленный дистрибутив. Описание этого этапа выходит за рамки статьи. Часть дистрибутива замещающая файлы WMP9 размещается в папке аддона Files. При интеграции аддонов в дистрибутив скрипт сжимает файлы и замещает файлы WMP9 файлами WMP11.
Чем хорош этот аддон для нашего примера, он пересекается с еще одним типом аддонов - с заменой системных ресурсов.
Однако цель аддона не только замена системных файлов, но и установка нового медиаплеера. Для установки используется метод SYSOC. Установка происходит с помощью файла wmp11rus.inf на который сделана ссылка в sysoc.inf через одноименный конфигурационный файл. Txtsetup, Dosnet используются для копирования установочных файлов на текстовом этапе.

Однако для того, чтобы медиаплеер остался в составе компонентов Windows и WFP не прервал установку из за неправильных версий файлов, необходимо подсунуть установщику файлы каталогов. Сделать это возможно только на этапе T13 когда устанавливаются обновления через SVCPACK. Вот из за этого, аддон и называется комбинированным. В папку аддона [..Files\ForceCopy\SVCPSCK] помещаются файлы каталогов и скрипт копирует их в одноименную папку дистрибутива. Конфигурационный файл Run отсутствует поскольку .cat-файлы подхватываются скриптом автоматически.

В целом комбинированные аддоны являются более сложным инструментом, но одновременно и более гибким. Они требуют основательной подготовки и знания всех нюансов установки Windows.
Однако, именно этот метод позволяет совместить удобство установки через inf-файл в sysoc.inf и "высокоуровневые" возможности SVCPACK. С практической точки зрения этот способ будет полезен для установки дополнительных компонентов аддона, выполнения действий невозможных на этапе SYSOC. В принципе, возможна и обратная ситуация, когда сам аддон устанавливается через SVCPACK, а некоторые действия необходимо произвести заранее через SYSOC(добавление записей в реестр, копирование файлов).

====
To all
1.Разьясните неразумному правильно ли я написал про *.cat файлы. Автоматом ли они подхватываются через SVCPACK ?
2.И еще авторы аддонов, руководство почти закончено, остался только раздел про аддоны изменяющие дистрибутив я ни чего про них не знаю. Может кто-нибудь поможет?
3.Насчет пункта 4 раздел А. Неуверен что все верно описал может поможет кто?

volk1234 29-03-2008 02:01 770225

Раздел А.
4.Обработка аддона скриптом Update Pack

читать дальше »

Изучив структуры папок и конфигурационных файлов скрипта Update Pack, давайте посмотрим как он работает с аддонами.
После выполнения собственных действий скрипт приступает к обработке аддонов.
Аддоны находящиеся в папке скрипта [Addons] обрабатываются в алфавитном порядке.
Скрипт проверяет условия заданные в конфигурационных файлах Required, Conflict и если все нормально продолжает работу, в противном случае выдается ошибка. Затем скрипт выполняет конфигурационный файл Start до начала других действий, далее основные операции с аддонами и последним выполняется конфигурационный файл Finish (при условии конечно, что эти конфигурационные файлы присутствуют в папке аддона).

Обработка файлов в папках аддона.

Структура папок
Код:

Addon Folder

    +Files
          -+Compressed
          -+ForceCopy
                --+SVCPACK

В корневой папке размещаются конфигурационные файлы аддона для скрипта. Эти файлы никуда не копируются.
В папке Files размещаются собственно файлы аддона. Размещенные в корне этой папки файлы, скрипт копирует в дистрибутивную папку I386 без учета вложенных папок, с заменой файлов в случае совпадения, предварительно сжимая их в CAB-архив и приводя к виду file.ex_ , либо без дополнительной обработки если файл дистрибутива не сжат (пример: Telnet.exe). Все файлы из этой папки должны быть прописаны в конфигурационных файлах txtsetup и dosnet (иначе мастер установки не скопирует их из дитрибутива).

Подпапка Compressed служит для временного хранения ранее сжатых файлов из папки Files. Эти файлы могут использоваться скриптом в дальнейшем для экономии времени на упаковку.

Подпапка ForceCopy служит для прямого копирования размещенных в ней файлов с учетом вложенных папок в I386 без дополнительной обработки.
Пример: файлы из вложенной папки SVCPACK копируются в [..I386\SVCPACK]

Все записи в чистом виде из конфигурационных файлов Dosnet, Txtsetup добавляются в Dosnet.inf, Txtsetup.sif, а записи из Sysoc добавляются в секцию [Components] файла sysoc.inf . Записи из конфигурационного файла Run добавляется в секцию [SetupHotfixesToRun] файла svcpack.inf.

Далее скрипт модифицирует svcpack.inf согласно имен *.cat - файлов размещенных в каталоге SVCPACK аддона (если такие файлы требуются). В секцию [ProductCatalogsToInstall] файла svcpack.inf добавляются имена всех *.cat файлов.

Обрабатывается список файлов, для которых нужно отключить WFP, посредством KillWFP.lst, удалются из дистрибутива и выводятся из под защиты файлы посредством DelDrv.lst, DelOC.lst (патч Sfcfiles.dll);
Также обрабатывается Addon.nfo при сборке все эти файлы сливаются в один ADDONS.TXT, который пишется в корень папки с собираемым дистрибутивом;

Статья доработана с учетом правок Petya V4sechkin.
*13.04.08 чуток подправил

volk1234 31-03-2008 21:24 771871

Обновлено руководство по написанию аддонов.

+Этапы и механизмы установки Windows XP/2003.Log-файлы генерируемые в процессе установки. Размещено в этом посте, поскольку в тот уже не влазит :)

Использовал вариант предложенный здесь Drinko существенно доработав при помощи MSFN.

█ Приложение 5. Этапы и механизмы установки Windows XP/2003. Log-файлы генерируемые в процессе установки.

читать дальше »

Этапы текстового режима различаются в зависимости от режимов установки.
Здесь рассматриваются этапы установки с дистрибутивного CD, из удаленного сетевого дистрибутива, с локального дистрибутива на жестком диске (zip, flash). В принципе мастер установки рассматривает любой вариант установки, кроме установки с CD, как установку из удаленного источника, отсюда и дополнительный этап копирования во временную папку $win_nt$.~ls, перезагрузку и уже только затем копирование в папку установки.

Первый этап проходит в текстовом режиме:

1. Запуск загрузчика установочного диска ntboot.bin (для CD).
2. Запуск bootfix.bin (для CD).
3. Запуск setupldr.bin. Если установка выполняется не с CD, то файл setupldr.bin (запускаемый через winnt.exe) переименовывается в $LDR$ и копируется на диск установки для использования в качестве временного загрузчика для дополнительного этапа копирования.
4. Setupldr.bin ( $LDR$) передают, через winnt.exe, управление Setupdd.sys который с помощью txtsetup.sif и winnt.sif выполняет основные фазы текстового этапа, такие как копирование файлов и сбор информации о оборудовании для последующих этапов установки.
5. Чтение и интерпретация txtsetup.sif, winnt.sif и некоторых других файлов. Для установки не с CD используется dosnet.inf содержащий сведения о файлах в папке $win_nt$.~ls
6. Загрузка драйверов оборудования.
7. Запуск ntoskrnl.exe, ntdll.dll и smss.exe (фактически загружено ядро системы).
8. Копирование файлов с дистрибутивного диска в %WINDIR%. Или в случае установки из удаленного источника(пусть даже со второго раздела диска) копирование производится в локальный источник: папку $win_nt$.~ls. Затем следует перезагрузка и с помощью загрузчика $LDR$ управление передается Setupdd.sys который повторяет этапы 4-8, только на этот раз файлы копируются из $win_nt$.~ls в %WINDIR%.
9. Копирование прототипов реестра в %WINDIR%\system32\config\*.sav , было выполнено вместе с другими файлами, после производится обновление и инициализация реестра с помощью hive*.inf.
10. Setupdd.sys создает файл $wint$.inf в зависимости от конфигурации оборудования и содержимого файлов txtsetup.sif , sysetup.inf, layout.inf, winnt.sif (unnatend.txt). Файлы $wint$.inf (%windir%\System32), sysetup.inf, layout.inf (%windir%\inf) будут использованы мастером установки в графическом этапе установки.
11. Создание загрузочного сектора, загрузчика NTLDR, файла boot.ini.
12. Перезагрузка.

Второй этап продолжается в графическом режиме.

1. T39 – запуск setup.exe который передает управление библиотеке syssetup.dll. Эта библиотека координирует весь процесс установки в графическом режиме, используя информацию для установки из файлов syssetup.inf, $wint$.inf, layout.inf. При этом используется множество динамически подключаемых библиотек, таких как setupapi.dll, netshell.dll, ocgen.dll и др., для выполнения различных действий в процессе установки.
Отрабатывает параметр DetachedProgram секции [GuiUnattended]
2. Загрузка nt5.cat и прочих файлов безопасности каталогов.
3. Запуск ocmanage.dll (диспетчер дополнительных компонентов).
4. Определение установленного оборудования (machine.inf).
5. T37 – установка драйверов устройств.
6. Создание и запуск intl.cpl используя информацию из intl.inf (конфигурируются региональные настройки).
7. Запрос CD-KEY.
8. Установка дополнительных компонентов ОС (sysoc.inf) С помощью sysoc.inf менеджер установки
строит список файлов для установки этих компонентов. Затем этот список сверяется с файлом unatend.txt (winnt.sif) если он есть.
По результатам сверки образуется конечный список устанавливаемых компонентов..
9. T32 – установка поддержки сети.
10. T29 – копирование всех необходимых файлов ОС.
11. T25 – завершение установки.
12. T22 – установка меню «Пуск» (shell.inf) и сохранение сделанных изменений в реестре.
13. T18 – регистрация компонентов (OLE regsrv).
14. T13 – обработка SVCPACK.inf.
14. T12 – запуск $OEM$/Cmdlines.txt.
16. T9 – сохранение параметров, установка административных разрешений для системных папок и реестра, запуск команд из секции [SetupParams].
17. T8 – сохранение настроек (sfc.dll сканирует все системные файлы для создания базы WFP и заменяет неоригинальные файлы).
18. Создание signhash Hardware ID.
19. Удаление временных файлов.
20. Перезагрузка.

Третий этап продолжается в графическом режиме:

1. Включение oobeinfo, активация копии системы.
2. Добавление пользовательских профилей.
3. Применение установок.
4. Настройка пользовательских профилей.
5. Запуск команд из секции GuiRunOnce.
6. Загрузка рабочего стола.


█ Log-файлы создаваемые в процессе установки.

Размещение log-файлов: \%Windir%

◦ Setupapi.log

Файл для Setupapi.dll, которая обрабатывает inf файлы во время установки аппаратных средств и регистрации. Этот файл может содержать записи, которые начинаются c [#E], что указывает на проблемы или ошибки. Мониторит установку через inf-файлы и на установленной системе.

◦ Setuperr.log

Общий журнал ошибок в процессе установки.

◦ Setuplog.txt

Общий журнал установки. Содержит все действия, совершаемые во время последней установки.

◦ Upgrade.txt

Лог менеджера установки, после запуска проверки на совместимость с windows XP.

◦ Setupact.log

Довольно полезный лог, создаваемый во время определения аппаратных устройств и установки драйверов.

◦ Winnt32.log
Содержит информацию о тестовом режиме установки, но создается только в процессе
апгрейда системы, а не установки.


◦ Wsdu.log

Лог динамического обновления установки (только если используется динамическое обновление)

◦ Log-файлы генерируемые дополнительными компонентами.




======
*01.04.08 Добавил немного из статьи процесс установки по минутам
======
Drinko, что ты имел в виду под пунктом 3 во втором этапе установки,
Цитата:

3. Выполнение *.inf.???
??
я на всякий случай оставил.
Удалил.
to All сообщайте о замеченных неточностях. Орфография в личку, плиз.

Drinko 31-03-2008 22:26 771934

Цитата:

Цитата volk1234
Drinko, что ты имел в виду под пунктом 3 во втором этапе установки,
Цитата:

3. Выполнение *.inf.???
»

Цитата:

Цитата volk1234
syssetup.dll. Эта библиотека координирует весь процесс установки в графическом режиме, используя информацию для установки из файлов syssetup.inf, $wint$.inf, layout.inf. »

:)

vserd 01-04-2008 10:47 772198

volk1234, Одним файлом можно инструкцию где-то взять?

volk1234 01-04-2008 16:54 772494

Пока нет, происходило накопление информации. Изначально предпологал что писать будут все авторы аддонов, поэтому выкладывал на обсуждение, увы. Как только проверю орфографию и прочее, выложу на сайте в виде статьи,а также сделаю chm.

Boa Soft 02-04-2008 01:29 772831

Цитата:

Цитата volk1234
1.Разьясните неразумному правильно ли я написал про *.cat файлы. Автоматом ли они подхватываются через SVCPACK ? »

Не совсем автоматом. При сборке дистрибутива скрипт модифицирует svcpack.inf согласно имен *.cat файлов в каталоге SVCPACK.

В секцию ProductCatalogsToInstall файла svcpack.inf добавляются имена всех *.cat файлов.

Согласно указанием MS они должны быть переименованы в формат 8.3. Это особенно актуально при установке из-под доса или по сети.

volk1234 02-04-2008 10:31 772972

Цитата:

Цитата Boa Soft
В секцию ProductCatalogsToInstall файла svcpack.inf добавляются имена всех *.cat файлов. »

Для этого даже не требуется указывать их имена в файле Run ?? :0 В аддоне WMP 11 он отсутствует.
Можно чуток подробнее для руководства?

jameszero 02-04-2008 12:32 773048

volk1234
В файле run каталоги указывать не нужно. Boa Soft всё правильно написал:
Цитата:

Цитата Boa Soft
скрипт модифицирует svcpack.inf согласно имен *.cat файлов в каталоге SVCPACK
В секцию ProductCatalogsToInstall файла svcpack.inf добавляются имена всех *.cat файлов.»

Этот механизм реализован в скрипте UpdatePack, он сам находит все каталоги безопасности в папках SVCPACK, а то что перечислено в файлах run добавляется в секцию [SetupHotfixesToRun]

И ещё
Цитата:

Цитата volk1234
Все записи из конфигурационных файлов Dosnet, Sysoc, Txtsetup добавляются в Dosnet.inf, Sysoc.inf, Txtsetup.sif. Записи из конфигурационного файла Run добавляется в секцию [Components] файла svcpack.inf »

Следует читать
Цитата:

Все записи из конфигурационных файлов Dosnet и Txtsetup добавляются в чистом виде в Dosnet.inf и Txtsetup.sif, а записи из конфигурационного файла Sysoc добавляются в секцию [Components] файла Sysoc.inf

volk1234 02-04-2008 18:46 773277

исправил теперь выглядит так:
Цитата:

Цитата volk1234
Все записи в чистом виде из конфигурационных файлов Dosnet, Txtsetup добавляются в Dosnet.inf, Txtsetup.sif, а записи из Svcpack добавляются в секцию [Components] файла svcpack.inf . Записи из конфигурационного файла Run добавляется в секцию [SetupHotfixesToRun] файла svcpack.inf

Далее скрипт модифицирует svcpack.inf согласно имен *.cat - файлов размещенных в каталоге SVCPACK аддона(если такие файлы требуются). В секцию [ProductCatalogsToInstall] файла svcpack.inf добавляются имена всех *.cat файлов.
»

Добавил эту инфу также в раздел аддонов типа svcpack

BoaSoft

Не напишите пару абзацев по работе вашего патча sfcfiles.dll ??

Zetoke 02-04-2008 20:00 773330

Цитата:

Цитата volk1234
Не напишите пару абзацев по работе вашего патча sfcfiles.dll ?? »

volk1234, А по-моему в ReadMe к патчу все написано.

jameszero 02-04-2008 21:56 773419

volk1234
Цитата:

Цитата volk1234
а записи из Svcpack добавляются в секцию [Components] файла svcpack.inf»

Подчёркнутое заменить на sysoc ))

Boa Soft 03-04-2008 01:13 773546

Зачем это нужно?

Большая часть важных для системы файлов в Windows Xp защищена от удаления и изменения
функцией WPF - windows file protection.

Если Вы хотите удалять или изменять некотрые файлы, то система не даст этого сделать,
вернее обойти это можно, но при запуске sfc произойдет замена файлов на оригигальные
или же последует вопрос на вставку диска с дистрибутивом.

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

Результат - отсутствующие файлы, Dll hell и падение системы.

Обычно же надо исключить только несколько фалов. Этого легко достичь патчем SfcFiles.dll, заставив ее "забыть" о этих файлах.

2. Алгоритм работы.

Проограмма дествует очень просто

Какие файлы защищены - это система узнает из SfcFiles.dll. Эта библиотека не несет в себе прямых функций защиты, а только выдает список защищенных файлов.

Там находятся списки защишаемых фалов, целых 5 штук для разных систем:
Xp pro
Xp home
Xp tablet PC
Xp mediacenter
Xp starter

В серверной библиотечке тоже 5 списков, но их назначения (соответствия версиям продуктов) я не выяснял.

Система защиты получает список защищенных файлов с полными путями из этой библиотеки, вызывая Api - функцию SfcGetFiles. Нам же нужно, чтобы в этот список не попали нужные нам файлы.

В этой версии применен новый алгоритм - патчится не строковые значения, а таблица указателей. Этих таблиц так же 5 - по числу версий продукта. В этой таблице просто происходит подмена указателей
на выводимые из защиты файлы на указатель на любой из оставшихся файлов. В результате при выдаче списка файлов просто некотрые файлы будут присутствовать более одного раза, а работа SFC никак не изменится - все невыведенные файлы будут защищены..

Программа автоматом корректирует CRC в PE заголовке файла и файл готов к применению.
Если в логе говорится, что файл не найден, скорее всего он не входит в список защищенных. Для стабильного результата патчите всегда оригинал, но повторный патч библиотеки, уже пропатченной этой
версией патчера, не приведет к ошибке.

NB! Если патчить библиотеку, ранее уже патченную более старыми версиями патчера или другими утилитами, то возможны разные непредсказуемые проблемы.

Прверялось с SfcFiles.dll от windows sp2 rus/ sp2 en/ sp1 server rus.
(Во всей линейке OS одного семейства и сервиспака библиотека одинакова!)

С другими версиями программа так же должна работать.

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

SFC /scannow должно работать!!! Если нет - то увы.

volk1234 03-04-2008 01:44 773555

Гм, уже хотел вставить в инструкцию, но запутался в конфигурационных файлах
3.6 KillWFP.lst
3.8 DelDrv.lst
3.9 DelOC.lst

Deldrv это список для sfcfiles, а deloc? а killwfp ?
или же все эти файлы относятся к патчеру?
После лазанья по форуму перефразирую вопрос:
все 3 файла в итоге используют sfcpatch ?

volk1234 03-04-2008 02:20 773566

Обновлено руководство по написанию аддонов.
+Аддоны изменяющие дистрибутив. размещено в этом посте.
+приложение 6 Патч Sfcfiles.dll


Аддоны изменяющие дистрибутив.

читать дальше »
Это тип аддонов, изменяющих дистрибутив в процессе интеграции обновлений и других аддонов (не всегда), т.е. не в процессе установки в отличие от других типов.
Относятся к категории т.н. служебных аддонов. Позволяет получить функциональность в процессе установки, которую невозможно получить другими способами. Описать типичную структуру такого аддона или привести общую инструкцию не возможно. Причины банальны: изменение ресурсов возможно несколькими способами, требует солидных знаний, долгого тестирования на стабильность.
Пример "мирного" применения аддона изменяющего системные ресурсы: аддон Vista Path изменяющий стандартные иконки на более красивые. Или аддон ZZ_multiboot, не изменяет дистрибутивную папку (I386), но создает структуру папок и записывает необходимые файлы и модифицирует их для получения мульти загрузочного диска. Причем, можно создавать диски N-in-1 (например Windows Home и Proffesional версий + множество вариантов загрузки из стандартного аддона Z_DRV_INST).

Еще пример, аддон Z_DRV_INST не модифицирует файлы в дистрибутиве, но слегка изменяет и дополняет его новой функциональностью (Подменой Setup.exe во время установки и установкой драйверов).

При затрагивании важных системных файлов приходится иметь дело с Windows File Protection. Как ее обойти читайте здесь .

Если по каким- либо причинам использовать патч sfcfiles.dll нельзя или невозможно, можно только посоветовать эту статью раздел Modify PE, про изменение контрольной суммы файлов.


======
я конечно понимаю, что написать можно и больше только лично мне нечего, бо не знаю больше.

volk1234 03-04-2008 14:10 773790

Приложение 6. Патч Sfcfiles.dll
читать дальше »

В составе Update pack приcутствует патч SFCfiles.dll написанный участником конференции BoaSoft
Взаимодействовать с патчером возможно путем конфигурационных файлов KillWFP.lst, DelDrv.lst, DelOC.lst.

Синтаксис простой: название файла с расширением для которого необходимо отключить WFP и\или который
необходимо удалить из дистрибутива.

Описание патча sfcfiles.dll предоставим автору:

Зачем это нужно?

Большая часть важных для системы файлов в Windows Xp защищена от удаления и изменения
функцией WPF - windows file protection.

Если Вы хотите удалять или изменять некотрые файлы, то система не даст этого сделать,вернее обойти это можно, но при запуске sfc произойдет замена файлов на оригинальные или же последует вопрос на вставку диска с дистрибутивом.

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

Результат - отсутствующие файлы, Dll hell и падение системы.

Обычно же надо исключить только несколько фалов. Этого легко достичь патчем SfcFiles.dll, заставив ее "забыть" о этих файлах.

Алгоритм работы.

Программа действует очень просто

Какие файлы защищены - это система узнает из SfcFiles.dll. Эта библиотека не несет в себе прямых функций защиты, а только выдает список защищенных файлов.

Там находятся списки защищаемых файлов, целых 5 штук для разных систем:
Xp pro
Xp home
Xp tablet PC
Xp mediacenter
Xp starter

В серверной библиотечке тоже 5 списков, но их назначения (соответствия версиям продуктов) не выяснены.

Система защиты получает список защищенных файлов с полными путями из этой библиотеки, вызывая Api - функцию SfcGetFiles. Нам же нужно, чтобы в этот список не попали нужные нам файлы.

В 3-й версии патчера применен новый алгоритм - патчатся не строковые значения, а таблица указателей. Этих таблиц так же 5 - по числу версий продукта. В этой таблице просто происходит подмена указателей на выводимые из защиты файлы на указатель на любой из оставшихся файлов. В результате при выдаче списка файлов просто некоторые файлы будут присутствовать более одного раза, а работа SFC никак не изменится - все не выведенные файлы будут защищены..

Патчер автоматом корректирует CRC в PE заголовке файла и файл готов к применению.
Если в логе говорится, что файл не найден, скорее всего он не входит в список защищенных. Для стабильного результата патчите всегда оригинал, но повторный патч библиотеки, уже пропатченной этой версией патчера, не приведет к ошибке.

NB! Если патчить библиотеку, ранее уже патченную более старыми версиями патчера или другими утилитами, то возможны разные непредсказуемые проблемы.

Проверялось с SfcFiles.dll от windows sp2 rus/ sp2 en/ sp1/2003 server rus.
(Во всей линейке OS одного семейства и сервиспака библиотека одинакова!)

С другими версиями программа так же должна работать.

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

SFC /scannow должно работать!!! Если нет - то увы.

vserd 03-04-2008 18:44 773939

Цитата:

Цитата volk1234
Аддоны изменяющие дистрибутив. »

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

Например zz_ZZ_MultiBoot или Z_DRV_INST.
zz_multiboot фактически не изменяет дистрибутивную папку (I386), но создает структуру папок и записывает необходимые файлы и модифицирует их для получения мультизагрузочного диска. Причем, можно создавать диски N-in-1 (например Home и Prof версий (+ множестово вариантов загрузки из стандартного Z_DRV_INST)) модификацией скрипта zz_multiboot.

Z_DRV_INST не модифицирует файлы в дистрибутиве, но слегка изменяет и дополняет его новой функциональностью (Fake Setup и установкой драйверов).

Для Z_DRV_INST можно также написать «аддоны» (внедрить программы), которые будут выполнять некоторые функции которых нет в режиме установки с CD, но есть в других режимах (например UDB файлы), или небольшая корректировка скрипта Winnt.sif. Примерами таких аддонов являются WSE, Changer и д.р.
.....

за одно орфография:
читать дальше »
Это тип аддонов изменяющих дистрибутив в процессе интеграции обновлений и других аддонов, т.е. как правило не в процессе установке в отличИе от других типов.

Zetoke 03-04-2008 19:25 773968

Я тут пару очепяток нашел и ошибок. Но прежде чем править проверьте, вдруг я не прав :)

читать дальше »
Цитата:

Цитата volk1234
в дистрибутив Windows XP\2003 сторонних программ или изменения »

Цитата:

Цитата volk1234
Аддоны, использующие SYSOC »

Цитата:

Цитата volk1234
для начала »

может лучше сначала ?
Цитата:

Цитата volk1234
По сути собирается собственный инсталлятор(в отличие от SVCPACK, где зачастую используются готовые инсталляторы с ключами тихой установки). »

Цитата:

Цитата volk1234
собираем эту информацию об установке программы »

По-моему т.к. следующее слово начинается с гласной буквы.
Цитата:

Цитата volk1234
собираем эту информацию об установке программы, для которой будет создаваться аддон »

Цитата:

Цитата volk1234
установка этих файлов осуществляется с помощью inf-скрипта, который пишется »

Цитата:

Цитата volk1234
копируемых в них файлов, добавления ключей »

Цитата:

Цитата volk1234
с его помощью копируются файлы и ульи реестра с диска »

?
Цитата:

Цитата volk1234
На ранних этапах установки Windows устанавливаются »

И вообще получается масло масляное
Цитата:

Цитата volk1234
сверяется с файлом unattended.txt(winnt.sif), если он есть »

Вроде так
Цитата:

Цитата volk1234
секции из sysoc,txtsetup,dosnet, находящихся в корневой папке аддона, переносятся »

Цитата:

Цитата volk1234
папки аддона Files копируются в папку дистрибутива I386 »

Может поменять местами, а то получается аддон Files и дистрибутив I386.
Цитата:

Цитата volk1234
аддона, прописанные в списке txtsetup.sif, копируются »

Цитата:

Цитата volk1234
вместе с дополнительными компонентами из sysoc.inf »

Цитата:

Цитата volk1234
Пример аддона, использующего SYSOC »

Цитата:

Цитата volk1234
копированием файлов из cab-файла, следите, чтобы имена файлов »

Цитата:

Цитата volk1234
интегрировать аддон, но при этом НЕ установить его, чтобы он был доступен впоследствии для установки через менеджер »

Цитата:

Цитата volk1234
менеджер компонентов Windows, необходимо в установочных inf-ах каждого аддоназакомментировать параметр Modes »

Т.к. есть слово необходимо, то уже не нужно слово нужно
Цитата:

Цитата volk1234
Незабывайте про секцию [DefaultInstall] в inf скрипте »

Цитата:

Цитата volk1234
Она необходима, чтобы inf устанавливался в будуще »

Цитата:

Цитата volk1234
2.Аддоны, использующие для интеграции SVCPACK. »

Цитата:

Цитата volk1234
SVCPACK предназначался для установки обновлений, вышедших после выпуска ОС »

Цитата:

Цитата volk1234
вместо обновленийможно устанавливать и другие приложения »

Запятая не нужна
Цитата:

Цитата volk1234
что позволяет использовать обычные инсталляторы. »

Цитата:

Цитата volk1234
Для создания аддона этого типа используются тихие инсталляторы »

Цитата:

Цитата volk1234
минимально необходим Run, в котором указывается »

Цитата:

Цитата volk1234
имя исполняемого файла тихого инсталлятора, располагающегося в папке Files\SVCPACK »

Цитата:

Цитата volk1234
Однако, при необходимости »

По-моему нужна запятая
Цитата:

Цитата volk1234
файлы:KillWFP.lst,Start, Finish,Required, Conflict, используемые »

Цитата:

Цитата volk1234
Приложения, внесенные в секцию [SetupHotfixesToRun] »

Цитата:

Цитата volk1234
обычно используют SFX архивы(7z, RAR, и т.д.), либо исполняемые файлы »

Цитата:

Цитата volk1234
"живую" систему или "тихие" инсталляторы. »

Цитата:

Цитата volk1234
или файл контейнер(архив с необходимыми »

Цитата:

Цитата volk1234
необходимыми для установки ключами), либо ничего не кладут »

Цитата:

Цитата volk1234
6 Аддоны, предназначенные для внесения изменений в реестр и настройки ОС »

Цитата:

Цитата volk1234
8 Аддоны, предназначенные для удаления компонентов ОС и драйверов. »

Цитата:

Цитата volk1234
пост-обработки информации или создания образа. »

Может лучше так?
Цитата:

Цитата volk1234
Аддоны, изменяющие дистрибутив. »

Цитата:

Цитата volk1234
Это тип аддонов, изменяющих дистрибутив »

Цитата:

Цитата volk1234
как правило не в процессе установке в отличие от других типов. »

Цитата:

Цитата volk1234
Описать типичную структуру такого аддона или привести инструкции к изготовлению таких аддонов не возможно. »

Может это словосочетание убрать? Повтор получается
Цитата:

Цитата volk1234
системные ресурсы: аддон Vista Path, изменяющий »

Цитата:

Цитата volk1234
Если по каким- либо причинамиспользовать патч sfcfiles.dll нельзя или невозможно »

Запятая не нужна
Цитата:

Цитата volk1234
мне нечего, ибо незнаю больше. »

:)
Цитата:

Цитата volk1234
приcутствует патч SFCfiles.dll, написанный учасником »

Цитата:

Цитата volk1234
название файла с расширением, для которого необходимо »

Цитата:

Цитата volk1234
Если Вы хотите удалять или изменять некоторые файлы »

Цитата:

Цитата volk1234
произойдет замена файлов на оригинальные »

Цитата:

Цитата volk1234
Обычно же надо исключить только несколько файлов »

Цитата:

Цитата volk1234
заставив ее "забыть" об этих файлах »

Цитата:

Цитата volk1234
Там находятся списки защищаемых фалов »


Vadikan 03-04-2008 21:37 774038

Цитата:

Цитата Master Fess
с его помощью копируются файлы и ульи реестра с диска »

В официальной терминологии - куст.

Цитата:

Цитата Master Fess
сверяется с файлом unattended.txt(winnt.sif), если он есть »

Цитата:

Цитата Master Fess
обычно используют SFX архивы(7z, RAR, и т.д.), либо исполняемые файлы »

пробел перед скобкой
Цитата:

Цитата Master Fess
секции из sysoc,txtsetup,dosnet, находящихся в корневой папке аддона, переносятся »

пробелы после запятых
Цитата:

Цитата Master Fess
мне нечего, ибо незнаю больше. »

не знаю - раздельно

Zetoke 03-04-2008 21:42 774042

Vadikan, Если исправлять все пробелы после знаков препинания и скобок, то.... :)

volk1234, Исправляй пробелы после всех знаков препинания и скобок :)
Если будет время, то еще ошибки поищу.

volk1234 03-04-2008 23:30 774127

Я очень благодарен Vserd и Master Fess и всем кто правит мой корявый русский язык,
но немного выше я просил кидать в личку. Так как статья дорабатывалась, были возможны
изменения целых кусков текста, так что старые ошибки исчезли бы, а новые появились :)
Правда на мой взгляд текст руководства уже готов, осталось добавить пару приложений...

volk1234 03-04-2008 23:46 774140

Руководство отредактированно по орфографии.
Чувствую не последняя правка.

Цитата:

Цитата Vadikan
не знаю - раздельно »

Это уже не статья, а фольклёрная речь:)

vserd 04-04-2008 09:02 774327

volk1234,
Собери всю статью в один файл, тхт. Выложи в шапку.
Его проще прогонять через орфограф, один человек исправит орфографию и забудем о пробелах. Просто замениш файл и все.
Затем с помошью diff можно присылать тебе только изменения об ошибках.
А в топике обкатывать формулировки и информацию.
Процентов 80 у тебя уже в статике. Устоялось. Остальное по ходу.

volk1234 06-04-2008 20:03 776140

Прикрепил Руководство в текстовом формате.

Оставил теги - "[code]" и "[center]" дабы чуть легче было разбирать
текст.

volk1234 09-04-2008 02:55 777871

Команды inf скрипта (advpack) не указанные в руководстве по inf-файлам.

Попутно сбору инфы для руководства нарыл инфы про inf файлы.
Думаю, если не будет полезно при написании аддонов, то хотябы
будем знать какие команды зарезервированны интерпретатором,
дабы не называть так секции:)
=====
пока помещу в раздел Хитрости при написании inf файлов, если vek доработает руководство, уберу из приложений.

читать дальше »
UpdateCfgSys

Позволяет отредактировать содержимое файла config.sys и указывает на раздел, который может содержать следующие ключевые слова: DevRename, DevDelete, DevAddDev, Stacks, Buffers, Files, LastDrive


UpdateAutoBat

Позволяет отредактировать содержимое файла autoexec.bat и указывает на раздел, который может содержать следующие ключевые слова: CmdAdd (формат: "программа","ключи программы"), CmdDelete (формат: "программа"), UnSet (формат: "имя переменной окружения"), PreFixPath (формат: "числовое значение, числовое значение"), RemOldParh (формат: "числовое значение, числовое значение"), TmpDir (формат: "числовое значение, дальней путь").

SmartReboot

Указывает, будет ли выполняться перезагрузка компьютера после установки сценария. Данное ключевое слово может принимать следующие значения.

— N — никогда не выполнять перезагрузку.
— AS — после установки сценария выполнить перезагрузку, не спрашивая согласия пользователя.
— IS — если система определила, что нужно выполнить перезагрузку, тогда компьютер будет перезагружен. При этом вопрос о перезагрузке задан не будет.
— A — после установки сценария спросить пользователя о перезагрузке компьютера.
— I — если перезагрузка необходима, тогда спросить у пользователя.

BitReg

Указывает на разделы inf-файла (через запятую), содержащие описание параметров реестра, в значении которых будут отредактированы отдельные биты.
Разделы inf-файла, используемые для редактирования битов значения параметров реестра, могут содержать в себе строки следующего формата (одна строка редактирует значение одного параметра реестра):

"Корневой раздел", "ветвь реестра", "параметр", "флаг операции", " маска операции", "номер байта параметра"

Корневой раздел

Содержит идентификатор корневого раздела реестра, в котором расположен редактируемый параметр. Идентификатор может принимать следующие значения: HKCU (корневой раздел HKEY_CURRENT_USER), HKLM (корневой раздел HKEY_LOCAL_MACHINE), HKU (корневой раздел HKEY_USERS), HKCR (корневой раздел HKEY_CLASSES_ROOT), HKCC (корневой раздел HKEY_CURRENT_CONFIG),HKR (ветвь реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass[{GUID-класса устройства}][номер устройства]).

Флаг

Определяет тип редактирования параметра. Флаг представляет собой битовую маску, некоторые состояния которой представлены ниже.

— 0х00000000 — сбросить биты параметра.
— 0х00000001 — установить биты параметра.
— 0х00040000 — выполнить редактирование в 32-разрядном реестре.

Маска операции

Определяет биты одного байта значения параметра (одной строкой раздела inf-файла можно изменять биты только в пределах одного байта значения параметра), которые должны быть модифицированы. То есть, маска состоит из 8 нулей или единиц. Если установлена единица, тогда соответствующий бит значения параметра (на месте которого указана единица) будет сброшен или установлен в зависимости от флага операции. Маска операции является битовой маской.

Номер байта значения параметр

Определяет байт значения параметра, к которому будет применяться маска операции. Следует помнить, что начало нумерации байтов зависит от типа параметра. Для параметров типа REG_DWORD самый старший (то есть, самый правый) байт имеет номер 0, а для параметров типа REG_BINARY номер 0 имеет самый младший байт (самый левый).

Пример
Код:

[version]
Signature="$CHICAGO$"

[DefaultInstall]
AddReg=AttrOn
BitReg=Rec_Bit



[AttrOn]
;присваиваем параметру CallForAttributes значение 0, чтобы
;система обращала внимание на значение параметра Attributes
HKCR,"CLSID{645FF040-5081-101B-9F08-00AA002F954E}ShellFolder",CallForAttributes,0x00010001,0
;если параметр Attributes не существует, создаем его
HKCR,"CLSID{645FF040-5081-101B-9F08-00AA002F954E}ShellFolder",Attributes,0x00010003,0

[Rec_Bit]
;сбрасываем биты первого байта параметра
HKCR,"CLSID{645FF040-5081-101B-9F08-00AA002F954E}ShellFolder",Attributes,0,0xff,0
;сбрасываем биты второго байта параметра
HKCR,"CLSID{645FF040-5081-101B-9F08-00AA002F954E}ShellFolder",Attributes,0,0xff,1
;устанавливаем биты первого байта параметра
HKCR,"CLSID{645FF040-5081-101B-9F08-00AA002F954E}ShellFolder",Attributes,1,0x70,0
;устанавливаем бит второго байта параметра, чтобы
;добавить корзине прозрачность
HKCR,"CLSID{645FF040-5081-101B-9F08-00AA002F954E}ShellFolder",Attributes,1,0x80,1


Вот небольшая статья про CustomDestination. Несмотря на то что описание уже есть в руководстве по inf
файлам, здесь немного другой взгляд на комманду.

CustomDestination

Указывает на разделы inf-файла (через запятую), содержащие определение произвольных LDID-номеров на основе данных, введенных пользователем в появляющемся диалоге. Формат строк данных разделов следующий:

"новый LDID-номер"= "раздел, описывающий сообщение", "флаг".

Новый LDID-номер

Число от 40000 до 50000, используемое в дальнейшем в качестве LDID на введенный путь к папке.

Флаг

Определяет способ построения пользовательского LDID и может принимать следующие значения:

— 1 — выводить диалоговое окно, в котором пользователь должен ввести путь к каталогу, к которому в дальнейшем будет вести создаваемый LDID.
— 2 — каталог, к которому будет вести создаваемый LDID, определяется значением параметра реестра.
— 34 — выводить пользователю диалоговое окно с произвольным текстом. При этом сам каталог, на который будет указывать пользовательский LDID, будет взят из реестра.

Раздел, описывающий сообщение

Параметр реестра, из которого будет браться путь к каталогу, текст, выводимый при отсутствии данного параметра реестра или при вводе пользователем пути к каталогу, а также каталог по умолчанию. Формат содержимого данного раздела следующий:

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

Пример
Код:

[version]
Signature = $CHICAGO$
AdvancedINF=2.5, "Эта строка будет выводится, если на компьютере не найдено библиотеки advpack.dll "

[DestinationDirs]
CopyTo = 49555

[CopyTo]
1.jpg

[DefaultInstall]
CustomDestination=CD
CopyFiles = CopyTo

[CD]
49555 = CDD, 1

[CDD]
;Выводим диалог запроса каталога для установки. Название каталога по
;умолчанию будет считываться из параметра реестра ProgramFilesDir,
;содержащего в себе путь к каталогу %programfiles%. Если по каким-то
;причинам в реестре отсутсвует данный параметр, тогда по умолчанию будет
;использоваться каталог C:\Program files
HKLM, "SOFTWARE\Microsoft\Windows\CurrentVersion", "ProgramFiles\Dir","Укажите каталог","C:Program Files"

UpdateIniFields аналог UpdateInis

Указывает на разделы inf-файла (через запятую), содержащие в себе описание действий над содержимым значений полей ini-файлов, которые должны быть выполнены в процессе установки.
В отличии от UpdateInis оперирует с частью строки, а не со строкой в целом.
Формат строк этих разделов следующий:

"название раздела в ini-файле", "название ключевого слова ini-файла без знака =", "старое значение данного ключевого слова", "добавляемое значение нового ключевого слова", "флаг операции"

Флаг операции

Может содержать следующие значения.

— 00 — новое значение будет дописано через пробел к текущему значению редактируемого ключевого слова (используется по умолчанию).
— 01 — новое значение будет дописано через запятую к текущему значению редактируемого ключевого слова.
— в случае единицы впереди * интерпретируется как подстановочный символ, в случае нуля как буквальный символ


Ini2Reg

Указывает на разделы inf-файла (через запятую), содержащие в себе описание добавляемых в реестр строк ini-файла. Формат строк этих разделов следующий:

"название ini-файла", "раздел в ini-файле", "ключевое слово ini-файла", "корневой раздел реестра", "остальной путь к ветви реестра", "флаг"

Корневой раздел

Содержит идентификатор корневого раздела реестра, в котором расположен редактируемый параметр. Идентификатор может принимать следующие значения: HKCU (корневой раздел HKEY_CURRENT_USER), HKLM (корневой раздел HKEY_LOCAL_MACHINE), HKU (корневой раздел HKEY_USERS), HKCR (корневой раздел HKEY_CLASSES_ROOT), HKCC (корневой раздел HKEY_CURRENT_CONFIG),HKR (ветвь реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass[{GUID-класса устройства}][номер устройства]).

Флаг

Может содержать следующие значения.

— 0 — после переноса данных в реестр, соответствующие им ключевые слова не будут удаляться из ini-файла. При этом если в реестре уже существует создаваемая ветвь, тогда она переписана не будет. Значение по умолчанию.
— 1 — после переноса данных в реестр, соответствующие им ключевые слова будут удалены из ini-файла. При этом если в реестре уже существует создаваемая ветвь, тогда она переписана не будет.
— 2 — после переноса данных в реестр, соответствующие им ключевые слова не будут удаляться из ini-файла. При этом если в реестре уже существует создаваемая ветвь, ее содержимое будет переписано.
— 3 — после переноса данных в реестр, соответствующие им ключевые слова будут удаляться из ini-файла. При этом если в реестре уже существует создаваемая ветвь, ее содержимое будет переписано.

BackupPath


Определяет папку, в которой будет создан .dat-файл, содержащий в себе значения заархивированных параметров реестра. Значение этого ключевого слова заносится в параметр строкового типа BackupPath ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Advanced INF Setup\"имя архива".

BackupReg

Указывает раздел inf-файла, описывающий все ветви реестра и параметры, значения которых будут занесены в архив. Формат строк раздела следующий:

"корневой раздел реестра", "остальной путь к архивируемой ветви", "параметр, значение которого нужно заархивировать".

PreRollBack

Указывает раздел inf-файла, являющийся начальным при восстановлении настроек реестра (то есть, при запуске inf-файла при помощи команды rundll32.exe ADVPACK.dll, LaunchINFSectionEx "имя информационного файла", "начальный раздел",,64).

ComponentName


Определяет имя создаваемого архива. Данное имя будет использоваться как в качестве имени создаваемого .dat-файла, так и в качестве имени раздела ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Advanced INF Setup, содержащего настройки восстановления параметров реестра из данного архива.

Общий пример для команд ComponentName, ComponentVersion, PreRollBack, BackupReg.
Код:

[version]
Signature = $CHICAGO$
AdvancedINF=2.5, "Эта строка будет выводится, если на компьютере не найдено библиотеки advpack.dll "

[DestinationDirs]
INFCopy = 17
DelINF = 17

[INFCopy]
;будем считать, что наш устанавливаемый сценарий называется Interfeice.inf
Interfeice.inf

[DelINF]
;на всякий случай удаляем создаваемый перед восстановлением сценарий
Interfeice2.inf

[DefaultInstall]
ComponentName = "Interfeice"
ComponentVersion = "1.0"
BackupPath = %10%Para
BackupReg = BR_Interfeice
PreRollBack = PRB_Interfeice
;копируем сценарий в папку INF, после чего удалить его из текущей папки
CopyFiles = INFCopy
Cleanup

[PRB_Interfeice]
BeginPrompt = Hello
DelFiles = DelINF
UpdateInis=MyIniEdit
RunPostSetupCommands = SaveRestore

[SaveRestore]
;вызываем созданный нами inf-файла для архивирования текущих настроек оболочки
;Теперь вы всегда сможете обратно восстановить настройки интерфейса при помощи команды
;rundll32.exe ADVPACK.dll, LaunchINFSectionEx interfeice2.inf, DefaultInstall,,64
"rundll32.exe ADVPACK.dll, LaunchINFSectionEx interfeice2.inf, DefaultInstall,,32"

[MyIniEdit]
;Создаем inf-файл, с помощью которого мы заархивируем текущие настройки интерфейса оболочки перед их восстановлением.
%17%\Interfeice2.inf, Hello2,, "Prompt = Все-таки предыдущие настройки интерфейса оболочки были лучше? :-) Восстановить их обратно?", 0
%17%\Interfeice2.inf, Hello2,, "Titlie = Восстановление настроек интерфейса", 0
%17%\Interfeice2.inf, PRB_Interfeice2,, "BeginPrompt = Hello2", 0
%17%\Interfeice2.inf, BR_Interfeice,, "HKCU, Control Panel\Appearance", 0
%17%\Interfeice2.inf, BR_Interfeice,, "HKCU, Control Panel\Colors", 0
%17%\Interfeice2.inf, BR_Interfeice,, "HKCU, Control Panel\Current", 0
%17%\Interfeice2.inf, BR_Interfeice,, "HKCU, Control Panel\Cursors", 0
%17%\Interfeice2.inf, BR_Interfeice,, "HKCU, Control Panel\Custom Colors", 0
%17%\Interfeice2.inf, BR_Interfeice,, "HKCU, Control Panel\Desktop", 0
%17%\Interfeice2.inf, DefaultInstall,, "ComponentName = Interfeice2", 0
%17%\Interfeice2.inf, DefaultInstall,, "ComponentVersion = 1", 0
%17%\Interfeice2.inf, DefaultInstall,, "BackupPath = %10%\Para", 0
%17%\Interfeice2.inf, DefaultInstall,, "BackupReg = BR_Interfeice", 0
%17%\Interfeice2.inf, DefaultInstall,, "PreRollBack = PRB_Interfeice2", 0
;на всякий случай создаем inf-файл, с помощью которого заархивируем текущие настройки интерфейса оболочки
%17%\Interfeice2.inf, version,, Signature = $CHICAGO$, 0
%17%\Interfeice2.inf, version,, "AdvancedINF=2.5, Error", 0

[Hello]
Titlie = "Восстановление настроек интерфейса"
Prompt = "Вы уверены, что хотите восстановить прежние настройки интерфейса оболочки? Может нынешние все-таки не так уж и плохи? Так что, восстановить?"

[BR_Interfeice]
HKCU, "Control Panel\Desktop"
HKCU, "Control Panel\Custom Colors"
HKCU, "Control Panel\Cursors"
HKCU, "Control Panel\Current"
HKCU, "Control Panel\Colors"
HKCU, "Control Panel\Appearance"

[.Security]

С помощью inf-файлов можно не только копировать файлы, но и назначать права доступа к копируемым файлам. Для этого и предназначен раздел вида "имя раздела, описывающего копируемые файлы».Security" В этом разделе содержится строка DACL, присваиваемая всем файлам, определенным в соответствующем разделе, указанном в ключевом слове CopyFile.

Пример
Код:

[version]
Signature = $CHICAGO$

[DestinationDirs]
CP = 53, Рабочий стол

[CP]
qwerty.inf

[CP.Security]
"D:P(A;CI;GR;;;AU)(A;CI;GA;;;BA)(A;CI;GA;;;SY)(A;CI;GR;;;NS)(A;CI;GR;;;LS)(A;CI;CCDCLCSWRPSDRC;;;NO)"

[DefaultInstall]
CopyFiles= CP

PerUserRemove

Если существует секция PerUserInstall, то должна быть и обратная PerUserRemove (подглядел в инстале Win 98)
Данная секция обратна секции PerUserInstall и скорее всего отвечает за выведение из списка Active Setup.

Пример:

Код:

......
[Uninstall]
;BeginPrompt=BeginPromptSection
;EndPrompt=EndPromptSection
Delfiles=PLAYER.Files.Sys
DelReg=UninstallKey.Reg,DelUninstallKey,PLAYER.Add.Reg,PLAYER.Add.Reg.User
UpdateInis=PLAYER.Update.Ini,Update.Ini.User.Remove,PLAYER.Update.Ini.User,Update.Ini.User.Remove
PerUserInstall=Player.Stub.Remove


[Player.Stub.Remove]
DisplayName=%PackageName%
ComponentID=VDOPlayer
GUID={58A00AC3-777B-11CF-827D-0020AFF5FF72}
IsInstalled=0
Version=2,0,2,0
Locale=EN
StubPath=rundll32.exe advpack.dll,LaunchINFSection %17%\vdolive.inf,PerUserRemove

[PerUserRemove]
DelReg=PLAYER.Add.Reg.User
UpdateInis=Update.Ini.User.Remove,PLAYER.Update.Ini.User



10.04.08 добавил описание секции [.Security] использующую DACL
19.04.08добавил описание секции PerUserRemove
22.04.08 обновил описание UpdateIniFields

volk1234 12-04-2008 01:44 779949

Обновлено руководство по написанию аддонов.
+Пример 3. Разбор конструктора K-lite codek pack.


Пример 3. Разбор конструктора K-lite codek pack

читать дальше »
В данном примере рассмотрим устройство аддона-конструктора.
В основе аддона - возможность создания "тихой" установки K-lite с помощью ключа
инсталятора -unnatended. После запуска установки с этим ключом происходит, эмуляция
установки с обычном набором окошек: выбор папки установки, выбор устанавливаемых
кодеков. В результате мы получаем набор файлов для автоматической установки программы:
klmcp.ini, klmcp.bat и сам дистрибутив, переименованый в klmcp.exe, для краткости.
Автоустановка запускается через командный файл который состоит из одной строки
запускающий установку в "тихом" режиме и подключающий ini- файл с настройками:

Код:

@klmcp.exe /verysilent /norestart /dir="%ProgramFiles%\K-Lite Codec Pack" /LoadInf=".\klmcp.ini"
Вобщем то приведенной информации достаточно чтобы создать аддон типа SVCPACK, запаковав
файлы Winrar в виде SFX архива, с "тихим" запуском батника при распаковке.
Для создания же конструктора лучше сократить количество действий пользователя при его сборке. Автор
аддона рассудил также и решил создать комбинированный конструктор (Sysoc+svcpack).

Посмотрим на структуру папок готового аддона:

Код:

KLiteMega
      +Files       
            -+ForceCopy
                    --+SVCPACK
                      ---klinst.exe  - установка K-lite
              --klmcp.bat
              --klmcp.exe      > файлы автоустановки K-lite
              --klmcp.ini
              --KLITE.IN_    - inf для копирования файлов на текстовом этапе
      -conflict
      -dosnet
      -Run
      -sysoc
      -txtsetup              > конфигурационные файлы
      -addon.nfo

На текстовом этапе файлы аддона копируются во временную папку %Windir%\Temp\KL:

KLITE.inf
Код:

.....
[DestinationDirs]
klite.Copy=10,"Temp\KL"

[klite.Copy]
klmcp.bat,,,4
klmcp.exe,,,4
klmcp.ini,,,4

Фактически это и все что делается на текстовом этапе через Sysoc.

Установка кодеков происходит на Т13, для чего через Run создан пустой 7zip SFX-архив
с командами установки в коментарии архива.

klite.exe
Код:

RunProgram="hidcon:\"klmcp.bat\""
InstallPath="%SystemRoot%\\Temp\\KL"
GUIMode="2"
Delete="%SystemRoot%\\Temp\\KL"

Как видно ничего сложного, запускается коммандный файл в скрытом режиме, в качестве
папки источника для установки указана "%SystemRoot%\\Temp\\KL", куда на текстовом режиме
установки Windows , были скопированы необходимые файлы. Затем временная папка удаляется.

Это весь аддон. Как видно ничего сложного нет. Файлы установки лежащие в папке аддона
Files\ForceCopy можно заменять новыми версиями K-lite, по мере необходимости.
Можно спорить со способом реализации аддона выбранным автором, но аддон работает и это главное.

volk1234 14-04-2008 03:01 780927

Обновлено руководство по написанию аддонов.
+Приложение 2. Тонкости использования inf- файлов. (в этом посте)

*Думаю это будет самый пополняемый раздел руководства. Или вообще он не в тему здесь ??

Приложение 2. Тонкости использования inf- файлов.
читать дальше »

1. DIR IDs

В руководстве по написанию INF-файлов дан наиболее полный перечень стандартных DIRID, однако по непонятной причине не
указаны специальные переменные оболочки. Привожу наиболее полный список от Gosh
Код:

        Value                Shell Special Folder

        16384                %userprofile%\Desktop (Рабочий стол)
        16386                %userprofile%\Start Menu\Programs (группа Программы меню Пуск)
        16389                %userprofile%\My Documents (папка Мои документы)
        16390                %userprofile%\Favorites (папка Избранное)
        16391                %userprofile%\Start Menu\Programs\Startup (группа Автозагрузка)
        16392                %userprofile%\Recent (Недавние документы)
        16393                %userprofile%\SendTo (папка для меню Отправить)
        16395                %userprofile%\Start Menu (меню Пуск или папка Главное меню)
        16397                %userprofile%\My Documents\My Music (папка Моя музыка)
        16398                %userprofile%\My Documents\My Videos (папка Мои видеозаписи)
        16400                %userprofile%\Desktop (Рабочий стол)
        16403                %userprofile%\NetHood (папка Сетевое окружение)
        16404                C:\WINDOWS\Fonts (папка Шрифты)
        16405                %userprofile%\Templates (папка Шаблоны)
            16406 *          %allusersprofile%\Start Menu
        16407 *        %allusersprofile%\Start Menu\Programs (группа Программы меню Пуск)
        16408*        %allusersprofile%\Start Menu\Programs\Startup (меню Пуск или папка Главное меню)
        16409 *        %allusersprofile%\Desktop (Рабочий стол)
            16410              %userprofile%\Application Data
        16411                %userprofile%\PrintHood (папка Принтеры)
        16412                %userprofile%\Local Settings\Application Data
        16415 *        %allusersprofile%\Favorites (папка Избранное)
        16416                %userprofile%\Local Settings\Temporary Internet Files
        16417                %userprofile%\Cookies
        16418                %userprofile%\Local Settings\History
        16419 *        %allusersprofile%\Application Data
        16420                System Root (C:\WINDOWS)
        16421                C:\WINDOWS\System32
        16422                Program Files
        16423                %userprofile%\My Documents\My Pictures (Мои рисунки)
        16424                %userprofile%
        16425                C:\WINDOWS\System32
        16427                C:\Program Files\Common Files
        16429 *        %allusersprofile%\Templates (папка Шаблоны)
        16430 *        %allusersprofile%\Documents (папка Мои документы)
        16431 *        %allusersprofile%\Start Menu\Programs\Administrative Tools
        16432                %userprofile%\Start Menu\Programs\Administrative Tools
        16437 *        %allusersprofile%\Documents\My Music (папка Моя музыка)
        16438 *        %allusersprofile%\Documents\My Pictures (Мои рисунки)
        16439 *        %allusersprofile%\Documents\My Videos (папка Мои видеозаписи)
        16440                C:\WINDOWS\resources
        16441                C:\WINDOWS\resources\0409
        16443                %userprofile%\Local Settings\Application Data\Microsoft\CD Burning

*Для удобства выделены DIRID ссылающиеся на %allusersprofile%
NB Помните, что во время установки Windows переменная %userprofile% =%defaultuser% (других пользователей еще не существует)


2. Методы деинсталяции.

Один из проблемных моментов, корректное удаление установленного приложения.

Первое что нужно сделать это еще при установке приложения добавить наряду с другими строку для удаления приложения в реестр с указанием сеции отвечающей за деинсталяцию:
Код:

HKLM,"%Key%","DisplayName",,"SOMEAPP"
HKLM,"%Key%","DsiplayIcon",,"16422,"SOMEAPP",0"

HKLM,"%Key%","UninstallString",,"rundll32.exe advpack,LaunchINFSectionEx %17%\SOMEONE.inf,Uninstall"
KLM,"%Key1%","SOMEAPP",0x00020000,"C:\Program Files\SOMEAPP\SOMEAPP.exe"
HKLM,"%Key2%","Start Minimized",0x10001,01,00,00,00

Способ 1. "По учебнику"

Используем инструкции DelDirs и DelFiles.
Код:

[DefaultInstall]
CopyFiles=files

[files]
filename.ext

[DestinationDirs]
files= 11, APPDIR

;из секции деинсталяции сначала запускаем удаление всех файлов, для этого желательно
;создавать отдельную секцию со списком удаляемых файлов, хотя допустимо и использовании секции
;со списком для копирования (если нет переименования, специальных флагов)

[Uninstall]
DelFiles=files
RunPostSetupCommand=SOMEAPP.AdinfCall
; затем запускаем через RunPostSetupCommand библиотеку advpack для обработки команды Deldirs

[SOMEAPP.AdinfCall]
Commandline="""%11%\rundll32.exe"" advpack,LaunchINFSection ""%17%\SOMEONE.inf"",Del.Folders,4"

[Del.Folders]
Deldirs=dirs
;передаем список директорий для удаления

[dirs]
%11%, APPDIR

NB Нужно учитывать важный момент: если не все файлы не удалены из папок, DelDirs не сработает. Если вы удаляете папку содержащую подпапки (даже пустые), DelDirs не сработает.
Так что сначала надо удалить файлы, затем подпапки "с меньшей", и только затем корневую папку приложения

Способ 2. "Радикальный"

Используется внутреняя команда библиотеки rundll32 DelNodeRunDLL32 для удаления непустых директорий.

Будем продолжать работать с предыдущим примером:
Код:

[Uninstall]
DelFiles=files
RunPostSetupCommand=Del.Folders

[Del.Folders]
rundll32.exe advpack,DelNodeRunDLL32 "%11%, APPDIR"

NB Нужно учитывать важный момент: если файлы в удаляемой папке заняты системой \ выполняются, DelNodeRunDLL32 не сработает. В следующим способе вы увидите
способ решения этой проблемы через консольную команду TASK KILL.

Способ 3. "Готовый шаблон"

Данный способ предложил Jameszero.

Код:

[Version]
Signature="$Windows NT$"
AdvancedINF=2.5

[Optional Components]
Programm_1

[Programm_1]
OptionDesc                        =%PROG_NAME%
Tip                                =%PROG_INFO%
Modes                                =0,1,2,3
AddReg                        =PROG.AddReg
ProfileItems                        =PROG.AddShortcut

[DefaultInstall]
AddReg                        =PROG.AddReg
ProfileItems                        =PROG.AddShortcut

[Uninstall]
BeginPrompt                        =BeginUnInsPrompt
RunPreSetupCommands        =Close.Prog:1
RunPostSetupCommands        =Dir.Delete
EndPrompt                        =EndUnInsPrompt
DelReg                        =PROG.DelReg
ProfileItems                        =PROG.DelShortcut
DelFiles                        =Del.PNF

[BeginUnInsPrompt]
Title                                =Деинсталляция %PROG_NAME%
Prompt                                =Вы действительно хотите удалить %PROG_NAME% и все компоненты программы?
ButtonType                        =YESNO

[Close.Prog]
TASKKILL /F /IM %PROG_1%
TSKILL %PROG_2%

[Dir.Delete]
rundll32.exe advpack.dll,DelNodeRunDLL32 %16422%\%PROG_DIR%

[EndUnInsPrompt]
Prompt                                =Программа %PROG_NAME% удалена.

[DestinationDirs]
Del.PNF                        =17

[Del.PNF]
%PROG_PNF%

[PROG.AddReg]
HKLM,"%SWUninstall%\%PROG_NAME%_addon","DisplayIcon",0,"%16422%\%PROG_DIR%\%PROG_1%"
HKLM,"%SWUninstall%\%PROG_NAME%_addon","DisplayName",,%PROG_NAME%"
HKLM,"%SWUninstall%\%PROG_NAME%_addon","DisplayVersion",,"v%PROG_VERS%"
HKLM,"%SWUninstall%\%PROG_NAME%_addon","Publisher",,"%PROG_MADE%"
HKLM,"%SWUninstall%\%PROG_NAME%_addon","URLInfoAbout",,"%PROG_URL%"
HKLM,"%SWUninstall%\%PROG_NAME%_addon","UninstallString",,"rundll32.exe advpack.dll,LaunchINFSection %PROG_INF%,Uninstall"

[PROG.DelReg]
HKLM,"%SWUninstall%\%PROG_NAME%_addon"

[PROG.AddShortcut]
Name                                =%SRTC_NAME%
CmdLine                        =16422,%PROG_DIR%,%PROG_1%
WorkingDir                        =16422,%PROG_DIR%
SubDir                                =%PROG_SDIR%
InfoTip                                =%PROG_INFO%

[PROG.DelShortcut]
Name                                =%SRTC_NAME%,0x00000002
SubDir                                =%PROG_SDIR%

[Strings]
PROG_DIR                        ="Miranda IM"
PROG_NAME                        ="Miranda IM"
SRTC_NAME                        ="Miranda IM"
PROG_VERS                        ="0.7"
PROG_MADE                        ="oszone.net"
PROG_URL                        ="http://forum.oszone.net/forum-62.html"
PROG_INF                        ="miranda.inf"
PROG_PNF                        ="miranda.PNF"
PROG_1                        =miranda32.exe
PROG_2                        =miranda32
PROG_SDIR                        =""
PROG_INFO                        ="Программа для общения по ICQ протоколу"
SWUninstall                        ="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"

При редактировании только одной секции [String] и переименовании секции инсталляции, можно использовать этот inf для установки/удаления других аддонов. Аддоны должны быть комбинированные, т.е. сначала из sysoc срабатывает данный inf файл, а затем из SVCPACK запускается sfx архив, созданый любым доступным способом, при этом, sfx архив должен просто распаковать файлы в нужную директорию.
Создание ярлыков, внесение информации в реестр (в том числе о деинсталляции) реализовано в inf файле.

Деинсталляция перенесена из привычного для sysoc аддонов места "Установка компонентов Windows" в Установку и удаление программ"
При деинсталляции будет выдан запрос "Вы действительно хотите удалить такую то программу?",
Если программа в данный момент запущена, она будет выгружена из памяти, далее произойдёт удаление директории с программой, ярлыков, записей реестра.
По окончании деинсталляции будет сообщено "Программа такая то удалена". Удаляется PNF-файл созданный при установке программы. PNF - файл это компилированный (pre-compilled) INF- файл, необходим один раз при установке.


3. Создание ярлыков


1.Cоздание/удаление ярлыка в контекстном меню "Отправить" (SendTo) с помощью inf

Код:

[Version]
Signature="$Windows NT$"

[DefaultInstall]
ProfileItems                =PROG.AddShortcut

[Uninstall]
ProfileItems                =PROG.DelShortcut

[PROG.AddShortcut]
Name      = "Send_To_Shortcut",0x00000008,9
CmdLine    = 11,,prog.exe

[PROG.DelShortcut]
Name      = "Send_To_Shortcut",0x0000000A,9

2. Cоздание и удаление ярлыка в Quick Launch

Код:

[Version]
Signature="$Windows NT$"

[DefaultInstall]
ProfileItems        =PROG.AddShortcut

[Uninstall]
ProfileItems        =PROG.DelShortcut

[PROG.AddShortcut]
Name                =%SRTC_NAME%,0x00000001
CmdLine                =16422,%PROG_DIR%,%PROG_1%
WorkingDir        =16422,%PROG_DIR%
SubDir                =%PROG_SDIR%
InfoTip                =%PROG_INFO%

[PROG.DelShortcut]
Name                =%SRTC_NAME%,0x00000003
SubDir                =%PROG_SDIR%

[Strings]
PROG_DIR        ="test_dir"
SRTC_NAME        ="Test_Shortcut"
PROG_1                =test.exe
PROG_SDIR        ="..\..\Application Data\Microsoft\Internet Explorer\Quick Launch"
PROG_INFO        ="Test_Info"

3. Cоздание и удаление ярлыка на Рабочем Столе

Код:

[DefaultInstall]
ProfileItems        =PROG.AddDeskShortcut

[Uninstall]
ProfileItems        =PROG.AddDeskShortcut

[PROG.AddDeskShortcut]
Name                =%SRTC_NAME%,0x00000001
CmdLine                =16422,%PROG_DIR%,%PROG_1%
WorkingDir        =16422,%PROG_DIR%
SubDir                =%PROG_SDIR3%
InfoTip                =%PROG_INFO%

[PROG.DelDeskShortcut]
Name                =%SRTC_NAME%,0x00000003
SubDir                =%PROG_SDIR3%

[Strings]
SRTC_NAME = "Имя ярлыка"
PROG_DIR = "Путь к папке программы в Program Files"
PROG_1 = ИмяФайла.exe
PROG_INFO="Всплывающее сообщение"
PROG_SDIR3        ="..\..\Рабочий стол"

Из выше приведенных примеров видно, что ярлык практически в любой локальной папке пользователя в "Documents and Settings" можно создать при помощи
пути SubDir = "..\..\Путь к папке внутри "Documents and Settings".

4. Cоздание и удаление нескольких ярлыков

Это элементарно, но некоторые пользователи все еще путаются.

Код:

[DefaultInstall]
ProfileItems        =PROG.AddShortcut1, PROG.AddShortcut2, PROG.AddShortcut3

[Uninstall]
ProfileItems        =PROG.DelShortcut1, PROG.DelShortcut2, PROG.DelShortcut3

[PROG.AddShortcut1]
Name                =%SRTC_NAME1%,0x00000001
CmdLine                =16422,%PROG_DIR%,%PROG_1%
WorkingDir        =16422,%PROG_DIR%
SubDir                =%PROG_SDIR1%
InfoTip                =%PROG_INFO%

[PROG.AddShortcut2]
аналогично

[PROG.AddShortcut3]
аналогично

[PROG.DelShortcut1]
Name                =%SRTC_NAME1%,0x00000003
SubDir                =%PROG_SDIR1%

[PROG.DelShortcut2]
аналогично

[PROG.DelShortcut3]
аналогично

Важно: Пока нет профиля реального пользователя (а его нет до первого входа в систему), ярлыки имеющие флаг 0x00000001 будут создаваться в дефолтном профиле. При установке на "живой" системе, ярлык с флагом 0x00000001 будет создан только у текущего пользователя. Соответственно 0x00000003 - Удалить пункт меню (ярлык) для текущего пользователя.


4.Всяко разно

1. Cоздание папки.
Если надо просто создать пустую папку, без копирования файлов
Код:

"rundll32.exe IEAKENG.dll, BToolbar_SaveA d:\Folder"
Пример использования

Код:

[version]
Signature = "$CHICAGO$"
AdvancedINF=2.5

[DefaultInstall]
RunPreSetupCommands=RunPre

[RunPre]
;создаем папку backup на диске d:.
;После создания папки, экспортируем в нее reg-файл.
"rundll32.exe IEAKENG.dll, BToolbar_SaveA d:\backup"
"reg export HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerAppKey d:\backupAppKeyBackup.reg"

Заметил интересную штуку, если писать "rundll32.exe IEAKENG.dll, BToolbar_SaveA d:Folder" без слэша и
папка Folder существует, она удаляется ! (по крайней мере в Cmd).

2.Полезные утилиты при работе с inf\cab файлами.

3.Несколько команд интерпретатора advpack не включенных в Руководство по INF- файлам.

4.Флаги ProfileItems (опять Gosh).

Есть в руководстве по INF файлам, но по этому списку более понятна логика складывания флагов:
Код:


0x00000001        Создать пункт меню для текущего пользователя
0x00000002        Удалить пункт меню
0x00000003        Удалить пункт меню для текущего пользователя
0x00000004        Создать пункт меню для профиля All Users в папке Пуск\Все программы
0x00000005        Создать пункт меню для профиля Current User в папке Пуск\Все программы
0x00000006        Удалить пункт меню для профиля All Users в папке Пуск\Все программы
0x00000007        Удалить пункт меню для профиля Current User в папке Пуск\Все программы

5. Копирование файлов из секции CopyFiles

Оказывается, раздел CopyFiles может копировать файл непосредственно в секции [DefaultInstall]!
Для этого перед файлом нужно поставить символ @. Следующий пример копирует два файла:

Код:

CopyFiles=@myfile.txt, @anotherfile.txt
6.Отображение и запуск файлов.

В процессе установки можно прервать выполнение INF файла для показа пользователю какого-нибудь документа, после закрытия которого установка продолжиться, или запустить определенный процесс. Следующий пример отображает файл справки About.hlp, текстовый файл About.txt и запускает другой INF-файл - Example.inf.
Код:

[Version]
Signature=$Chicago$

[DefaultInstall]
AddReg=ExampleView

;Отображение файла справки About.hlp
[ExampleView]
HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,,"WINHLP32.EXE - Main %1%\About.hlp"

;Отображение текстового файла About.txt
HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,,"notepad %1%\About.txt"

;Запуск файла сценария Example.inf
HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,,"rundll setupx.dll,InstallHinfSection DefaultInstall 132 %1%\Example.inf"

;Определяете название, которое будет отображатся в
;окне "Установка Windows..."
[Strings]
ABOUT="О программе ..."

После того, как определенные в секции [ExampleView] команды выполнятся, записи, добавленные в реестр, будут автоматически удалены из него. Таким способом можно запускать и другие процессы, например, аплеты Панели управления:
Код:

;Запуск апплета Панели управления - Свойства: Система (SYSDM.CPL)
HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,%ABOUT%,,"rundll32 shell32,Control_RunDLL SYSDM.CPL"


7. Копирование одного и того же файла в разные папки.

Код:

[DestinationDirs]
File.Copy=16422,"Prog"
FileYet.Copy=16422,"Prog\Subdir"

[File.Copy]
filename.dll,,,4

[FileYet.Copy]
filename.dll,,,4





Shido 14-04-2008 03:15 780928

volk1234,
Цитата:

Цитата volk1234
+Приложение 2. Тонкости использования inf- файлов. (в этом посте)
*Думаю это будет самый пополняемый раздел руководства. Или вообще он не в тему здесь ?? »

В тему.

У тебя есть материал по PerUSER? так и не смог заставить сработать.

volk1234 14-04-2008 03:40 780931

Я не пробовал, но мне кажется здесь причина в необходимости перезагрузки....
Плюс неизвестен синтаксис и контекст использования инструкции PerUserInstall(на MSDN не нашел)

Вот пример с парой неизвестных инструкций типа IsInstalled
читать дальше »
Код:

DelReg = dxxspace.addreg
Addreg = dxxspace.remove.reg
UpdateInis = dxxspace_remove.links
PerUserInstall = dxxspace_remove.links.pui
Reboot = 1

[dxxspace_remove.links]

STOOLS_DESC%"
setup.ini, group11,, """%DrvSpace_Desc%"""
setup.ini, group11,, """%CmpAgent_Desc%"""

[dxxspace_remove.links.pui]

GUID = "PerUser_dxxspace_Links"
DisplayName = %PUI_DESC_DXXSPACE_LINKS%
Version = %PUI_VERSION%
IsInstalled = 0
StubPath = "rundll.exe%11%\setupx.dll,InstallHinfSectionPerUser_dxxspace_remove_Links 64 %17%\applets1.inf"


Shido 14-04-2008 04:06 780932

volk1234,

GUID это идентефикатор компонента вида {F33DE697-954D-4a23-9732-05D939D63C79} (возможно без скобок).
DisplayName это текстовая строка-описание действия.
Version для чего версия я так и не понял, возможно используется для контроля.
IsInstalled ключь выполнения.
StubPath команда запуска инфа или определённой секции из него.

Синтаксис соответсвует тому который я исползовал, но соответсвующих записей в реестре не создаётся, мне приходится использовать другую ручную конструкцию. Не принципиально конечно, просто хотелосьбы разобратся. Тем более что в руководстве по инфам этой информации нет.

Код:

[Version]
Signature="$Windows NT$"
SetupClass=BASE

[WINRAR]
ADDREG=WINRAR.PERUSER.REG

[PERUSERSTUB]
ADDREG = WINRAR.HKCU.REG,WINRAR.HKCR.REG
PROFILEITEMS=WINRAR.ADDSHORTCUT.1,WINRAR.ADDSHORTCUT.2,WINRAR.ADDSHORTCUT.3

[WINRAR.PERUSER.REG]
HKLM,"%KEY%\%GUID%",,,"WinRAR Theme Install and Configuration Profile"
HKLM,"%KEY%\%GUID%","ComponentID",,"WINRAR"
HKLM,"%KEY%\%GUID%","DontAsk",0x00010001,2
HKLM,"%KEY%\%PGUID%","Locale",,"RU"
HKLM,"%KEY%\%GUID%","StubPath",,"rundll32.exe advpack.dll,LaunchINFSection %17%\WINRAR.inf,PERUSERSTUB"
HKLM,"%KEY%\%GUID%","IsInstalled",0x00010001,1

[STRINGS]
KEY = "SOFTWARE\Microsoft\Active Setup\Installed Components"
GUID = "{F33DE697-954D-4a23-9732-05D939D63C79}"

Использую для применения оформления WinRAR-а под всеми вновь создающимися пользователями *понятное дело что здесь не весь инф*

volk1234 14-04-2008 12:34 781080

Я знаю еще меньше чем вы, поэтому пара вопросов:
1. А сам параметр PerUserInstall где?
2. Пробовали с моментальной перезагрузкой?

Вот к чему в предыдущем сообщении ссылался на синтаксис.
Достаточно 1 неуказанного параметра, флага, запятой и все.
Так что гадать ИМХО бесполезно

Shido 14-04-2008 12:47 781086

volk1234,
Цитата:

Цитата volk1234
. А сам параметр PerUserInstall где? »

Я же говорю это альтернатива - я прописываю в SOFTWARE\Microsoft\Active Setup\Installed Components необходимые строки поэтому и нет PerUserInstall *подглядел в Windows Media Player 10* Оригинальный синтоксис проще, но заставить его заработать так и не получилось.
Цитата:

Цитата volk1234
2. Пробовали с моментальной перезагрузкой? »

Свой вариант, да, пробовал. Не помогало.
Поэксперементирую с вашим - можно полный инф и ссылку?

volk1234 14-04-2008 13:40 781121

Цитата:

Цитата Shido
можно полный инф и ссылку? »

:) это с msdn единственное что нашло по PerUserInstall, там вообщето цель другая была
решение проблемы с установкой утилиты. Я для примера синтаксиса привел..
ссылка

Shido 14-04-2008 17:02 781251

volk1234, понял поэксперементирую.

volk1234 14-04-2008 22:27 781420

УРРА !!!
Руководство готово! Я сделал все что задумывал. Хотя нет, МЫ сделали.
Косвенно помогло очень много людей. Спасибо вам всем.
Я сам не ожидал от себя столько букв.

Теперь хотел посоветоватся со всеми, что на ваш взгляд стоит добавить\исправить в Руководстве ???
После обсуждения Руководство будет переведено в статью в разделе Автоматическая установка.
Ну и подумываю насчет chm..
===============
Спасибо,
Petya Vase4kin за Update Pack и возможность писать под него свои аддоны, за всегда квалифицированную помощь
Vadikan за фантастическую поддержку от сайта (ну и за моральную тоже)
JamesZero за техподдержку и выдержку
Gora за идеи перешедшие в Руководство (еслибы тогда не потявкались, у меня может и стимула не было бы писать)
Vserd и Master Fess за помощь в проверке Руководства
Drinko (неустанно жавшему "Полезное сообщение" )
и всем всем....
===============

Zetoke 14-04-2008 23:30 781460

volk1234, В тхт-файле пожалуйста выложи.

Drinko 15-04-2008 02:02 781535

volk1234, а хде благодарности за ссылки (да и не только) ;)
, кстати на благодарности жал, чтоб тебя в контрибутеры выдвинули...
2mods: за эту работенку volk1234 достоин звания КОНТРИБУТЕР

volk1234 15-04-2008 02:10 781538

Вот вам. :)
Я написал вам спасибо, в целом за все,
крометого надпись в шапке
использованы идеи: Petya V4sechkin, Gora, Vek, XXXler, Jameszero, Vserd, Gosh, Drinko, BoaSoft, Master Fess
перейдет в руководство.
*Позже* Блин пришлось отменить "полезное сообщение" за прошлый пост, а то подхалимски выглядело...:)

#служебный пост#
временно перенес из шапки сюда приложение 1(там нет места)

Приложение 1. Таблица префиксов.
читать дальше »
Цифровой префикс Назначение Пример
0 Служебные
0-HTMLINFO
1 Аддоны базового набора
1-BASECSP
1-FLASH
1-HDA
1-IE
1-IMAPI2
1-MMC3
1-MSXML
1-MU
1-PKGINST
1-PNRP
1-RDC6
1-ROOTSUPD
1-WEBFLDRS
1-WGA
1-XPNETDG
2 Разного рода обновления и дополнения встроенных компонентов ОС.
2-SHOCKWAVE
2-DOTNET35
2-DX9U
2-HTMCD
2-WMP11RUS
3 Неофициальные обновления или не рекомендуемые обновления ОС.
3-KB893056-MSGINA
3-KB901190-IME
3-EXTREMEPACK
4 Хаки
4-OOBE
4-RAID
4-RCADMIN
4-NODEP
5 Различные DLL и OCX файлы
5-EXPEXT
5-HASHTAB
5-PRIO
5-TARGET
6 Аддоны, предназначенные для внесения изменений в реестр и настройки ОС
6-UNPNC
6-XPRIGHTS
6-MYCUSTOM
7 Программы сторонних производителей.
7-WINRAR
7-EMEDITOR7
7-REGSHOT
7-SALAMANDER
7-VOLUMEC
8 Аддоны, предназначенные для удаления компонентов ОС и драйверов.
8-DEL_CAM
8-DEL_LANDRV
8-DEL_MODEM
8-DEL_MULTIPORT
8-DEL_PRN
8-DEL_SCANER
8-DEL_SCSI-4
8-DEL_VIDEODRV
8-DELBMPINWIN
8-DELGAMES
8-DELMOUSETOUR
8-DELNETMEETING
8-DELPINBALL
8-DELSCR
8-DELWINTOUR
8-DELWMPTOUR
8-DELZONEGAMES
9 Служебные. Предназначены для пост-обработки информации или создания образа.
9-ZLOG
9-BCDW

Drinko 15-04-2008 05:19 781577

Цитата:

Цитата volk1234
Блин пришлось отменить "полезное сообщение" за прошлый пост, а то подхалимски выглядело...»

У ти какой нехороший хгы-хгы :)

volk1234, я уже давно предлагаю для Del аддонов ставить префикс zz_ (т.д. если аддон называется Del, то переименовываем его в zz_Del (чтобы в самом конце паком обрабатывались)) и ошибок нет, и юзеры вопросов типа: А почему у меня это не сработало? А почему у меня лог не "чистый"? задавать не будут...

Zetoke 15-04-2008 07:39 781598

Цитата:

Цитата Drinko
кстати на благодарности жал, чтоб тебя в контрибутеры выдвинули... »

Это кстати играет не такую большую роль. Смотрится ведет ли человек свои проекты, активен ли на форуме и т.д. (Где-то прочитал, не помню где, но точно помню, что полезняшки не играют такой уж большой роли)
Не бейте за оффтоп :)

dimich22 15-04-2008 09:03 781627

Чтобы закрыть тему обсуждения контрибьютеров и прочие полезняшки. Действительно, звание Contributor присваивается не за конкретное количество полезных сообщений, а по совокупности. В общем, за вклад в развитие проекта OSZone. На примере nordviking, который является ньюсмейкером вполне можно это наблюдать. Тоже самое касается и людей, наполняющих wiki. Мнение участников форума несомненно учитывается, но решение принимает административный состав. Надеюсь, на этом закончим и вернемся непосредственно к созданию руководства.

unikum111 15-04-2008 09:28 781636

volk1234, может есть смысл сделать руководство в *.chm формате, после выхода финала, естественно?

volk1234 15-04-2008 11:22 781699

Цитата:

Цитата volk1234
После обсуждения Руководство будет переведено в статью в разделе Автоматическая установка.
Ну и подумываю насчет chm.. »

Люди мне стыдно, но какая стандартная кодировка у текстовых файлов? utf-8 ?ansi ? unicode ?
В руководстве написал, файлы должны быть в стандартной кодировке, а какая она стандартная...?

DyadyaGenya 15-04-2008 22:57 782206

volk1234, я в другой ветке привел пример использования "тихой" установки sysoс аддона, по правде говоря просто взял на себя смелость привести его, поскольку нигде не встречал подобного, да и на мой взгляд нигде не было примеров быстрой проверки работоспособности таких адонов, только про установку с виндой читал, у svpack просто устанавливали на готовую винду и все, проверка закончена. Может и зря затеял это, но помоему стоит добавить в статью и пункт как проверка работоспособности?

Drinko 16-04-2008 01:11 782254

Цитата:

Цитата volk1234
но какая стандартная кодировка у текстовых файлов? »

по идее ANSI, но воспрнимает и:
Цитата:

Цитата volk1234
utf-8 »

, что есть более универсально...
Цитата:

Может и зря затеял это, но помоему стоит добавить в статью и пункт как проверка работоспособности?
из Вашего сообщения, вообще не понятно, что Вы хотите проверить.. (не svpack, а svcpack)

volk1234 16-04-2008 03:00 782279

Цитата:

Цитата DyadyaGenya
пример использования "тихой" установки sysoс аддона »

если вы сможете привести пример "громкой" установки sysoс аддона вам сразу дадут MVP :)

Проверка работоспособности вопрос очень важный, проверить на виртуальной машине или рабочей системе одно дело,
а на конкретной системе где глючит память, блок питания на 200W, винт стучит и сгоревшая сетевуха, и директор жмется потратить 50 баксов, другое дело.
И оба примера никто не посчитает "эталоном" ...

DyadyaGenya 16-04-2008 13:24 782512

volk1234,
Цитата:

Цитата volk1234
И оба примера никто не посчитает "эталоном" »

честно говоря не понял про какие оба примера идет речь, но думаю, если глючит железо, то никакая прога не станет, всеравно, встроена она в винду или ставиться на готовую, надо железо ремонтировать, это я говорю как железячник, я ведь даже не програмист и не админ, 3 месяца назад впервые сел за разборку прог :-) а если директор жмется, то просто железо делаеться "нерабочим" и не приколупаешься, хочет-нехочет, а придеться обновить, всеравно на стучащем винте далеко не уедешь, и если память битая, темболее, даже неро не ставится :-) сразу глюк выдает

и я не знаю что такое
Цитата:

Цитата volk1234
MVP »

:-) но просто сам успел устать от бесконечной переустановки винды ради проверки работоспособности одного единственного аддона, и как я говорил, нигде не нашел способов проверки, кроме как на виртуальной машине, вот и предложил способ :-) быстро проверить, а так называемая громкая в любом случае (как мне кажеться) используеться при написании программ :-) просто зашиваеться внутрь с помощью вспомагательной типа инносетап или мси

Drinko, проверять sysoc-аддоны, как, например регестряться библиотеки, или записи в реестр заносяться, даже на ярлыках лично я спотыкался долгое время, не говоря уже про работоспособность удаления, если б знал как быстро проверить то потратил бы меньше времени. В любой теме посвященой тому или иному аддону обязательно встречаються вопросы типа "это не работает, то не работает", и ответ, мол "буду переустанавливать винду проверю". и думаю уж если все срабатывает на готовой винде, то в апдейт пак от Пети точно встроиться :-) без проблем и со всеми нужными настройками :-)
Цитата:

Цитата Drinko
не svpack, а svcpack »

просто очипетка :-) они у меня постоянно :-) и в русском тоже :-)

volk1234 16-04-2008 15:51 782617

DyadyaGenya
просто дайте ссылку на свой способ,
Цитата:

Цитата DyadyaGenya
volk1234, я в другой ветке привел пример использования "тихой" установки sysoс аддона »

а не просто " в другой ветке", мне весь форум перелопачивать?

А вообще на будщее, если не знаете, где написали, в вашем (или чужом) профиле(это ссылка такая в заголовке каждого сообщения "Профиль") есть фильтр "Найти все сообщения от .....",пользуяся которой я нашел ваш способ. Честно скажу понял с трудом, но вы наверное имеете в виду установку конкретного аддона, через inf- файл. Если так, то inf файл изначально предназначен и для установки на работающую систему.
Посмотрите мой пример в руководстве,по созданию аддона, так вот там как раз в последней части описывается как из inf установщика для рабочей системы, сделать аддон, какие секции добавить.
Повторюсь вкратце, для того чтобы аддон типа Sysos мог применятся на рабочей системе, в нем желательно наличие
сеции [DefaultInstall] - для запуска inf- файла из контекстного меню (а не через rundll32), из [SourceDisksNames] можно убрать I386,
в принципе если все лежит в одной папке, не нужны секции [OptionalComponents], инструкции Modes=, Parent=.

Но таким способом вы проверите только работоспособность установщика inf, а не работоспособность аддона, так как ошибка может быть в txtsetup, dosnet или sysoc либо проявлятся только в процессе установки системы...

DyadyaGenya 16-04-2008 18:38 782735

volk1234, ссылку дать как раз и был вопрос :-) теперь вроде нашел как и благодарю за подсказку как смотреть все сообщения любого автора, честно говоря не знал :-), да и были сомнения интересует это кого то или нет, да и способ врбщем то применил похоже как у вас :-)
только для собстевенной тренировки даю ссылку на то сообщение :-) как я понял вы уже посмотрели
http://forum.oszone.net/thread-60631-44.html

про txtsetup, dosnet или sysoc даже не подумал, казалось что они сработают обязательно, раз создавались с помощью компилятора, а секцию I386 вычислил, что её не можно, а нужно удалять, иначе выдает ошибку, и про [DefaultInstall] тоже вычислил можно сказать методом научного тыка, после прочтения статьи про инф-файл.
Мне запуск инф файла сильно помог экономить время, хотя бы потому что ещё иногда наступаю на грабли с реестром и другими секциями.

volk1234 17-04-2008 00:16 782935

Цитата:

Цитата DyadyaGenya
вроде нашел как и благодарю за подсказку как »

Продолжим ликбез, хотя эта тема и не предназначена для описания работы сайта, если вам было полезно предыдущее
сообщение, жмите "Полезное сообщение" ;) Это делается не только для выражения благодарности, по полезным сообщениям тоже
есть поиск...

Цитата:

Цитата DyadyaGenya
а секцию I386 вычислил »

Вот цитата из руководства по inf файлам.

Код:

[SourceDisksNames]
1 = "Drive_Name","data1.cab",subdir

тоесть i386 указывает путь к data1.cab. Если все файлы лежат в одной папке путь равен = 0;Хотя на самом деле в официальных источниках
последний параметр это номер диска, а не поддиректория. Номер диска за исключением установки из дистрибутива всегда должен быть равен=0;

Вообще хотел вам дать 2 совета,
1. Выражайтесь яснее, уж не в обиду, во многих ваших сообщениях сумбур, трудно понять что вы хотите спросить\сказать.
Выкладываемые вами код часто содержат только часть кода, по которому сложно что- то понять и помочь вам. Пользуйтесь вложениями,
тоесть прирепляйте к сообщению файл который у вас не работет, или залейте целиком аддон на файлообменник и дайте в сообщении ссылку. Для того, что бы Ваше сообщение было яснее, пользуйтесь кнопкой Предварительный просмотр, чтобы до отправки сообщения еще раз прочитать и подправить сообщение.

2. Как вы сами и признались, в написании скриптов у вас серьезные пробелы ( у меня не намного лучше :) ). Прочтите целиком Руководство по написанию аддонов (в шапке), которое здесь обсуждается. Перед этим прочтите Руководство по Автоматической установке и Руководство по Inf файлам . И вам станет значительно легче и проще писать аддоны.
Например вы четко будете знать что inf - файл это одно, а аддон это другое. Очень советую вам НЕ пользоватся компилятором аддонов,
а писать их вручную, дабы назубок выучить инструкции и секции, а компилятор скорее средство автоматизации для тех кто делает аддоны пачками, с большим количеством копируемых файлов.

volk1234 17-04-2008 03:29 782993

NEW Новое приложение к Руководству, думаю, будет интересно даже опытным авторам аддонов.

Приложение 7. Секция [Optional Components]

читать дальше »
Бродя по темным закоулкам Technet и просматривая одним глазом DDK и SDK KIT для Win98 я наткнулся на описание
загадочной секции использующейся для установки через sysoc.inf. Я подозревал, что это штатная секция INF файлов, просто не сильно
афишировавшаяся. Итак,

Секция [Optional Components]

Синтаксис:

Код:

[Optional Components]
Имя секции -ссылка на секцию в файле которую надо исполнить для установки
.....
[Имя секции] - сама установочная секция


Данная секция служит для добавления устанавливаемого приложения в список оснастки "Установка\Удаление программ \Компоненты Windows"
Секция не будет исполнена при попытке выполнить файл по правому щелчку мышью, через команду [Setupx.dll InstallHinfSection точка_входа] также
нельзя выполнить [Optional Components]. В первом случае будет выполнятся секция [DefaultInstall], во втором секция указанная точкой входа. Параметры
[Optional Components] будут игнорированны.

Насколько я понимаю для обработки дополнительных инструкций секции [Optional Components] и существует sysoc.inf, ocgen.dll, sysocmgr.exe.
В основном инструкции [Optional Components] служат для управления отображения компонентов в окне "Компоненты Windows".

Вернемся к синтаксису, в секцию установки могут быть добавлены следующие инструкции ОС:

Код:

OptionDesc=название дополнительного компонента
Tip=Подсказка в поле "Описание".
InstallDefault=0 | 1 ; Устанавливать компонент по умолчанию. 1=Да, 0=Нет.
IconIndex=Номер иконки для отображения
Parent= (имя секции\группы)группа или подгруппа в  "Компоненты Windows" (Пример:игры windows относятся к Parent=AccessUtil, аддоны 3dParty к Parent=NonMS)
Needs=имя секции, имя секции
Include=inf-файл, [inf-файл]


OptionDesc это строковой параметр задающий название дополнительного компонента отображающегося в "Компоненты Windows". Может быть задан через Strings.

Tip это текст подсказки в поле "Описание", ограничение - 255 символов. Может быть задан через Strings.

IconIndex это иконка которая будет отображатся рядом с названием компонента, привожу список в оригинале:

Код:

0 Machine (base and display)
1 Integrated circuit chip
2 Display
3 Network wires
4 Windows flag
5 Mouse
6 Keyboard (3 keys)
7 Phone
8 Speaker
9 Hard disks
10 Comm connector
11 Diamond (default value)
12 Checked box
13 Un-checked box
14 Printer
15 Net card
16 Same as 0
17 Same as 0 w/ a sharing hand underneath
18 Unknown (question mark)
19 Atwork
20 Greyed check box
21 Dial-up networking
22 Direct cable connection
23 Briefcase
24 Exchange
25 Partial check
26 Accessories group
27 Multimedia group
28 Quick View
29 MSN
30 Calculator
31 Defrag
32 Generic document
33 DriveSpace
34 Solitaire
35 HyperTerminal
36 Object Packager
37 Paint
38 Screen saver
39 WordPad
40 Clipboard Viewer
41 Accessibility
42 Backup
43 Bitmap document
44 Character map
45 Mouse pointers
46 Net Watcher
47 Phone Dialer
48 System Monitor
49 Help book
50 Globe (international settings)
51 Audio compression
52 CD player
53 Media Player
54 Sound scheme
55 Video clip
56 Video compression
57 Volume control
58 Musica sound scheme
59 Jungle sound scheme
60 Robotz sound scheme
61 Utopia sound scheme

Parent это инструкция указывабщая является ли компонент подчиненным или родительским. Если параметр отсутствует, то менеджер дополнительных компонентов
считает что компонент родительский. Если указать несуществующий родительский компонент (например сам аддон) менеджер компонентов зависнет в попытке найти такого родителя.
Для всех Авторов Аддонов должен быть только один вариант Parent=NonMS (аддон 3dParty)- дабы не загаживать менеджер дополнительных компонентов (конечно, кроме особых случаев).

Needs указывает на секцию другого дополнительного компонента от которого зависит устанваливаемый компонент. Секция долна быть в этом же файле, в противном случае
необходимо использовать Include.

Include присоединяет inf- файл стороннего компонента к текущей установке, что позволяет ссылатся на секции в присоединенном файле

InstallDefault скорее всего досталось в наследство от Win98, я пробовал ставить аддон с этим параметром=1 вместо Modes=0,1,2,3 , аддон не поставился, но в списке
компонентов появился и позволил доустановить себя. У кого получится отпишитесь. Пока могу посоветовать использовать Modes=0,1,2,3.

Пример:

Код:

[Optional Components]
InstallMyToys
InstallGames

[InstallMyToys]
OptionDesc=%Toys_DESC%
Tip=%Tomytoysys_TIP%
IconIndex=35 ;Иконка "Телефон"
Parent=MailApps
Needs=MSMAIL, MAPI, MicrosoftNetwork
Include=mos.inf, msmail.inf
CopyFiles=MyToysFiles
UpdateInis=MyToysLinks
AddReg=MyToysRegItems
   
[InstallOtherApps]
OptionDesc=%Other_DESC%
Tip=%Other_TIP%
IconIndex=4 ;windows mini icon for dialogs
CopyFiles=OtherFiles
UpdateInis=OtherLinks
AddReg=OtherRegItems
 
[Strings]
Toys_DESC="Почтовая утилита"
Toys_TIP="Дополнительные почтовые инструменты"
Other_DESC="Другие полезные утилиты"
Other_TIP="Калькулятор, очистка диска и монитор производительности"


Shido 17-04-2008 04:03 782999

volk1234,
Цитата:

Цитата volk1234
Include присоединяет inf- файл стороннего компонента к текущей установке, что позволяет ссылатся на секции в присоединенном файле »

Интересно, это проверено? Если я правильно понял то ссылатся можно только на инф в той же папке? Или коды директорий тоже работают?

volk1234 17-04-2008 04:46 783008

Цитата:

Цитата Shido
ссылатся можно только на инф в той же папке »

насколько я понимаю, при установке OC подразумевается что все inf - файлы лежат в одном месте- паке inf, на худой конец %windir%

Цель данной команды, запустить предустановку некоторых компонентов из одного \ нескольких inf файлов.

volk1234 19-04-2008 12:55 784723

добавил описание секции PerUserRemove

Возможно под ХР и не пашет уже? Хотя использует advpack

volk1234 20-04-2008 01:54 785203

Сегодня великий день - я закончил переносить Руководство на сайт
и наконец нашел где в этом форуме изменяется количество сообщений на странице :)

Vadikan 20-04-2008 04:34 785250

Ссылка на статью на сайте http://oszone.net/6946

В ближайшее время я постараюсь внимательно прочесть руководство, и если найдутся мелкие помарки, поправить их (ошибки в технических аспектах в подавляющем большинстве случаев вы можете выявить лучше меня ;)). После чего руководство будет включено в состав оффлайн версии сайта.

Я хочу поблагодарить всех, кто принимал участние в работе над руководством - вы проделали очень большую работу не только с технической стороны, но и с общественной - это первый пример коллективного написания статьи (да еще такой большой!) для сайта, точнее - для всего сообщества.

Особая и отдельная благодарность - volk1234, который проделал огромный объем работы по объединению разрозненных фрагментов информации в отлично структурированную статью, сам написал или перевел подавляющее большинство материалов, вошедших в руководство, а также координировал всю работу по его созданию :up:

Большое спасибо!

Zetoke 20-04-2008 11:07 785321

Несколько исправлений.
Проверил только до примера аддона NeLook, но там сразу видно много ошибок. Непроверенное могу проверить, когда будет время. Или не надо?
Текст смотрел на сайте, а не на форуме.
читать дальше »
Цитата:

Цитата volk1234
дабы пользователи и авторы могли разобраться »

Цитата:

папки без префиксов будутобработаны позже
Цитата:

необходимо четко понимать, что название папок и архивов с аддонами остается
Цитата:

Аддоны в зависимости от целей и способов реализации делятся на 4 типа (в зависимости от способов интеграции в дистрибутив)
Может лучше так: Аддоны в зависимости от целей и способов интеграции в дистрибутив делятся на 4 типа
Цитата:

Аддоны, использующие SYSOC
Нужна запятая
Цитата:

Данный тип аддонов использует установку через INF скрипты
Может лучше: Аддоны этого типа устанавливаются с помощью INF скриптов
Цитата:

Unatend.txt
unattend.txt
Цитата:

секции из Sysoc, Txtsetup, Dosnet, находящихся в корневой папке аддона,
Цитата:

этапе файлы аддона, прописанные в списке Txtsetup.sif, копируются
Цитата:

Пример аддона, использующего SYSOC (addon FoxIT Reader)
Цитата:

с копированием файлов из cab- файла, следите, чтобы
Цитата:

переименовав в TCPP70RU.exe,
не дожидаясь, пока автор аддона
некрасиво выглядит. Нельзя сделать, чтобы строка продолжалась?
Цитата:

Если такие файлы необходимы,
они просто размещаются
Аналогично
Цитата:

программы требуется
установить обновления, либо,
Аналогично
Цитата:

они просто размещаются в папке SVCPACK аддона, скрипт их скопирует
Цитата:

Часть дистрибутива, замещающая файлы WMP9, размещается в папке
Цитата:

В папку аддона [..Files\ForceCopy\SVCPACK] помещаются файлы каталогов
Цитата:

Конфигурационный файл Run отсутствует, поскольку cat-файлы
Цитата:

Аддоны, изменяющие дистрибутив.
Цитата:

аддон Vista Path, изменяющий стандартные иконки
Цитата:

Раздел III. Примеры и приложения.
Цитата:

программка не очень большая,записей
Цитата:

Поместив inf и cab файлы рядом, я проверил
Цитата:

Собственно секция, которая отвечает за удаление

volk1234 20-04-2008 15:47 785489

Цитата:

Цитата Master Fess
Несколько исправлений. »

исправил. Пробелы и переносы строк возникают из за особеностей редактора в котором пишутся статьи
для сайта. Так что возможны и в будущем похожие глюки.

Zetoke 20-04-2008 16:05 785500

volk1234, Хм... Насчет патча поподробнее пожалуйста. Как это все сделать?

volk1234 20-04-2008 16:42 785524

Ну я в смысле ошибок, разве не вы мне присылали вложения в виде 2х файлов: исправленый вариант и патч в виде строк исправленых?
Если не вы значит Vserd :) Я регулярно чищу личку, так что не помню. Спросите у Vserd'a чем он пользуется, но програмка мощная.
В любом случае спасибо. Еще раз просьба про ошибки пишите в PM. Другим участника форума не очень интересно лопатить десяток страниц с сообщениями типа: "исправте О на А"...
Про пробелы еще раз: редактор на сайте "умный" и может сам решить поставить тег "<br/>" что завершает строку, кроме того, blockquote,
выделяющая код синим, требует не меньше 1 пробела сверху и снизу, в некоторых случаях и 2 пробела захватывает, короче куча лишних пробелов, когда редактируешь текст, возможны некрасивые сдвиги...я тут бессилен.

vserd 21-04-2008 10:35 785957

Цитата:

Цитата volk1234
мне присылали вложения в виде 2х файлов: исправленый вариант и патч в виде строк исправленых »

Я, использую winmegre как бесплатный, но на самом деле таких програм масса, как комерческих, так и бесплатных.

volk1234 22-04-2008 02:28 786433

NEW в Тонкости использования inf-файлов

пока предлагаю доработать, кто еще что знает про:

Выполнение inf- файла через Rundll32.exe

читать дальше »

Inf- файл можно выполнить путем вызова из коммандной строки через системную библиотеку Rundll32.exe.(также в Win98 Rundll.exe).
Кроме того Rundll32 можно вызывать прямо из inf- файла используя RunPreSetupCommands, RunPostSetupCommands(например вызвать секцию из другого\текущего inf- файла.)


1.Вызов через интерпретатор Setupx.dll

Синтаксис:

RunDll32.exe setupx.dll(setupapi.dll), InstallHinfSection <section> <reboot-mode> <inf-name>

1. <section> - Исполняемая секция
2. <reboot-mode> - Флаг перезагрузки
3. <inf-name> - имя и путь к inf- файлу

После такого вызова в inf-Файле setupx.dll повторно ее вызывать нельзя, так как это может привести к перезагрузке
или другим неприятным последствиям. Для многократных вызовов из файла интерпретатора лучше использовать RunOnce (см.ниже)

Имя исполняемой секции: если секция с таким именем не будет найдена, то ничего не будет "выполняться", и сообщений об ошибках тоже не будет.

Флаги перезагрузки

Код:

Параметр        132 - рекомендованный режим перезагрузки (после "выполнения"). Интерпретатор понимает следующие значения этого параметра:
NeverReboot                0 или 128 - не перезагружать компьютер.
AlwaysSilentReboot    1 или 129 - обязательно (и без вопросов) перезагружать компьютер.
AlwaysPromptReboot  2 или 130 - спросить у пользователя, перезагружать компьютер или нет.
SilentReboot                3 или 131 - определить, надо или нет перезагружать компьютер. Если оказалось, что перезагружать надо, то выполнить перезгрузку (без вопросов).
PromptReboot              4 или 132 - определить, надо или нет перезагружать компьютер. Если оказалось, что перезагружать надо, то спросить у пользователя, перезагружать компьютер или нет.

Как интерпретатор определяет необходимость перезагрузки? - Если при "выполнении" обновлялись системные файлы и хотя бы один из них не смог быть
обновлён из-за того, что в это время использовался системой, то перезагрузка необходима (сразу после перезагрузки произойдёт обновление файлов и процесс будет завершён).

RUNDLL32.EXE может работать в режиме совместимости с 9X (rundll32 setupx.dll) и в режиме
совместимости с NT (rundll32 setupapi). Одним из отличий 9X и NT вариантов выполнения является набор используемых констант LDID (logical directory identifier)

Важно! Именно через Setupx.dll (Setupapi.dll), происходит выполнение inf- файла при запуске его из контектного меню командой "Установить".


2. Вызов через advpack.dll

Синтаксис

RunDll32.exe advpack.dll, LaunchINFSectionEx <inf-file>, <section>, <cab>, <flag1>, <flag2>, 0


1. <inf-file> имя и путь к inf- файлу
2. <section> Исполняемая секция
3. <cab> Путь к cab- файлу если inf запакован.(в этом случае параметр <inf-file> просто содержит имя файла без пути)

4. flag1 - Флаг режима установки
Данные флаги могут складыватся, например, довольно распрастраненный режим Quiet|Backup (32+4) = 36

Код:

4        Тихий режим без UI
8        Не запускать GrpConv
16        Обновление программы (Force self-updating on user's system)
32        Сделать резервные копии файлов (точку отката) до установки
64        Откатится до предыдущего состояния
128        Проверить резервные копии файлов
256        Полностью откатится до предыдущего состояния
512        Принудительная задержка регистрации OCX (Force delay of OCX registration)

5. flag2- Флаг перезагрузки

Без данного флага используется Smart Reboot, т.е. перезагрузка по требованию.
Код:

A        - Перезагрузка всегда.
I        - Тот самый Smart Reboot, по умолчанию стоит этот флаг.
N        - Не перезагружатся.

6. 0- nShow не использутся = 0 приведен только для информации о синтаксисе функции.

пример с распаковкой inf из cab
Код:

rundll32.exe advpack.dll,LaunchINFSectionEx myinf.inf,,c:\temp\mydata.cab,36
пример с откатом установки inf
Код:

rundll32.exe advpack.dll,LaunchINFSectionEx c:\windows\inf\myinf.inf,,,256
Важно! При использовании в inf- файле инструкции Reboot и вызове через Rundll32 данного inf- файла, будет обработан режим перезагрузки указанный в строке вызова через Rundll32. Напомню в учебнике по Inf написано:
Цитата:

Reboot= Флаг перезагрузки после выполнения пакета процедур. Этот флаг может быть отменён флагом вызова скрипта (через точку входа LaunchINFSectionEx)
Не стоит забывать про это !

Важно! Синтаксис описанных команд содержит запятые и пробелы, незабывайте их ставить, иначе команда несработает.

Использование RunOnce

Для запуска исполняемых файлов после того, как inf- файл исполнен, можно использовать RunOnce. Команды из RunOnce выполняются
после перезагрузки или следующего входа в систему.

Ключ регистрации RunOnce дает возможность выполнить файлы в "тихом" режиме (без подсказок пользователю) или в виде списка программ
или действий ("Установка Windows устанавливает следующие элементы"), которые видит пользователь.
После выполнения программ записи из RunOnce удаляются.

Для "тихого режима" добавляется путь к приложению в ветку реестра:
HKLM, Software\Microsoft\Windows\CurrentVersion\RunOnce, "APPNAME", "APP_PATH"

Для режима с отображением установки в виде окна со списком устанавливаемых программ добавляется путь к приложению в ветку реестра:
HKLM, Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup, "APPNAME", "APP_PATH"

"APPNAME" - во втором варианте будет отображатся в окне установки.

====================================================
не в тему:
В принципе при установке OptionalComponents можно смотреть установлен ли компонент или нет в ветке реестра=
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\Oc Manager\Subcomponents
и использовать это для доустановки компонентов

пока не знаю как но подозреваю инструкцию IsInstaled=
кто знает?

Drinko 22-04-2008 05:25 786450

volk1234,

http://support.microsoft.com/kb/164787
http://www.microsoft.com/technet/pro....mspx?mfr=true
http://www.microsoft.com/technet/pro....mspx?mfr=true

elwin 25-04-2008 08:45 788808

Добрый день! Помогите, плиз, в создании inf файла. Задача такая: существуют 2 файла vcl50.bpl и vcl50.rus - их нужно копировать в папку system32 и файл drvfr.ocx - его нужно регистрировать. Но регистрация файла drvfr.ocx не проходит, пока не скопированы файлы vcl50.bpl и vcl50.rus. Если все делать в одном inf файле то ничего не работает. А если сначало одним inf файлом копировать файлы а вторым регистрировать компонент тогда все работает. Такое ощущение что он сначала регистрирует компоненты а потом уже начинает копировать....Хотелось бы чтобы все работало в одном inf файле. Пытался сделать вот так:
[DefaultInstall]
CopyFiles=install.files
RegisterOCXs=RegisterFiles

[DestinationDirs]
install.files=11

[install.files]
drvfr.ocx=drvfr.ocx
vcl50.bpl
vcl50.rus

[RegisterFiles]
%11%\drvfr.ocx

[drvfr.ocx]
file-win32-x86=thiscab
RegisterServer=Yes
FileVersion=1,0,0,0

[version]
signature="$CHICAGO$"
AdvancedINF=2.0

Что делаю не правильно?

Zetoke 25-04-2008 13:22 788972

elwin, Вам в соседнюю тему Авторам аддонов. Здесь обсуждается только само руководство.

volk1234 25-04-2008 13:41 788988

Читайте учебник по inf'ам.
RegisterOCXs это команда advpack.dll, а вы скорее всего запускаете файл через команду "Установить" контекстного меню.
Выше на 3 поста статья где это указано. Правда добавил только сегодня.
Цитата:

Цитата volk1234
Важно! Именно через Setupx.dll (Setupapi.dll), происходит выполнение inf- файла при запуске его из контектного меню командой "Установить". »

Тоесть запускайте регистрацию через

Код:

[DefaultInstal]
...
RunPostSetupCommands=Reg.Section

[Reg.Section]
Commandline=Rundll32 advpack, LaunchINFSectionEx inffile.inf, RegOcxSection, , 36

[RegOcxSection]
RegisterOCXs=RegisterFiles

[RegisterFiles]
%11%\drvfr.ocx

По идее так, поэксперементируйте еще с кавычками.

AleksandrG 02-05-2008 21:58 793431

Будет ли в руководстве информация по присвоению ( или применению. изменению, обьявлению) разрешений на файлы и папки.
Иногда бывает надо дать права юзеру на отдельные файлы-папки в Program Files
Пример- аддоны Next Sensor -(speedfanevents.cfg, speedfanparams.cfg, speedfansens.cfg) и SpeedFan -(NxSConf.ini)

Тема очень порадовала. Вся (надеюсь) информация в одном месте. А идея о едином стиле наименования аддонов прям пролила бальзам на душу - сам уже недели три об этом думаю - и тут попалась эта тема

volk1234 07-05-2008 19:58 797211

Цитата:

Цитата AleksandrG
Будет ли в руководстве информация по присвоению ( или применению. изменению, обьявлению) разрешений на файлы и папки. »

Здесь - http://forum.oszone.net/post-777871-107.html

инструкция .Security ( к сожалению более подробного описания пока не встретил), я так понимаю инструкция применяется с
названием секции отделяясь точкой :

Код:

[CopyFile]
file.exe

[CopyFile.Security]
"D:P(A;CI;GR;;;AU)...."

правда это применимо только к файлам. Разрешения для папок задавайте через скрипты, и на Т13 выполняйте, но учитывайте:
Цитата:

Цитата Руководства
16. T9 – сохранение параметров, установка административных разрешений для системных папок и реестра

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

spectre4 11-05-2008 21:30 799865

Возник такой вопрос к гуру inf'фо-писания, а возможно ли с помощью inf манипуляции с пользователями??? Т.е. собсно создать, задать пасcворд, группу, и т.д.
А тут одна идея образовалось, это и было бы весьма удобно реализовать именно через inf'ы если есть такая возможность.

Vadikan 12-05-2008 01:29 800019

Наконец-то добрался до вашего руководства - сейчас читаю и параллельно отмечаю, где чего поправить с точки зрения грамматики/стилистики :) После того, как я закончу, я сам внесу нбх правки в статью, размещенную на сайте. Если у авторов с этим есть проблемы какие-нибудь - дайте мне знать.

Одна из вещей, на которую я обратил внимание, это различный подход к написанию терминов: inf скрипты, inf- скрипты, inf-скрипты. Предлагаю унифицировать этот момент по всему рук-ву. И делать так:
INF-файлы, CAB-файлы, INF-скрипты, т.е. расширение выделять заглавными буквами, затем тире, затем уже само слово. Такой подход был принят в нашем клубе переводчиков, когда мы столкнулись с MSТ-файлами, MSP-файлами и пр.

Если нет возражений, я выполню нбх правку сразу.

prokazzza 12-05-2008 01:53 800036

volk1234, пост 109 2.Полезные утилиты при работе с inf\cab файлами. Ведет на несуществующую страницу

volk1234 13-05-2008 10:37 801227

Цитата:

Цитата Vadikan
различный подход к написанию терминов: »

Согласен. Например команды INF- скрипта Microsoft называет Directives, то есть Инструкции, а не команды или параметры....

Сразу почитайте новую статью для руководства: Выполнение inf- файла через Rundll32.exe (ссылка в шапке), я как вернусь в город
добавлю ее в Руководство.

Цитата:

Цитата prokazzza
Ведет на несуществующую страницу »

Исправил. На конце ссылки не хватало 'l'. Лучше смотрите Руководство на сайте- там более отредактированная версия...

Цитата:

Цитата Vadikan
Если у авторов с этим есть проблемы какие-нибудь - дайте мне знать. »

??

volk1234 14-05-2008 11:59 802271

*Статья "Выполнение inf- файла через Rundll32.exe" добавлена в Руководство на сайте.

Vel_ 14-05-2008 17:18 802590

Слушайте господа, почитал я тут руководство, одним словом дебри, что мама не горюй. А нету разве программ для создания аддонов? Я хочу создать аддон архиватора TUGZip, я посмотрел на аналогичные, например WinRar, это жесть. В этом я не разберусь ну уж никак.

volk1234 14-05-2008 18:08 802647

Vel
программ для создания аддонов нет. Зато на форуме есть ветка в которой можно заказать аддон, и можно использовать способ установки через SVCPACK, использовав родной инсталятор утилиты.

vserd 14-05-2008 18:09 802650

Vel_, Вы нарыватесь на офтопик. Никто не говорит что это легко, но в тоже время сказать что это очень сложно тоже нельзя. Читайте, изучайте, пробуйте, и вам откроется вся прелесть аддонов.

Вон Gora жалуется что нету отзывов: http://forum.oszone.net/post-802610.html#post802610
попробуйте создать с помощью этой программы (http://forum.oszone.net/post-690870-264.html).

Vel_ 14-05-2008 18:45 802694

volk1234, вот это мне больше нравится, лучше заказать.

Vadikan 15-05-2008 06:10 803053

Я приступил к редактированию материала, поэтому прошу людей, имеющих доступ к правке, не вносить никаких изменений в существующие разделы статьи. Добавлять можно.

prokazzza 15-05-2008 07:14 803065

volk1234,

16421 C:\WINDOWS\System32
16404 C:\WINDOWS\Fonts (папка Шрифты)

можно использовать и другие, например:

11 - system32
20 - fonts

volk1234 16-05-2008 22:25 804596

Цитата:

Цитата Vadikan
Я приступил к редактированию материала, »

Нельзя ли сообщать о прогрессе, и о завершении редактирования ...

а то я сам у ся нашел пару очипяток
Цитата:

Цитата Приложение 2. Методы деинсталяции
HKLM,"%Key%","DisplayIcon",,"16422,"SOMEAPP",0"

-лишняя кавычка

Цитата:

Цитата Пример 1. Создание аддона из утилиты Netlook
Для примера я выбрал программку Netlook. Причина заключается в желании совместить приятное с полезным - такого аддона еще нет, программка

-кажись с одной "м"
Цитата:

Цитата 3. Создание ярлыков
Cоздание/удаление ярлыка в контекстном меню "Отправить" (SendTo) с помощью inf :

-лишнее, не подходит по смыслу

truvo 17-05-2008 03:22 804699

Вот я решил переименовать перед интеграцией в своем наборе аддонов папки с аддонами, которые выкладывают авторы, в соответствии с теми префиксами, котоорые рекомендуются в руководстве по созданию аддонов.
Есть у меня, в частности, аддон Punto switcher и аддон 3rdParty.
Первую папку, как стороннюю программу, я переименовал через 7.
Второй аддон называется в списке аддонов на wiki служебным, поэтому я его переименовал с 0.
И тогда при интеграции высвечивается, что Punto требует для своей работы 3rdParty.

Shido 17-05-2008 03:43 804703

truvo, тебе нужно исправить в аддоне Punto switcher файл Required т.к. там осталось прежнее название и естественно его не находит. Прочитай руководство там всё есть, и ИМХО ознакомится с ним нужно всем.

volk1234 17-05-2008 21:09 805102

Цитата:

Цитата Shido
т.к. там осталось прежнее название и естественно его не находит. »

Между прочим неплохое дополнение к руководству из разряда не очевидных ошибок. Надо будет добавить...

truvo 17-05-2008 22:58 805160

Цитата:

Цитата truvo
решил переименовать перед интеграцией в своем наборе аддонов папки с аддонами, которые выкладывают авторы, в соответствии с теми префиксами, котоорые рекомендуются в руководстве по созданию аддонов »

А по вашему мнению, есть ли вообще смысл в таких моих действиях? Получается, что я переделываю за авторами, которые тоже не дураки...
Цитата:

Цитата volk1234
кажись с одной "м" »

С двумя! Для убеждения: http://gramota.ru/slovari/dic/?word=...EC%EA%E0&all=x
Цитата:

Цитата volk1234
неплохое дополнение »

Ну, так нажмите на кнопочку - поблагодарите Shido. Будем взаимно вежливы.

volk1234 18-05-2008 11:09 805364

Цитата:

Цитата truvo
А по вашему мнению, есть ли вообще смысл в таких моих действиях? Получается, что я переделываю за авторами, которые тоже не дураки... »

В ветке авторам аддонов этот вопрос поднимался года 2 назад, с одной стороны, префиксы упорядочивают интеграцию аддонов и дают уверенность, что один аддон не "накрыл второй"(при этом надо точно знать,какие ресурсы меняет каждый из аддонов), с другой все и так неплохо устанавливается ( по крайней мере у меня), а насчет переделки аддонов- не всегда даже самый опытный програмист может отловить баг на своем компьютере, и это приходится делать пользователям...

Vadikan 21-05-2008 02:59 807393

Цитата:

Цитата volk1234
Нельзя ли сообщать о прогрессе, и о завершении редактирования ... »

Я работаю над этим, просто уезжал на три дня. Орфография и стилистика - ок, но пунктуация... Правка требуется чуть ли не в каждом предложении :) Я скоро закончу уже.
Цитата:

Цитата volk1234
а то я сам у ся нашел пару очипяток »

Замеченные опечатки можно и нужно править. Моя просьба не править текст относилась скорее к глобальным правкам - типа восстановлению статьи из бэкапа старого, затирающего все недавние изменения.

Цитата:

Цитата volk1234
Для примера я выбрал программку Netlook. »

Я уберу к - явно лишняя :)

Rostlv 22-05-2008 21:53 808759

Предлагаю ввести правило для авторов аддонов - все файлы, интегрируемые в дистрибутив должны быть названы заглавными буквами. Думаю, что дистрибутив от этого приобретёт надлежащий вид. Сейчас же после интеграции многих аддонов, в особенности крупных, приходится самому переименовывать файлы, что не очень удобно. Конечно на работу это не оказывает влияния, но зато дистрибутив смотрится завершённым. Также, по моему мнению, хорошо бы определиться с расширениями файлов в "RUN" в плане регистра, сейчас же одни аддоны в верхнем, другие - наоборот. Если посмотреть "svcpack.inf", всё сразу видно.
Это же касается и названий самих аддонов и файлов в них. Это всего лишь предложение, но надеюсь на понимание.

Vadikan 23-05-2008 01:08 808859

В связи с переносом форума на новый сервер потерлось мое сообщение. Дублирую вкратце.

1. Предлагаю приложение 7 поднять выше и сделать его приложением 5 - это связанные вещи вроде.
2. Нужны ссылки на источники информации в том случае, если она заимствована с других русских сайтов (пример - приложение 5). Что-то еще бралось?

Внимание: Никаких правок в руководстве делать нельзя до особого уведомления - есть глюки после переезда.

volk1234 23-05-2008 02:33 808876

Цитата:

Цитата Vadikan
Предлагаю приложение 7 поднять выше и сделать его приложением 5 »

Голосую ЗА. Достойний таварищ на павишение!

Цитата:

Цитата Vadikan
Если она заимствована с других русских сайтов (пример - приложение 5) »

Пример неудачный, данная информация наполовину заимствована из поста Drinko(где он брал инфу не знаю, но подозреваю что и с
осзона тоже), наполовину с ангельского micrososft ... навскидку счас не дам ссылку, статья про этапы установки WINXP.
txtsetup - gosh указано
sysoc- сам
Optional components - SDK IE 6

Копи - паста особого нет (к сожалению для меня :) ), в основном, в тексте статьи использовалась инфа с форума осзона - своими словами
или предложенная инфа участниками - их словами, а также вольный перевод (настолько вольный, что комитет по авторским правам не докопается )

Еще
Цитата:

Цитата ...Пример 1
программка не очень большая, записей в реестр не делает (то есть практически переносное)

Я понимаю, что портэйбл это нерусское слово, но в конкретном предложении падеж не прослеживается никак. может написать portable?
Или это Vadikan испытывал новое секретное оружие - бот-коректировщик американизмов ? :biggrin:

vserd 23-05-2008 10:23 809014

Rostlv,
Цитата:

Цитата Rostlv
правило для авторов аддонов - все файлы, интегрируемые в дистрибутив должны быть названы заглавными буквами. »

Нафиг. Не хватало еще тратить время на такую ерунду.
Когда файлы интегрированны в дистрибутив, то всем уже совершенно пофиг какие именно. Главное чтобы работало.

jameszero 23-05-2008 12:42 809105

Rostlv
Цитата:

Цитата Rostlv
Предлагаю ввести правило для авторов аддонов - все файлы, интегрируемые в дистрибутив должны быть названы заглавными буквами. Думаю, что дистрибутив от этого приобретёт надлежащий вид. Сейчас же после интеграции многих аддонов, в особенности крупных, приходится самому переименовывать файлы, что не очень удобно.»

Правило или не правило, а в аддоне реализовал - [addon] CaseUP

Цитата:

Цитата Rostlv
хорошо бы определиться с расширениями файлов в "RUN" в плане регистра, сейчас же одни аддоны в верхнем, другие - наоборот. Если посмотреть "svcpack.inf", всё сразу видно. »

Внутри TXTSETUP.SIF вы тоже правите имена файлов дистрибутива Windows?

Boa Soft 23-05-2008 14:28 809193

Цитата:

Цитата jameszero
Правило или не правило, а в аддоне реализовал - [addon] CaseUP »

Добавлю функцию в интегратор.

DyadyaGenya 23-05-2008 16:56 809312

volk1234, недавно столкнулся с дополнительными сведениями про аддоны sysoc, и все благодаря ya158
может вы то это и знаете, но в руководстве это не отмечено, а мне кажется для понимания разницы между типами аддонов эти сведения пригодились бы
1 - оказывается sysoc аддоны встраиваются в дистрибутив как компоненты винды, а не как стороние программы, и по идее должны оторбражаться в менеджер Установка и удаление компонентов Windows и соответственно устанавливаться и удаляться оттуда, хотя я кстати, ни разу такого не встречал.
2 - sysoc аддоны устанавливаются на т24, а не на т13, как svcpack
3 - если это верно, то для удаления веток реестра не всегда достаточно следующей секции с одной строкой, хотя в руководстве написано что довольно одной строки.
[PROG.DelReg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%"

вот ссылка на посты ya158 который мне помог разобраться в некоторых вещах
http://forum.oszone.net/post-807983-462.html

volk1234 23-05-2008 18:58 809394

DyadyaGenya
Отвечу цитатами из руководства, которое вы видимо не читали. Отсюда ваши проблемы с написанием inf- скриптов и аддонов sysoc.
Цитата:

Цитата DyadyaGenya
2 - sysoc аддоны устанавливаются на т24, а не на т13, как svcpack »


Цитата:

Цитата Приложение 5. Этапы и механизмы установки Windows XP/2003. Log-файлы, создаваемые в процессе установки.
http://oszone.net/6946#d4

8. Установка дополнительных компонентов ОС (sysoc.inf) С помощью sysoc.inf менеджер установки строит список файлов для установки этих компонентов. Затем этот список сверяется с файлом unattend.txt (winnt.sif) если он есть. По результатам сверки образуется конечный список устанавливаемых компонентов..

Это происходит между T37 и T32, а не на T24 !!! Уж скорее на Т34, хотя на мой взгляд это не такой уж линейный процесс и к одной минуте его врядли можно привязать, например, тот же ocmanage.dll (диспетчер дополнительных компонентов) стартует аж на T38...



Цитата:

Цитата DyadyaGenya
1 - оказывается sysoc аддоны встраиваются в дистрибутив как компоненты винды, а не как стороние программы, и по идее должны оторбражаться в менеджер Установка и удаление компонентов Windows и соответственно устанавливаться и удаляться оттуда, хотя я кстати, ни разу такого не встречал. »

Цитата:

Цитата Аддоны, использующие SYSOC

.... Важно! Чтобы интегрировать аддон, но при этом НЕ уставить его, чтобы он был доступен впоследствии для установки через менеджер компонентов Windows, необходимо в установочных INF-файлах каждого аддона закомментировать параметр Modes точкой с запятой.

Цитата:

Цитата Приложение 4. Файл Sysoc.inf

....Для размещения вашего приложения, устанавливаемого через Sysoc в группе 3rdParty (Программы сторонних разработчиков), добавьте в исполняемую сецию инструкцию Parent=NonMS. Также, уберите параметр HIDE из строки в Sysoc.
... ;Modes=0,1,2,3 ;аддон не будет установлен по умолчанию, его доустановка возможна из "Установки компонентов Windows"

и целиком вашему вопросу посвящено Приложение 7. Секция [Optional Components]



Цитата:

Цитата DyadyaGenya
3 - если это верно, то для удаления веток реестра не всегда достаточно следующей секции с одной строкой, »

Покажите где в руководстве написано, что для удаления ВСЕХ записей сделаных при установке, надо удалить только одну строку в реестре ????
Для удаления всех записей сделаных в реестре надо ( можно логически догадатся) выполнить действия обратные добавлению в реестр. Как правило для этого достаточно в секции Деинсталяции поубивать разделы(DelReg) реестра созданные программой, либо скопировать раздел регистрации без флагов и значений( только с ключами), в созданый раздел удаления из реестра.

Приведенная вами строка

Код:

[PROG.DelReg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%"

Всего лишь удаляет приложение из оснастки Установка\удаление программ.


Единственное с чем соглашусь, что надо бы добавить в руководство разьяснение про Optional Components в раздел Sysoc аддонов а не в приложения
Как там говорили на BBS лентах? RTFM ! - Читайте руководство !

DyadyaGenya

Добавлю пожалуй еще,

Основные файлы используемые в аддонах SYSOC:

Txtsetup.sif
Dosnet.inf
Sysoc.inf


Так вот способ установки аддонов называется Sysoc именно из за использования Sysoc.inf.
Если необходимо просто скопировать при установке файлы в папку %Windir%, можно обойтись и без Sysoc.inf.
Просто добавив строки в Txtsetup.sif и Dosnet.inf.
Менеджер установки дополнительных компонентов используется как раз для полноценной установки компонентов, добавления записей в реестр и тд...
Надеюсь помог разобраться....

DyadyaGenya 23-05-2008 20:12 809435

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

Код:

Удаление записей реестра, так же как и ярлыков, отличается от добавления в реестр. Необходимо указать только корневой раздел, в данном случае, HKCU,"Software\Punto Switcher", и она будет удалена со всем подразделами. Секцией [CTFMON.Restore] мы восстанавливаем в автозагрузке стандартный переключатель раскладок, а в секции [CTF.dll.Restore] регистрируем связанные с ним библиотеки.
теперь по поводу встраиваемости аддона:
Код:

Данная секция служит для добавления устанавливаемого приложения в список оснастки "Установка\Удаление программ \Компоненты Windows"
Секция не будет исполнена при попытке выполнить файл по правому щелчку мышью, через команду [Setupx.dll InstallHinfSection точка_входа] также
нельзя выполнить [Optional Components]. В первом случае будет выполнятся секция [DefaultInstall], во втором секция указанная точкой входа. Параметры
[Optional Components] будут игнорированны.

Насколько я понимаю для обработки дополнительных инструкций секции [Optional Components] и существует sysoc.inf, ocgen.dll, sysocmgr.exe.
В основном инструкции [Optional Components] служат для управления отображения компонентов в окне "Компоненты Windows".

так я здесь не увидел, как в прочем и в остальной части статьи, что это обязательно, просто как выбор куда будет интегрироваться и устанавливаться, тоесть вроде как наличие альтернативы например, чтоб не встраивать в менеджер "установка и удаление программ", но тут не показано, что данный тип аддонов является именно компонентом винды, если можно так сказать

ну и по поводу того, когда на каком этапе устанавливаются sysoc аддоны. Возможно было бы понятнее, если бы эти этапы как на мой взгляд не были описаны отстраненно от аддона, тоесть вы похоже просто взяли цитату из другой статьи и вставили в свою без особой привязки к тексту. Чтобы любой Вася Пупкин, который очень хочет, старается, но к сожалению не все у него получается, мог при этом прочитать и сообразить к чему этот материал, на мой взгляд стоило бы обьяснить более подробно :) Поверьте, будь сказано раньше, что любая программа, встраиваемая в дистрибутив винды посредством sysoc, становиться как бы компонентом винды , а не отдельной программой, и поэтому её интеграция может быть сопоставима с этапами установки самой винды, вопросов бы возникало меньше.
и кстати, это конечно не критично, но авторегистрация аддона у меня сработала именно на т24, поэтому и возник вопрос о том, что этим он отличается от svcpack, тот ведь как я понимаю срабатывает целиком на т13, вместе с той же авторегистрацией.

volk1234 23-05-2008 22:26 809500

Цитата:

Цитата DyadyaGenya
тогда я тоже отвечу цитатами из руководства »

И что же говорится в приведенной цитате? Что она доказывает?
Разделы реестра можно удалить, но для удаления например, зарегестрированных библиотек из SharedDlls, такой способ не подходит,
надо удалять записи по одной. Отличие добавления в реестр записей от их удаления в отсуствии параметров.
Пример:

Добавление:
Код:

[ACDSee.reg] -добавляем информацию для оснастки Установка\удаление программ
HKLM,%Key2%,"DisplayName",,"ACDSee 3.1 SR1 rus"
HKLM,%Key2%,"DisplayIcon",,%16422%\%Prog%\ACDSee.exe,0
HKLM,%Key2%,"UninstallString",,"rundll32.exe advpack,LaunchINFSectionEx %17%\acdsee3.inf,ACDSee.Uninstall"

[Regacdsee] -добавляем информацию о программе и библиотеках в реестр
HKLM,%Key1%,"InstallationDate", , "DAKAMFIGGHCOBAOF351494B3"
HKLM,%Key1%,"InTouchSettings",0x00000001,45,3D,78,00,00,00,00
HKLM,%Key1%,"LicenseNumber", ,"xxxxxxxxxxxxxxxxxx"
HKLM,%Key1%,"InTouchConfigRemind", ,"KGNMDHPGGHCOCJLE2B8FD833"
HKLM,%Key1%\Tip,"StartUp",0x00010001,1
   
HKLM,%Key%\App Paths\ACDSee.exe, , , "C:\Program Files\ACD Systems\ACDSee\ACDSee.exe"
HKLM,%Key%\App Paths\ACDSee.exe,"Path", ,"C:\Program Files\ACD Systems\ACDSee"
 
HKLM,"SOFTWARE\Kodak\DC210\SDKLibrary","InprocServer32", ,"C:\WINDOWS\system32\dc210.dll"
HKLM,"SOFTWARE\Kodak\DC240\SDKLibrary","InprocServer32", ,"C:\WINDOWS\system32\dc240.dll"
HKLM,"SOFTWARE\Kodak\DC280\SDKLibrary","InprocServer32", ,"C:\WINDOWS\system32\dc280.dll"

HKLM,%Key3%, "C:\Program Files\Common Files\ACD Systems\PlugIns2\acdcp.dll" ,0x00010001, 2
HKLM,%Key3%, "C:\Program Files\Common Files\ACD Systems\PlugIns2\AM_ZIP.apl" ,0x00010001, 3

[strings]
Key="SOFTWARE\Microsoft\Windows\CurrentVersion"
Key1="SOFTWARE\ACD Systems\ACDSee"
Key2="Software\Microsoft\Windows\CurrentVersion\Uninstall\ACDSee3.1RC1"
Key3="SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls"

А теперь удаление этих же записей при деинсталяции:

Код:

[ACDSee.DelReg]
HKLM,%Key1%
HKLM,%Key2%
HKLM,"SOFTWARE\Kodak
HKLM,%Key3%, "C:\Program Files\Common Files\ACD Systems\PlugIns2\acdcp.dll"
HKLM,%Key3%, "C:\Program Files\Common Files\ACD Systems\PlugIns2\AM_ZIP.apl"

Хорошо видно, что созданные нами разделы ACDSee и Kodak мы просто убиваем на корню, а вот SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls нельзя удалять так как там куча сторонних dll, поэтом их надо удалять по одной, указывая для удаления имя параметра без значения.




В руководстве по созданию аддонов много чего не сказанно. Например задаваемые вами вопросы отосятся к написанию INF- скриптов, а не к аддонам как таковым. Поищите в интернете всю информацию по INF- файлам и работе с реестром, и вам все станет понятнее.

Цитата:

Цитата DyadyaGenya
что любая программа, встраиваемая в дистрибутив винды посредством sysoc, становиться как бы компонентом винды , а не отдельной программой, »

И не только в дистрибутив и не только через SYSOC. Вы ошибаетесь. Возможность добавить программу в остнастку Компоненты Windows еще не означает слияние с ОС. Грубо говоря вы можете выбрать где будет ярлычок для удаления программы в Установке\Удалении или в Компоненты Windows. Программа установленная через Sysoc, суть есть, отдельная программа! Это как считать вас военным, если вы подьехали на военной машине и отдолжили военную форму.

В общем хотел бы заметить, что вы очень торопитесь, не читаете и не обдумываете, а просматриваете руководства и написанные вам посты (я не только про эту ветку говорю), на мой взгляд вам мешает именно спешка. Я, вообще, не вижу никаких проблем с написанием простейших аддонов. Я когда писал первый взял чужой аддон и руководство по INF- файлам, и подглядывая в оба источника написал работающий скрипт. Затем доработал его секцией удаления через DelDirs, причем на этот этап потратил около недели, но зато научился и знаю как пользоватся этим инструментом. Вы я насколько понял сразу перепрыгнули на rundll32.exe advpack,DelNodeRunDLL32. Затем я занялся реестром и сложными ярлыками, довольно много полезного я почерпнул
распотрошив дистрибутив WIN98 - она почти вся на INF - скриптах, для изучения синтаксиса добавления в реестр советую аддон MyCustom. Причем я не пользуюсь reg2inf и прочими средствами автоматизации и вам не советую, эти средства автоматизации для тех кто уже все умеет. И ,последнее, зря вы сразу за сложные программы взялись ИМХО.

Vadikan 24-05-2008 07:48 809653

Цитата:

Цитата volk1234
а то я сам у ся нашел пару очипяток »

Исправлены.

Цитата:

Цитата volk1234
Я понимаю, что портэйбл это нерусское слово, но в конкретном предложении падеж не прослеживается никак. может написать portable?
Или это Vadikan испытывал новое секретное оружие - бот-коректировщик американизмов ? »

Да, бот не прошел тестирование :) Исправлен падеж.

Цитата:

Цитата Vadikan
Предлагаю приложение 7 поднять выше и сделать его приложением 5 - это связанные вещи вроде. »

Сделано.

Я закончил работу над правкой. Затрудняюсь сказать, сколько изменений я внес, но их кол-во исчисляется сотнями - пунктуация хромает на все четыре ноги :)

Если других изменений в статье в ближайшее время не планируется, я перенесу ее в оффлайн версию, которую и обновлю в ближ. время.

volk1234 24-05-2008 13:44 809805

Цитата:

Цитата Vadikan
Если других изменений в статье в ближайшее время не планируется »

Думаю слегка подредактировать раздел Sysoc в части определения типа аддона, затронутого DyadyaGenya

DyadyaGenya 24-05-2008 14:24 809822

volk1234,
Цитата:

Цитата volk1234
И не только в дистрибутив и не только через SYSOC. Вы ошибаетесь. Возможность добавить программу в остнастку Компоненты Windows еще не означает слияние с ОС. Грубо говоря вы можете выбрать где будет ярлычок для удаления программы в Установке\Удалении или в Компоненты Windows. Программа установленная через Sysoc, суть есть, отдельная программа! Это как считать вас военным, если вы подьехали на военной машине и отдолжили военную форму. »

значит я изначально был прав, все получается как я и говорил :)
Цитата:

Цитата DyadyaGenya
так я здесь не увидел, как в прочем и в остальной части статьи, что это обязательно, просто как выбор куда будет интегрироваться и устанавливаться, тоесть вроде как наличие альтернативы например, чтоб не встраивать в менеджер "установка и удаление программ" »

думаю вам достаточно было сразу опровергнуть мое предыдущее предложение
Цитата:

Цитата DyadyaGenya
1 - оказывается sysoc аддоны встраиваются в дистрибутив как компоненты винды, а не как стороние программы, и по идее должны оторбражаться в менеджер Установка и удаление компонентов Windows и соответственно устанавливаться и удаляться оттуда »

указав при этом что это только выбор места интеграции, и не приводить массу цитат из руководства. Хотя вы возможно хотели этими примерами показать, что я не прав в отношении моего предположения, что sysoc аддоны получаются как бы компонентами винды, в результате сделали массу лишних телодвижений, а я принял ваши доводы за попытку доказать что в статье уже отображено, что данные аддоны являются компонентами :)

теперь по поводу удаления из реестра. Вот все что я нашел перед этим в статье по инф:
"Удаление объектов реестра производится параметром DelReg в выполняемой секции и имеет идентичный синтаксис в дочерней секции, за исключением следующих деталей: не указывается значение и не указывается тип ключа. Если необходимо удалить только параметр ключа, нужно указать аббревиатуру_корня_реестра,"путь\к\ключу","имя_параметра", если весь ключ - аббревиатуру_корня_реестра,"путь\к\ключу". То есть формат записи строк в дочерней секции при удалении объектов в реестре таков HKXX,"PATH\REGKEY","parameter" ", ну а то что нашел в вашей статье я уже приводил, и нигде больше ни слова про обязательность удаления всех веток, хотя я уже и понимаю что нужно удалять все. Может стоило чуть больше внимания уделить в статье и этому вопросу, добавив несколько строк, а не ограничиваться только упоминанием про возможность удаления и специфики синтаксиса при этом, хотя синтаксис и другие замечания очень важны и я не представляю как можно было бы без него обойтись.

ну и по поводу того что я тороплюсь и перескакиваю с темы на тему. Вы конечно правы, но и немного обидно, когда вы говорите что я
Цитата:

Цитата volk1234
сразу перепрыгнули на rundll32.exe advpack,DelNodeRunDLL32 »

хотя сами принимали учасьте в обсуждении и помагали в решении вопросов по дэинсталяции, а я там разбирал волпрос и про использование родного анинстала и секции [DelDirs], кстати, у меня не получилось только в одном аддоне, пример которого я и приводил, а именно в winamp, кстати, тот вопрос так и остался открытым, а на rundll32.exe advpack,DelNodeRunDLL32 я перешел далеко не сразу, а только после экспериментов с секцией ДелДирз и родным анинсталом, мне казалось что это хорошо видно в моих постах другой ветки

volk1234 24-05-2008 20:18 809988

Цитата:

Цитата DyadyaGenya
и нигде больше ни слова про обязательность удаления всех веток, хотя я уже и понимаю что нужно удалять все. »

Я даже не знаю как прокоментирова ваше высказвание... Конечно надо удалять все, что добавил, это вообще основы програмирования,
а INF - файлы и аддоны тут не причем. Если "намусорил" надо все убрать, или половину? Можно конечно оставить как есть, но другие люди не будут пользоватся такой программой.

А кучу цитат я привел для доказательства, что в руководстве есть все по аддонам. Но ничего другого там нет. Про деинсталяцию, домены, IIS, виды дистрибутивов Windows там не написано. Прочитайте этапы установки Windows безотносительно аддонов, вдумайтесь в каждый этап и значение файлов участвующем в этом этапе, нарисуйте их на бумажке, будет намного легче рабиратся в аддонах. И ковыряйте чужие аддоны, без плагиата свое не научитесь делать, ну или быстро не научитесь. Пишите в icq помогу чем смогу

Re:Flex 30-05-2008 18:25 814702

Весь мануал прочитал, но так и не нашёл.
читать дальше »
Мне нужно заменить в NETRASA.IN_:
Цитата:

HKR, , EnumExportPref, 0x00010001, 1

[Ndi-Reg-Mp-Pppoe]
HKR, Ndi, Service, 0, "RasPppoe"
HKR, Ndi\Interfaces, UpperRange, 0, "ndiswan"
HKR, Ndi\Interfaces, LowerRange, 0, "nolower"
HKR, , MinWanEndpoints, 0x00010001, 0
HKR, , MaxWanEndpoints, 0x00010001, 1000
HKR, , TapiLineName, 0, %Mp-Pppoe-LineName%
HKR, , WanEndpoints, 0x00010003, 1

;-------------------------------------------------------------------------
; [Services] sections.
; 1 = SPSVCINST_TAGTOFRONT
На:
Цитата:

HKR, , EnumExportPref, 0x00010001, 1

[Ndi-Reg-Mp-Pppoe]
HKR, Ndi, Service, 0, "RasPppoe"
HKR, Ndi\Interfaces, UpperRange, 0, "ndiswan"
HKR, Ndi\Interfaces, LowerRange, 0, "nolower"
HKR, , MinWanEndpoints, 0x00010001, 0
HKR, , MaxWanEndpoints, 0x00010001, 1000
HKR, , TapiLineName, 0, %Mp-Pppoe-LineName%
HKR, , WanEndpoints, 0x00010003, 10

;-------------------------------------------------------------------------
; [Services] sections.
; 1 = SPSVCINST_TAGTOFRONT
Это средствами UP можно реализовать?, если нет, то напишите пожалуста БАТничек (или другим способом) для реализации этого при помощи UP, а то задолбался вручную это делать… Очень прошу :(

vserd 30-05-2008 19:00 814724

Re:Flex,
сделай следующее.
Создай папку например Mycool в Updatepack\addons, в ней files\, в нее твой изменненый файл.
запусти __patch

Re:Flex 30-05-2008 19:56 814762

Спасибо конечно, но про замену файлов я знал ( я же прочитал учебник :) )… Мне нужно заменять значения в этих упакованых файлах, желательно средствами UP. Хочу выложить аддон для маршрутизации нескольких интернет (PPPoE) соединений, а в винде стоит ограничитель на 1 одновременное соединение. Я долго искал, какже в "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0004\WanEndpoints" попадает значение (адрес к переменной динамический), выяснил что из файла "NETRASA.IN_", а .inf файлы заменять на свои в публичном аддоне считаю неприличным :(
И ещё не в тему, но всё же хорошо было бы если кто-нибудь подсказал, как реализовать создание сетевых подключений

Mitunia 30-05-2008 23:44 814876

Есть предложение еще одно предложение для авторов аддонов

http://forum.oszone.net/showthread.php?p=813268

volk1234 01-06-2008 16:15 815967

Re:Flex
А почему вас не устраивает вариант с заменой файла NETRASA.inf на переделаный вами? Один раз переделали, а потом, каждый раз при сборке дистрибутива переделаный файлик остается.

gora 02-06-2008 09:48 816395

2 Vadikan
Прощу Вас убрать из Руководства следующую строку целиком, т.к. не приемлю к себе использованного в ней глагола.
Спасибо.
Цитата:

gora за идеи перешедшие в Руководство (еслибы тогда не потявкались, у меня может и стимула не было бы писать)

Vadikan 02-06-2008 18:17 816770

gora, я исправил формулировку.

All
Я перенес ссылку на руководство из раздела Новичку в раздел Эксперту. Все-таки для новичков этот материал никак не подходит. В статье о наборах обновлений я дал ссылку на рук-во.

Я переношу текущую версию рук-ва в оффлайн версию. Все дальнейшие правки, даже мелкие, нужно будет помечать в логе.

volk1234 03-06-2008 03:04 817067

2 gora
глагол возможно некоректный был,
предлогаю вам замазать его и в вашем сообщении, а то обратный эффект получится,
в благодарностях его никто и не читал, а здесь все начнут.

2 Vadikan
:) вот уж исправил так исправил

за идеи перешедшие в Руководство всеже точнее отражает суть благодарности,
gora писал в ветке Авторам аддонов и полезные вещи и начинал собирать первый FAQ по аддонам,
а уж позже когда мы...гхм...не сошлись во мнениях, не давал советов по написанию.

Если меня кто - нибудь спросит, я бы оставил gora в Благодарностях (не потому что это я так хочу, а потому
что заслужил). Если он против формулировок, можно оставить просто ник.

volk1234 08-06-2008 02:07 821254

Предлагаю для обсуждения и добавления в Руководство более подробное определение аддонов Sysoc:

Было:
Цитата:

Аддоны, использующие SYSOC.

Аддоны этого типа устанавливаются с помощью INF скриптов.
Новая редакция:

Цитата:

Аддоны, использующие SYSOC.

Аддоны этого типа иcпользуют особый вид установки – установку дополнительных компонентов Windows- System optional components ( Sysoc ). Разработчики решили дать выбор – устанавливать необязательные приложения или нет. Например, Игры, WMP и т.д.
В установленной системе за работу с дополнительными компонентами отвечает Sysocmgr.exe, который запускается при выборе вкладки “Установка компонентов Windows” в оснастке “Установка и удаление программ”. Все отображаемые данные Sysocmgr.exe, как и установщик Windows, берет из файла Sysoc.inf. Следовательно, именно этот файл и изменяется для добавления аддона в процесс установки Windows и в оснастку “Установка и удаление программ”.
Для этого, в INF- скрипт добавляется секция [Optional Components] , а также дополнительные инструкции в исполняемую секцию. Подробнее читайте в Приложении 5. http://oszone.net/6946#d6. Кроме того, необходимо изменить сам файл Sysoc.inf, добавив в него запись об интегрируемом аддоне, иначе аддон не установится. Это и понятно, откуда установщик узнает, что аддон необходимо установить если записи в Sysoc.inf нет? О синтаксисе файла Sysoc.inf читайте в Приложении 4. http://oszone.net/6946#d3
Метод Sysoc не делает аддон частью системы или дополнительным компонентом, он только позволяет использовать механизм Sysoc для установки и удаления аддона. Например, если для вашего аддона достаточно скопировать файлы в определенные папки, то файл Sysoc.inf изменять вообще не нужно. Для копирования файлов достаточно сделать записи в файлах Txtsetup.sif и Dosnet, правда это уже не будет метод Sysoc.

Основные конфигурационные файлы для этого типа аддона:

Код:

Txtsetup
Dosnet
Sysoc

Аддоны этого типа устанавливаются с помощью INF скриптов...далее по тексту
В Приложении 2. Тонкости использования inf- файлов \ 2. Методы деинсталяции,
будет обновлен "Готовый шаблон" от James Zero. http://forum.oszone.net/post-780927-109.html

Жду ваших замечаний

(чтобы незабыть) небольшая опечатка:
Petya V4sechkin за Update Pack и возможность писать под него свои аддоны, а тайже за всегда квалифицированную помощь

volk1234 09-07-2008 20:05 847132

Обновлено Руководство на сайте:
Цитата:

лог изменений:
09.07.2008 версия статьи 1.32 - Обновлено определение метода Sysoc: Раздел II. Глава 1. Аддоны, использующие SYSOC и Готовый шаблон от jameszero: Раздел 3. Приложение 2. Подраздел 2. Методы деинсталяции.

volk1234 20-07-2008 20:55 857059

Задумал доработать поподробнее приложение про этапы Установки Windows XP с упором на расшифровку файлов и компонентов используемых мастером установки на соответствующих этапах.

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


█ Log-файлы создаваемые в процессе установки.

читать дальше »
Размещение log-файлов: \%Windir%

◦ Setupapi.log

Файл протоколирования Setupapi.dll, которая обрабатывает INF-файлы во время установки аппаратных средств и регистрации. Этот файл может содержать записи, которые начинаются c [#E], что указывает на проблемы или ошибки. Отслеживает установку через INF-файлы и на установленной системе. Запись вносится каждый раз при исполнении строки из inf- файла.

◦ Setuperr.log

Общий журнал ошибок в процессе установки.

◦ Setuplog.txt

Общий журнал установки. Содержит все действия, совершаемые во время последней установки.

◦ Upgrade.txt

Лог менеджера установки, после запуска проверки на совместимость с windows XP.

◦ Setupact.log

Журнал регистрации операций. Содержит записи об операциях программы установки в хронологическом порядке. Например, это операции копирования файлов и создания записей и системном реестре, определения аппаратных устройств и установки драйверов. В нем также содержатся записи журнала ошибок - Setuperr.log .

◦ Winnt32.log

Содержит информацию о тестовом режиме установки, но создается только в процессе апгрейда системы, а не установки.

◦ Wsdu.log

Лог динамического обновления установки (только если используется динамическое обновление)

◦ Сomsetup.log

Описывает установку дополнительных компонентов и компонентов СОМ+

◦ NetSetup.log

%windir%\debug\NetSetup.log Регистрирует процесс вхождения в домен или рабочую группу.

◦ Setup.log

%windir%\repair\setup.log - Хранит информацию, которая используется консолью восстановления.

◦ Log-файлы генерируемые дополнительными компонентами.


Все кто знает что- нибудь про этапы установки сверх написаного в руководстве присоединяйтесь.

Black Babay 22-07-2008 17:29 858567

volk1234, подскажите пожалуйста как можно создать через inf-файл 2 ярлыка и в Quick Launch и в программах?
Бьюсь весь день. Создает или там или там :(

volk1234 23-07-2008 11:09 859003

Black Babay

Неплохо бы исходник привести. Тогда все могли бы найти ошибки в коде.

Ну давайте поппробуем пока так:

Код:

[DefaultInstall]
ProfileItems        =PROG.AddShortcut, PROG.AddShortQuick

Допустим вот так, через запятую с двумя разными секциями пробовали?

Black Babay 23-07-2008 11:18 859014

volk1234, так не пробовал :unsure: пытался ввести вторую переменную... Уже ушел пробовать. Спасибо!

Black Babay 23-07-2008 11:38 859037

Чего-то не срабатывает.

Код:

[[Version]
Signature="$Windows NT$"
AdvancedINF=2.5

[Optional Components]
Starter

[Starter]
OptionDesc                =%PROG_NAME%
Modes                        =0,1,2,3
AddReg                        =PROG.AddReg
ProfileItems        =PROG.AddShortcut, PROG.AddShortQuick
Uninstall                =mUninst.Uninstall

[DefaultInstall]
OptionDesc                =%PROG_NAME%
Modes                        =0,1,2,3
AddReg                        =PROG.AddReg
ProfileItems        =PROG.AddShortcut, PROG.AddShortQuick
Uninstall                =mUninst.Uninstall

[Uninstall]
BeginPrompt                =BeginUnInsPrompt
RunPreSetupCommands        =Close.Prog:1
RunPostSetupCommands        =Dir.Delete
EndPrompt                =EndUnInsPrompt
DelFiles                =PNF.File
DelReg                        =PROG.DelReg
ProfileItems                =PROG.DelShortcut, PROG.DelShortcutQuick

[BeginUnInsPrompt]
Title                        =Деинсталляция %PROG_NAME%
Prompt                        =Вы действительно хотите удалить %PROG_NAME% и все компоненты программы?
ButtonType                =YESNO

[Close.Prog]
TASKKILL /F /IM %PROG_1%
TSKILL %PROG_2%
ping -n 3 127.0.0.1

[Dir.Delete]
rundll32.exe advpack.dll,DelNodeRunDLL32 %16422%\%PROG_DIR%

[EndUnInsPrompt]
Prompt                        =Программа %PROG_NAME% удалена.

[PROG.AddReg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayIcon",0,"%16422%\%PROG_DIR%\%PROG_1%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayName",,%PROG_NAME%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayVersion",,"v%PROG_VERS%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","Publisher",,"%PROG_MADE%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","URLInfoAbout",,"%PROG_URL%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","UninstallString",,"rundll32.exe advpack.dll,LaunchINFSection %17%\%PROG_INF%,Uninstall"

[PROG.DelReg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon"

[PROG.AddShortcut]
Name                =%SRTC_NAME%
CmdLine                =16422,%PROG_DIR%,%PROG_1%
WorkingDir        =16422,%PROG_DIR%
SubDir                =%PROG_SDIR%
InfoTip                =%PROG_INFO%

[PROG.AddShortQuick]
Name                =%SRTC_NAME%
CmdLine                =16422,%PROG_DIR%,%PROG_1%
WorkingDir        =16422,%PROG_DIR%
SubDir                =%PROG_SDIR2%
InfoTip                =%PROG_INFO%

[PROG.DelShortcut]
Name                =%SRTC_NAME%,0x00000002
SubDir                =%PROG_SDIR%

[PROG.DelShortcutQuick]
Name                =%SRTC_NAME%,0x00000002
SubDir                =%PROG_SDIR2%


[Strings]
PROG_DIR        ="Starter"
PROG_NAME        ="CodeStuff Starter 5.6.0.28"
SRTC_NAME        ="Starter"
PROG_VERS        ="5.6.0.28"
PROG_MADE        ="CodeStuff"
PROG_URL        ="http://codestuff.tripod.com/products_starter.html"
PROG_INF        ="Starter.inf"
PROG_1                =Starter.exe
PROG_2                =Starter
PROG_SDIR        ="Утилиты\Starter"
PROG_SDIR2        ="..\..\Application Data\Microsoft\Internet Explorer\Quick Launch"
PROG_INFO        ="Менеджер автозагрузки, диспетчер задач и служб"


Black Babay 23-07-2008 11:56 859054

Нашел, где собака порылась.
было так:
[PROG.AddShortQuick]
Name =%SRTC_NAME%

а надо так:
[PROG.AddShortQuick]
Name =%SRTC_NAME%,0x00000001


Извените за назойливость, но возник вопрос. А как реализовать этот ярлык для дефолтного юзера?

jameszero 23-07-2008 12:07 859067

Black Babay
Пока нет профиля реального пользователя (а его нет до первого входа в систему), ярлыки имеющие флаг 0x00000001 будут создаваться в дефолтном профиле. При установке на "живой" системе, ярлык с флагом 0x00000001 будет создан только у текущего пользователя.

В руководстве не указано, но есть ещё один флаг:
0x00000003 - Удалить пункт меню для текущего пользователя

Его необходимо использовать в секции удаления ярлыка:
Код:

[PROG.DelShortcutQuick]
Name                =%SRTC_NAME%,0x00000003
SubDir                =%PROG_SDIR2%


Black Babay 23-07-2008 12:18 859084

jameszero, спасибо!

Цитата:

Цитата jameszero
При установке на "живой" системе, ярлык с флагом 0x00000001 будет создан только у текущего пользователя. »

Это я усвоил. Собственно говоря, хотел узнать, есть ли возможность при установке на "живую" систему добавить ярлык дефолтному пользователю.

volk1234 23-07-2008 12:23 859089

В контексте предыдущих постов и давнего желания доработать раздел приложения про ярлыки,

доработана статья: Приложение 2. Тонкости использования inf- файлов.

Новое: Cоздание и удаление ярлыка на Рабочем Столе, Cоздание и удаление нескольких ярлыков, Флаги ProfileItems (0x00000003), Копирование одного и того же файла в разные папки.

Изменения отдельно от статьи:
читать дальше »

3. Cоздание и удаление ярлыка на Рабочем Столе

Код:

[DefaultInstall]
ProfileItems        =PROG.AddDeskShortcut

[Uninstall]
ProfileItems        =PROG.AddDeskShortcut

[PROG.AddDeskShortcut]
Name                =%SRTC_NAME%,0x00000001
CmdLine                =16422,%PROG_DIR%,%PROG_1%
WorkingDir        =16422,%PROG_DIR%
SubDir                =%PROG_SDIR3%
InfoTip                =%PROG_INFO%

[PROG.DelDeskShortcut]
Name                =%SRTC_NAME%,0x00000003
SubDir                =%PROG_SDIR3%

[Strings]
SRTC_NAME = "Имя ярлыка"
PROG_DIR = "Путь к папке программы в Program Files"
PROG_1 = ИмяФайла.exe
PROG_INFO="Всплывающее сообщение"
PROG_SDIR3        ="..\..\Рабочий стол"

Из выше приведенных примеров видно, что ярлык практически в любой локальной папке пользователя в "Documents and Settings" можно создать при помощи конструкции
Код:

SubDir = "..\..\ "
Как это работает?
Рабочей директорией для ProfileItems по умолчанию является папка Программы в меню Пуск или другими словами %профиль%\Главное меню\Программы. Конструкцией ..\..\ мы поднимается на два уровня вверх, т.е. в %профиль% и затем указывает путь, например в %профиль%\Рабочий стол или в %профиль%\SendTo. Также можно поднятся еще выше, например,
Код:

SubDir ="..\..\..\Default User\Рабочий стол"
4. Cоздание и удаление нескольких ярлыков

Это элементарно, но некоторые пользователи все еще путаются.

Код:

[DefaultInstall]
ProfileItems        =PROG.AddShortcut1, PROG.AddShortcut2, PROG.AddShortcut3

[Uninstall]
ProfileItems        =PROG.DelShortcut1, PROG.DelShortcut2, PROG.DelShortcut3

[PROG.AddShortcut1]
Name                =%SRTC_NAME1%,0x00000001
CmdLine                =16422,%PROG_DIR%,%PROG_1%
WorkingDir        =16422,%PROG_DIR%
SubDir                =%PROG_SDIR1%
InfoTip                =%PROG_INFO%

[PROG.AddShortcut2]
аналогично

[PROG.AddShortcut3]
аналогично

[PROG.DelShortcut1]
Name                =%SRTC_NAME1%,0x00000003
SubDir                =%PROG_SDIR1%

[PROG.DelShortcut2]
аналогично

[PROG.DelShortcut3]
аналогично

Важно: Пока нет профиля реального пользователя (а его нет до первого входа в систему), ярлыки имеющие флаг 0x00000001 будут создаваться в дефолтном профиле. При установке на "живой" системе, ярлык с флагом 0x00000001 будет создан только у текущего пользователя. Соответственно 0x00000003 - Удалить пункт меню (ярлык) для текущего пользователя.

4.Флаги ProfileItems (опять Gosh).

Есть в руководстве по INF файлам, но по этому списку более понятна логика складывания флагов:
Код:


0x00000001        Создать пункт меню для текущего пользователя
0x00000002        Удалить пункт меню
0x00000003        Удалить пункт меню для текущего пользователя
0x00000004        Создать пункт меню для профиля All Users в папке Пуск\Все программы
0x00000005        Создать пункт меню для профиля Current User в папке Пуск\Все программы
0x00000006        Удалить пункт меню для профиля All Users в папке Пуск\Все программы
0x00000007        Удалить пункт меню для профиля Current User в папке Пуск\Все программы

7. Копирование одного и того же файла в разные папки.

Код:

[DestinationDirs]
File.Copy=16422,"Prog"
FileYet.Copy=16422,"Prog\Subdir"

[File.Copy]
filename.dll,,,4

[FileYet.Copy]
filename.dll,,,4



Предлагаю обсудить всем заинтересованным, до добавления в Руководство.


А и еще JamesZero,
не мог бы ты прокомментировать мое высказвание :
Цитата:

Из выше приведенных примеров видно, что ярлык практически в любой локальной папке пользователя в "Documents and Settings" можно создать при помощи пути SubDir = "..\..\Путь к папке внутри "Documents and Settings".
А то я только по анологии понимаю действие "..\", может ты научными словами обьяснишь.

Black Babay 23-07-2008 12:48 859112

Хочу разобраться до конца.
Если приведен такой параметр:
Код:

[PROG.AddShortcut]
Name                =%SRTC_NAME%

т.е ключ явно не прописан, установка проходит успешно, ярлык создается в All Users.
Считается ли ошибкой отсутствие ключа, или правильнее будет так:
Код:

[PROG.AddShort]
Name                =%SRTC_NAME%,0x00000001


jameszero 23-07-2008 12:58 859129

Black Babay
Цитата:

Цитата Black Babay
есть ли возможность при установке на "живую" систему добавить ярлык дефолтному пользователю. »

Создать ярлык в профиле текущего пользователя, а затем скопировать его в дефолтный. К примеру, средствами модифицированного sfx модуля 7-zip.

Цитата:

Считается ли ошибкой отсутствие ключа, или правильнее будет так:
Ошибкой не считается. Второй вариант неравнозначен первому, он создаст ярлык в профиле Current User, а первый в All Users.


volk1234
Рабочей директорией для ProfileItems по умолчанию является папка Программы в меню Пуск или другими словами %профиль%\Главное меню\Программы
Конструкцией ..\..\ мы поднимается на два уровня вверх, т.е. в %профиль% и оттуда уже пляшем, хоть в %профиль%\Рабочий стол, хоть в %профиль%\SendTo

Vadikan 25-07-2008 00:38 860489

volk1234, только не забывай вести лог изменений - указывай те (под)разделы, которые подверглись изменениям, чтобы потом я мог перенести в оффлайн версию.

Stanner 25-07-2008 17:44 861032

Black Babay:

Я так создаю ярлыки пользователям по умолчанию:

[PROG.AddShortcut]
...
SubDir ="..\..\..\Default User\Рабочий стол"
...

DyadyaGenya 26-07-2008 17:36 861598

volk1234, доброго времени суток, давно здесь не был, смотрю масса изменений произошла, даже если не считать появление сп3 :-)
вот появилось время и немного решил позаниматься аддоностроительством, три дня мучался как добавить ярлык на рабочий стол, только хотел задать вопрос и сам случайно расколупал способ добавления, просто не заметил как вытер Documents and Settings после слэша, с ним не добавлялся, захотел предложить вам добавить в статью, там то этого нет, и случайно прочитал приложения :-) так что в этом вопрос отпал. Но возник другой, который я как раз собирался колупать следующим. Не все понял как добавить ярлык в контекстное меню, пока ни ваш способ не получился
Код:

[PROG.AddShortcut]
Name      = "Send_To_Shortcut",0x00000008,9
CmdLine    = 11,,prog.exe

[PROG.DelShortcut]
Name      = "Send_To_Shortcut",0x0000000A,9

ни ..\..\Send To

и в дополнение, не смог найти информацию про ключи 0x00000008,9 и 0x0000000A,9 если можно подскажите где читать или дайте расшифровку тут

и последний вопрос, обратил внимание на то, что путь ..\..\Рабочий стол у меня стоит без кавычек и срабатывает, а в примере с кавычками (я то свои в сердцах что не получается случайно вытер) так как все же правильно? имеет ли это большое значение, и думаю если это принципиально, то можно было бы добавить в статью инфу и про эти кавычки, потому что с татье про инф файл там вроде жестко прописано с кавычками

стал дочитывать изменения в статье и увидел добавку про иконки, там имеется ввиду иконка в компонентах винды? потому что я сразу же решил попробовать и чо то не меняется, и если это значок в компонентах винды, то было бы прикольно прописывать туда свои иконки, но сперва хотел бы разобраться почему стандартные не меняет

volk1234 26-07-2008 18:22 861623

Цитата:

Цитата DyadyaGenya
[PROG.AddShortcut]
Name = "Send_To_Shortcut",0x00000008,9
CmdLine = 11,,prog.exe »

Вы свой код приведите, а не из примера.

Black Babay 27-07-2008 11:14 861936

volk1234, наверное вопрос немного глупый, но... Можно ли создать ярлык "Мой Компьютер" в Quick Launch при помощи inf-файла?

DyadyaGenya 27-07-2008 12:15 861963

volk1234, в том то и дело, что наверно простое копирование примера не подходит, вот я и спрашивал, что за
Цитата:

Цитата DyadyaGenya
не смог найти информацию про ключи 0x00000008,9 и 0x0000000A,9 если можно подскажите где читать или дайте расшифровку тут »

и ещё, может кому пригодиться или даже получит одобрение и дальнейшее отображение в статье такая идея:
поскольку разным пользователям приходится ставить разные наборы программ, чтоб не собирать множество сборок которые будут отличаться друг от друга всего несколькими програмками, можно использовать свойство sysoc адонов попадать в список компонентов винды, и допустим делать мультизагрузку (как самый простой способ) с использованием разных вариантов winnt.sif где в секции [Components] указать какие интегрированые проги отключить, что то типа того:

[Components]
winamp=off

у меня так получилось, пока на большее не сподобился, хотя думаю можно при наличие времени и умения сделать даже графический интерфейсик, насколько я знаю у Boa Soft имеется подобный опыт (програмулина для выбора устанавливаемых прог)

volk1234 27-07-2008 13:01 861985

Цитата:

Цитата DyadyaGenya
вот я и спрашивал, что за »

Почему именно так не скажу, пусть Jameszero колется. Впервые упоминается им здесь: http://forum.oszone.net/post-661398-216.html

Цитата:

Цитата DyadyaGenya
[Components]
winamp=off »

Как способ автоустановки - неплохой вариант. Я даже както не задумывался об отключении аддонов через winnt.sif.
В любом случае, к написанию аддонов это не имеет отношения, скорее к пользователям UpdatePack.

DyadyaGenya 27-07-2008 14:13 862030

volk1234, спасибо за ссылку, давно читал начало той ветки форума, или не обратил в свое время внимание по далекости перспективы применения (все таки тогда токо начинал этим заниматься)
а по поводу автоустановки, если не в вашей статье, так скорее всего там где обсуждается файл ответов :-) хотя в вашей статье косвенно такая возможность упоминается в разделе про sysoc аддоны
Аддоны этого типа иcпользуют особый вид установки – установку дополнительных компонентов Windows- System optional components ( Sysoc ). Разработчики решили дать выбор – устанавливать необязательные приложения или нет. Например: Игры, WMP и т.д.

volk1234 27-07-2008 17:45 862114

Ок. Добавим строку:
Разработчики решили дать выбор – устанавливать необязательные приложения или нет. Это можно сделать путем правки sysoc.inf или секции [Components] в файле unnatend.txt(winnt.sif).

кстати если не в курсе есть спецальный аддон для реализации измененний в winnt.sif в процессе установки:http://forum.oszone.net/thread-87550.html

DyadyaGenya 27-07-2008 20:00 862222

volk1234, спасибо за ссылку, такого ещё не видел, думал сам подобное стряпать :-) теперь буду продолжать лениться :-)

да, и по моему, уж если добавлять в статью строки, то для таких как я (немного недалеких ламеров) помоему надобы добавить так Разработчики решили дать выбор – устанавливать необязательные приложения или нет. Это можно сделать путем правки sysoc.inf или секции [Components] в файле unnatend.txt(winnt.sif), где и можно указать какие из интегрированых аддонов устанавливать сразу, а какие пропустить. И даже сделать вариант с мультизагрузкой, если есть необходимость выбора комплекта устанавливаемых программ.

volk1234 28-07-2008 01:57 862412

DyadyaGenya
У нас снова получается n4- разговор ни о чем. Т.е. не по теме.
Цитата:

Цитата DyadyaGenya
где и можно указать какие из интегрированых аддонов устанавливать сразу, а какие пропустить. И даже сделать вариант с мультизагрузкой, если есть необходимость выбора комплекта устанавливаемых программ. »

Это уже не относится к созданию аддонов. Поймите, нельзяже пихать все что касается win xp в это несчастное руководство :)

vserd 28-07-2008 11:06 862578

Цитата:

Это уже не относится к созданию аддонов. Поймите, нельзяже пихать все что касается win xp в это несчастное руководство
Пора писать новое руководство/KB/FAQ. "Как использовать аддоны не обычным способом". И в нем уже описывать маленькие и не маленькие хитрости и не очевидности.
ЛУчшее место для этого WIKI.
Для пользователя аддона читать внутренности устройства полезно, но не нужно, а вот "правильность" и "не правильность" использования обязательно, и это совершенно другой документ.

Способ с выбором Sysoc-аддонов в Winnt.sif явный пример что он должен быть именно в этом документе "Использование аддонов", т.к. относится и ко всем аддонам на этапе создания дистрибутива, и к способу установки уже готовой сборки, если мы знаем что в нее включено.

Цитата:

Цитата volk1234
кстати если не в курсе есть спецальный аддон для реализации измененний в winnt.sif в процессе установки:http://forum.oszone.net/thread-87550.html »

и для развития кругозора, сошлюсь на свой аддон http://forum.oszone.net/post-862035.html

DyadyaGenya 28-07-2008 18:16 862945

volk1234, пожалуй да, просто хочется иметь много подсказок, и так ну просто огромнейшая работа проделана и собрано воедино столько всего, и сегодня в очередной раз хочется подчеркнуть этот труд, тем более что уже были попытки сделать подобное где то с год назад, (нашел запущеные ветки где уже больше года никто не был), так что конечно жаль что надоедаю со своими вопросами, но похоже vserd, прав, проект вырос и пора расширять смежными темами, хотелось бы чтоб кто то подхватил эту идею и довел её до конца, сам не берусь поскольку ни зниний ни времени не хватает

и конечно же опять вопрос :) как там с вопросом про иконки?
Цитата:

Цитата DyadyaGenya
стал дочитывать изменения в статье и увидел добавку про иконки, там имеется ввиду иконка в компонентах винды? потому что я сразу же решил попробовать и чо то не меняется, и если это значок в компонентах винды, то было бы прикольно прописывать туда свои иконки, но сперва хотел бы разобраться почему стандартные не меняет »


vserd, спасибо за ссылку

Black Babay 28-07-2008 23:54 863183

Цитата:

Цитата jameszero
0x00000003 - Удалить пункт меню для текущего пользователя
Его необходимо использовать в секции удаления ярлыка:
Код:
[PROG.DelShortcutQuick]
Name =%SRTC_NAME%,0x00000003
SubDir =%PROG_SDIR2% »

Возник законный вопрос: А как тогда удалить ярлык для дефолтного пользователя созданного вот так:
Код:

[PROG.AddShortcut]
...
SubDir ="..\..\..\Default User\Рабочий стол"


jameszero 29-07-2008 09:34 863348

Black Babay
Вопрос законный, но ответ очевидный :). Удаляется так же, как и создавался:
Код:

[PROG.DelShortcut]
Name                =%SRTC_NAME%,0x00000003
SubDir                =%PROG_SDIR%

[Strings]
SRTC_NAME        ="Name"
PROG_SDIR        ="..\..\..\Default User\Рабочий стол"


Black Babay 29-07-2008 11:05 863409

jameszero, но ведь с флагом
Код:

0x00000003        Удалить пункт меню для текущего пользователя
удаление из папки дефолтного юзера не произойдет, а только из папки текущего :not-me:

jameszero 29-07-2008 11:21 863427

Black Babay
А тут не важен флаг, главное, чтобы он означал удаление, а не создание ярлыка (0x00000002 и 0x00000003 сработают одинаково)
Целевой каталог для удаления ярлыка указывается в SubDir

Black Babay 29-07-2008 11:26 863431

Цитата:

Цитата jameszero
Целевой каталог для удаления ярлыка прописывается в [Strings] »

Спасибо! Пошел пробовать...

Black Babay 29-07-2008 13:05 863516

jameszero, проверил. Большое спасибо, все работает. Если не затруднит посмотрите пожалуйста прилагаемый INF на предмет недочетов.
Код:


[Version]
Signature="$Windows NT$"
AdvancedINF=2.5

[Optional Components]
Starter

[Starter]
OptionDesc                =%PROG_NAME%
Modes                        =0,1,2,3
AddReg                        =PROG.AddReg
ProfileItems        =PROG.AddShortcut, PROG.AddShortQuick, PROG.AddShortQuickDU
Uninstall                =mUninst.Uninstall

[DefaultInstall]
OptionDesc                =%PROG_NAME%
Modes                        =0,1,2,3
AddReg                        =PROG.AddReg
ProfileItems        =PROG.AddShortcut, PROG.AddShortQuick, PROG.AddShortQuickDU
Uninstall                =mUninst.Uninstall

[Uninstall]
BeginPrompt                =BeginUnInsPrompt
RunPreSetupCommands        =Close.Prog:1
RunPostSetupCommands        =Dir.Delete
EndPrompt                =EndUnInsPrompt
DelFiles                =PNF.File
DelReg                        =PROG.DelReg
ProfileItems                =PROG.DelShortcut, PROG.DelShortcutQuick, PROG.DelShortcutQuickDU

[BeginUnInsPrompt]
Title                        =Деинсталляция %PROG_NAME%
Prompt                        =Вы действительно хотите удалить %PROG_NAME% и все компоненты программы?
ButtonType                =YESNO

[Close.Prog]
TASKKILL /F /IM %PROG_1%
TSKILL %PROG_2%
ping -n 3 127.0.0.1

[Dir.Delete]
rundll32.exe advpack.dll,DelNodeRunDLL32 %16422%\%PROG_DIR%

[EndUnInsPrompt]
Prompt                        =Программа %PROG_NAME% удалена.

[PROG.AddReg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayIcon",0,"%16422%\%PROG_DIR%\%PROG_1%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayName",,%PROG_NAME%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","DisplayVersion",,"v%PROG_VERS%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","Publisher",,"%PROG_MADE%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","URLInfoAbout",,"%PROG_URL%"
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon","UninstallString",,"rundll32.exe advpack.dll,LaunchINFSection %17%\%PROG_INF%,Uninstall"

[PROG.DelReg]
HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%PROG_NAME%_addon"

[PROG.AddShortcut]
Name                =%SRTC_NAME%
CmdLine                =16422,%PROG_DIR%,%PROG_1%
WorkingDir        =16422,%PROG_DIR%
SubDir                =%PROG_SDIR%
InfoTip                =%PROG_INFO%

[PROG.AddShortQuick]
Name                =%SRTC_NAME%,0x00000001
CmdLine                =16422,%PROG_DIR%,%PROG_1%
WorkingDir        =16422,%PROG_DIR%
SubDir                =%PROG_SDIR2%
InfoTip                =%PROG_INFO%

[PROG.AddShortQuickDU]
Name                =%SRTC_NAME%,0x00000001
CmdLine                =16422,%PROG_DIR%,%PROG_1%
WorkingDir        =16422,%PROG_DIR%
SubDir                =%PROG_SDIR3%
InfoTip                =%PROG_INFO%

[PROG.DelShortcut]
Name                =%SRTC_NAME%,0x00000002
SubDir                =%PROG_SDIR%

[PROG.DelShortcutQuick]
Name                =%SRTC_NAME%,0x00000003
SubDir                =%PROG_SDIR2%

[PROG.DelShortcutQuickDU]
Name                =%SRTC_NAME%,0x00000003
SubDir                =%PROG_SDIR3%


[Strings]
PROG_DIR        ="Starter"
PROG_NAME        ="CodeStuff Starter 5.6.2.8"
SRTC_NAME        ="Starter"
PROG_VERS        ="5.6.2.8"
PROG_MADE        ="CodeStuff"
PROG_URL        ="http://codestuff.tripod.com/products_starter.html"
PROG_INF        ="Starter.inf"
PROG_1                =Starter.exe
PROG_2                =Starter
PROG_SDIR        ="Утилиты\Starter"
PROG_SDIR2        ="..\..\Application Data\Microsoft\Internet Explorer\Quick Launch"
PROG_SDIR3        ="..\..\..\Default User\Application Data\Microsoft\Internet Explorer\Quick Launch"
PROG_INFO        ="Менеджер автозагрузки, диспетчер задач и служб"


jameszero 29-07-2008 13:25 863545

Black Babay
Я недоглядел и ошибка перекочевала в руководство :)
Код:

Вместо:
Uninstall                =mUninst.Uninstall

Нужно:
Uninstall                =Uninstall

Для не SYSOC аддонов эта строчка вообще не нужна ни в секции [Starter], ни в секции [DefaultInstall]

Кстати, если аддон не SYSOC, то можно полностью удалить следующий код:

Код:

[Optional Components]
Starter

[Starter]
OptionDesc                =%PROG_NAME%
Modes                        =0,1,2,3
AddReg                        =PROG.AddReg
ProfileItems        =PROG.AddShortcut, PROG.AddShortQuick, PROG.AddShortQuickDU
Uninstall                =mUninst.Uninstall

и из секции [DefaultInstall] следующий:
Код:

OptionDesc                =%PROG_NAME%
Modes                        =0,1,2,3

В секции [Close.Prog] можно удалить TASKKILL /F /IM %PROG_1%
Во первых, достаточно второй строчки, а во вторых, TASKKILL нет в HOME Edition и деинсталлятор непременно ругнётся.

В остальном вроде замечаний нет.

DyadyaGenya 29-07-2008 13:38 863555

volk1234, по поводу иконок, хотелось бы все таки знать откуда беруться те стандартные, хотя сегодня ноччю нашел ответ на свой вопрос с примером можно ли другие иконки прописать, пишут что можно так нанпример: IconIndex = *, ..\mqutil.dll, 3124 правда ещё не пробовал, только читал.
Успел попробовать несколько новых DirIds, случайно нашел, причом часть папок упоминается и в главном списке приведенном на сайте, но эти тоже работают, там ещё куча таких диридсов, токо не успел проверить да и не понял куда они указывают
проверенные:
Код:

21773                C:\Documents and Settings\allusers\Мои документы\Моя музыка
22542                C:\Documents and Settings\allusers\Мои документы\Мои видеозаписи
22030                C:\Documents and Settings\defaltusers\Мои документы\Мои видеозаписи
32528                defaltuser\Рабочий стол - только почему то папка там создается, если указать путь для копирования, а ярлык если пробуешь, вместо ..\..\Рабочий стол, не создается, если есть мысли по этому поводу, то хотелось бы понять в чом разница?
22037                шаблоны
22063                C:\Documents and Settings\All Users\Главное Меню\Программы\Администрирование\
22575                тоже
22072                C:\WINDOWS\Resources
22584                тоже
22061                C:\Documents and Settings\All Users\Шаблоны

не проверенные:
Код:

11 ===> system directory (%windir%\system on Win95, %windir%\system32 on NT)
; 12 ===> drivers directory (%windir%\system32\drivers on NT)
хотя эти 2 в основном списке есть :) просто привожу цитату как в документе, ниже ещё будут повторения :)
; 32768 ===> inetsrv
; 32769 ===> inetpub\ftproot
; 32770 ===> inetpub\wwwroot
; 32771 ===> inetpub\iissamples
; 32773 ===> inetpub
; 32778 ===> WinDir\Java\TrustLib
; 32800 ===> MachineName
; 32801 ===> Upgrade type
; 33000 ===> (iusr_)
; 33001 ===> (iwam_)
; 33002 ===> (www anonymous name)
; 33003 ===> (ftp anonymous name)
; 33004 ===> iwam_ for removal
; 33005 ===> iusr_www for removal
; 33006 ===> iusr_ftp for removal
; 34000 ===> \i386, \Nec98
; 34001 ===> htmla localhost link
; 34100 ===> Temp SSE Variable
; 34101 ===> Temp Debug Variable
-----------------------------------------
; 10 ===> Windows directory.
; 18 ===> Windows\help directory (%windir%)
; 20 ===> windows\fonts directory
; 11 ===> system directory (%windir%\system on Win95, %windir%\system32 on NT)
; 12 ===> drivers directory (%windir%\system32\drivers on NT)
; 32768 ===> inetsrv
; 32769 ===> inetpub\ftproot
; 32770 ===> inetpub\wwwroot
; 32771 ===> inetpub\iissamples
; 32772 ===> inetpub\scripts
; 32773 ===> inetpub
; 32774 ===> Old inetsrv dir
; 32775 ===> Old m_csPathOldPWSFiles
; 32776 ===> Old m_csPathOldPWSSystemFiles
; 32777 ===> Program Files
; 32778 ===> WinDir\Java\TrustLib
; 32779 ===> WebPub
-----------------------------------------------
[MSIExploreDestinationSection]
49000=MSIExploreLDIDSection
49050=QuickLinksLDIDSection
49060=OldIELinksLDIDSection
49090=FavoriteLDIDSection
49100=PersonalLDIDSection

[MSIExploreDestinationSecWin]
49000,49010,49020,49030=MSIExploreLDIDSection
49050=QuickLinksLDIDSection
49060=OldIELinksLDIDSection
49090=FavoriteLDIDSection
49080=StartUpLDIDSection
49100=PersonalLDIDSection

[QuickLinkDestinationSection]
49000,49010,49020,49030=MSIExploreLDIDSection
--------------------------
34101=iis_ftp component
33005
33006
33004
-------------------------------
4000=LogType
4001=%WinDir%\System32\LogFiles
36883=%WinDir%\System32\inetsrv
36917=
-------------------
Msmq1ExchConnFiles    = 97010
Msmq1Files            = 97001
Msmq1SetupFiles      = 97050
Msmq1SDK_DebugBinFiles= 97055

и ещё, всстретил в синтаксисе перед папкой значок @, к чему он? как пример:
InfoTip = "@%16422%
хотя это не очень удачный пример, просто сходу ничо другого не нашел

DyadyaGenya 29-07-2008 15:01 863627

volk1234, кстати, встретил ещё таку команду:
Error Control = 0 or 1
похоже можно контролировать процес установки, и с помощью его пропускать неправильный аддон во время инсталяции оси, чтоб не зависал и неждал команду типа жми сюда и процес пойдет дальше
на форуме нашел толлько подобное упоминание для драйверов, и то не так пишеться и флаги не такие

volk1234 29-07-2008 19:43 863862

DyadyaGenya
Дайте ссылку на источник пожалуйста.
В том числе и на источник про замену иконок в System components.

Между прочим касательно вашего предложения про winnt.sif нашел в Руководстве:


Цитата:

Цитата Приложение 6. Этапы и механизмы установки Windows XP/2003. Log-файлы, создаваемые в процессе установки.
8. Установка дополнительных компонентов ОС (sysoc.inf) С помощью sysoc.inf менеджер установки строит список файлов для установки этих компонентов. Затем этот список сверяется с файлом unattend.txt (winnt.sif) если он есть. По результатам сверки образуется конечный список устанавливаемых компонентов..


DyadyaGenya 29-07-2008 19:59 863870

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

volk1234, одну нашел по памяти http://msdn.microsoft.com/en-us/library/ms912407.aspx

DyadyaGenya 30-07-2008 17:15 864548

Цитата:

Цитата volk1234
Между прочим касательно вашего предложения про winnt.sif нашел в Руководстве: »

ну чтож, значит я давно читал все руководство, тогда наверно не заметил, а сейчас пытался найти новшества

и ещё раз повторю просьбу, подскажи пожалуйста, из какого файла взялись картинки для отображения иконок в компонентах, как я понимаю это какой то длл

volk1234 30-07-2008 23:59 864773

Цитата:

Цитата DyadyaGenya
подскажи пожалуйста, из какого файла взялись картинки для отображения иконок в компонентах, как я понимаю это какой то длл »

Порылся Restorator'ом и как и следовало ожидать нашел иконки в файле setupapi.dll

кстати, обнаружил что в спске Gosh не все иконки, 36 штук еще дополнительных :)

DyadyaGenya 31-07-2008 13:17 865090

volk1234, и хотел я его глянуть, но увидел что иконок больше, решил время не тратить, искал где есть 61 иконка :) ResHacker вручную перерывал :)

странно, пересмотрел setupapi.dll там таких иконок нет, и у меня их там аж 145
этот длл находиться в C:\WINDOWS\system32\dllcache\ или просто в C:\WINDOWS\system32\ ? хотя у меня оба файла одинаковые

нашел, они в bitmap лежат
Цитата:

Цитата volk1234
кстати, обнаружил что в спске Gosh не все иконки, 36 штук еще дополнительных »

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

volk1234 01-08-2008 00:40 865508

РУКОВОДСТВО на сайте обновлено

31.07.2008 версия статьи 1.36

+ Дополнено описание лог файлов - Приложение 6.
+ Дополнен (доведен до логического завершения) подраздел 3.Создание ярлыков в Приложении 2.
+ Флаг удаления ярлыков в подразделе 4.Разное в Приложении 2.
+ "Копирование одного и того же файла в разные папки" подраздел 4.Разное в Приложении 2.
* Аддоны используещие Sysoc - выбор установливаемых компонентов.
* Приложение 5. Указан файл с иконками Optional Components.



Не смотря на то что Vadikan включает его в оффлайн версию сайта, подумываю сделать его в chm- формате дополнительно, хотя бы чтобы подсунуть друзьям для изучения,
а то они отлынивают и говорят, что на сайте слишком много информации. Ну в Word'е руководство занимает 50 страниц :)


Хочу сказать Спасибо jameszero, Black Babay, Stanner за поднятую тему и ценные советы. DyadyaGenya тоже заслужит свою первую благодарность если выложит обещанные ссылки :)

Vadikan 01-08-2008 02:11 865541

Цитата:

Цитата volk1234
Не смотря на то что Vadikan включает его в оффлайн версию сайта, подумываю сделать его в chm- формате дополнительно, хотя бы чтобы подсунуть друзьям для изучения, »

Я не возражаю. Мне так даже будет проще включать обновленную версию в учебник, хотя внешние ссылки на внутренние все равно нужно будет править и еще кое-какие мелочи.

P.S. Я прошелся по измененным секциям - поправил грамматику и пунктуацию, где увидел :) Там опять появились INF- скрипты. Лучше придерживаться одного термина - INF-файл.

Stanner 01-08-2008 18:54 866035

Многие любят, когда в "Установке и удалении программ" название программы высвечивается сразу вместе с версией.
Если значение версии добавить в PROG_NAME, то это приведет к размножению пунктов, связанных с программой.
Мне кажется, в таком случае надо использовать такую строку в inf:
HKLM,"%SWUninstall%\%PROG_NAME%_addon","DisplayName",,"%PROG_NAME% v%PROG_VERS%"

P.S. Кстати, в руководстве потерялись кавычки перед %PROG_NAME%: ...,"DisplayName",,%PROG_NAME%"

volk1234 01-08-2008 21:11 866124

Цитата:

Цитата Stanner
то это приведет к размножению пунктов, связанных с программой. »

это как ?

maik5 01-08-2008 22:00 866151

Цитата:

Цитата Stanner
P.S. Кстати, в руководстве потерялись кавычки перед %PROG_NAME%: ...,"DisplayName",,%PROG_NAME%" »

Этих кавычек во многих аддонах не хватает и ваши не исключение :), только у gora эта кавычка везде стоит.

volk1234 01-08-2008 23:54 866202

Цитата:

Цитата maik5
Этих кавычек во многих аддонах не хватает и ваши не исключение »

Исправлено.

Stanner 04-08-2008 19:08 867808

Цитата:

Цитата volk1234
это как ? »

Допустим, для Prog_name="XnView 1.94.1" будет создан раздел удаления "XnView 1.94.1_addon". При обновлении программы путем установки обновленного "XnView 1.94.2" будет создан еще один раздел - "XnView 1.94.2_addon" и обе записи будут отображаться в "Установке и удалении программ".
Понятно, что корректно будет сначала удалить старый, но можно просто использовать Prog_name="XnView", а в DisplayName записывать "%PROG_NAME% v%PROG_VERS%" - и проблема точно не возникнет.

А насчет кавычек - исправлю и у себя, сам только заметил. Пустячок, но лучше исправить.

Stanner 06-08-2008 18:02 869610

Я считаю, что после удаления программы ее inf-файл тоже не нужен и предлагаю сделать так:

[Del.PNF]
%PROG_PNF%
%PROG_INF%

Vadikan 07-08-2008 09:01 869997

volk1234, мне тут внимательный читатель прислал список грамматических и орфографических ошибок в руководстве. Исправь, плиз, когда будет время.

Цитата:

В разделе "Эксперту\Руководство по созданию аддонов для набора обновлений UpdatePack-RUS" во втором пункте содержания (и дальше в заголовке) ошибка в слове "пользоватся" - нужен "ь"; во втором пункте третьего раздела содержания слово "деинсталяции", скорее всего, пишется с двумя "л"(также встречается и далее). В теме "Раздел I. Общие положения" последнее слово первого абзаца "подхватыватся" нужно писать с "ь"; во втором пункте раздела "Важно!" не хватает запятой после "дело" и после "дату"; в последнем абзаце темы опечатка "наименованиее". В теме "Обработка аддона скриптом Update Pack" в пятом абзаце снизу слово "вложеной" нужно писать с двумя "н". В теме "Аддоны, использующие SYSOC" в четвертом абзаце не хватает запятой после "программы"; в третьем пункте "Важно" снизу опечатка "присутсвтует". Во втором абзаце темы "Аддоны, изменяющие дистрибутив" не хватает запятой после "например" в скобках. В теме "Раздел III. Примеры и приложения" слово "мучать" следует писать через "и
". В теме "Пример 2. учебный аддон Puntoswitcher" в третьем абзаце опечатка "дальшейшем"; в этой же теме где-то в середине:) в "Следущие" не хватает "ю". В теме "Пример 3. Разбор конструктора K-lite codek pack" в первом абзаце "переименованый" нужно писать с двумя "н"; в подтеме "Klite.inf" "коментарии" нужно писать с двумя "м". В теме "2. Методы деинсталяции" во втором абзаце опечатка "сеции" (и "деинсталяцию"); в разделе "Важно" этой темы после "папку" нужна запятая. В первом предложении темы "Способ 2. "Радикальный"" слово "внутреняя" нужно с двумя "н"; в третьем абзаце снизу этой темы "созданый" - с двумя "н". В пункте "Отображение и запуск файлов" темы "4. Разное" в приведенном коде "отображатся" нужен "ь"; так же в нем апплет сначала пишется с одной "п", а потом с двумя... В первом предложении темы "5.Выполнение INF-файла через Rundll32.exe" "коммандной" пишется с одной "м"; во втором коде опечатка "перезгрузку"; опечатка "распрастраненный"; и в последнем предложении э
той темы "отображатся" - нет "ь". В теме "Приложение 3. Файл Txtsetup.sif" приблизительно в пятом абзаце после "параметры" нужна запятая. В теме "Приложение 5. Секция [Optional Components]" во втором абзаце не хватает "ь" в "выполнятся" и ошибка в "игнорированны" - лишняя "н"; пятью абзацами ниже - "отображатся" нужно с "ь". Во втором абзаце после списка из 61 наименования опечатка "устанваливаемый", а в следующем абзаце нет "ь" в "ссылатся". В теме " Log-файлы, создаваемые в процессе установки" опечатка "Отслежиеает" в первом абзаце. В теме "Благодарности" опечатка "тайже", не хватает запятой после "тех" сразу после списка "благодарных".
:)
А мне он прислал по всей оффлайн версии... :)

DJ Electronic 08-08-2008 09:28 870911

А почему при установке через секцию defaultinstall простым кликом по inf выбрав установить не отрабатывает секция запуска файлов? и ещё в SP3 не работает секция регистрации библиотек, как будто её совсем убрали

jameszero 08-08-2008 10:42 870955

DJ Electronic
Если секция установки/деинсталляции вызывается через setupapi, то запуск файлов отрабатывает только через директиву Run.
Если секция установки/деинсталляции вызывается через advpack, то запуск файлов отрабатывает только через директивы RunPreSetupCommands и RunPostSetupCommands.
А так же, через advpack не отрабатывают команды RegisterDlls и UnRegisterDlls

Обычный запуск установки (по правой кнопке на inf-файле - "Установить") вызывает, как раз интерпретатор setupapi (со всеми вытекающими).

Я для тестирования inf-файлов применяю следующий твик:
Код:

[Version]
Signature=$Windows NT$

[DefaultInstall]
AddReg        = TWEAKS.AddReg
DelReg        = TWEAKS.DelReg

[TWEAKS.AddReg]
HKCR,"inffile\shell\Install1",,0x0,"Install"
HKCR,"inffile\shell\Install1\command",,0x20000,"%%SystemRoot%%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %%1"
HKCR,"inffile\shell\Install2",,0x0,"UnInstall"
HKCR,"inffile\shell\Install2\command",,0x20000,"%%SystemRoot%%\System32\rundll32.exe setupapi,InstallHinfSection UnInstall 132 %%1"
HKCR,"inffile\shell\Install3",,0x0,"AdvInstall"
HKCR,"inffile\shell\Install3\command",,0x20000,"%%SystemRoot%%\System32\rundll32.exe advpack.dll,LaunchINFSection %%1, DefaultInstall,0"""
HKCR,"inffile\shell\Install4",,0x0,"AdvUnInstall"
HKCR,"inffile\shell\Install4\command",,0x20000,"%%SystemRoot%%\System32\rundll32.exe advpack.dll,LaunchINFSection %%1, UnInstall,0"""

[TWEAKS.DelReg]
HKCR,"inffile\shell\Install"

т.е. стандартная команда "Установить" из контекстного меню inf-файлов удаляется, но добавляются четыре новых пункта.
Install
UnInstall
AdvInstall
AdvUnInstall
Первый и второй пункты (значения, надеюсь понятны) отрабатывают через setupapi, третий и четвёртый делают тоже самое через advpack.
Примечание: для деинсталляции из контекстного меню inf-файла, соответствующая секция должна называться [Uninstall] и никак иначе (регистр букв не важен).

В "Руководстве по созданию аддонов" есть такой текст:
Цитата:

Важное замечание по синтаксису INF- скрипта. При вызове интерпретатора из INF-файла имеются различия вызова через setupapi.dll и advpack.dll. Вызов setupapi.dll должен осуществляться через инструкцию Run= , а вызов advpack.dll - только через RunPostSetupCommands=
но он не совсем точен (или я его не так понял). Различия между setupapi.dll и advpack.dll имеются, и о них я написал в начале поста, но ничего не мешает использовать setupapi для вызова секции, отрабатывающей через advpack.
Пример:
Код:

[Uninstall]
Run=opera.AdvInfCall

[opera.AdvInfCall]
Commandline="""%11%\rundll32.exe"" advpack,LaunchINFSection ""%17%\Opera.inf"",Opera.Uninstal.DelDirs,4"
TickCount=500


volk1234 19-08-2008 22:30 879070

Хм, заметил у себя ошибку-
в разделе 2
Файл Dosnet.inf используется только при установке Windows с жёсткого диска.
На самом деле, как указанно в приложении про этапы установки Windows XP любой вид установки, кроме установки с CD
установщик воспринимает как установку из сети, даже с жесткого диска. LOL

тот же в раздел 2 в главе про SYSOC выделить жирным в примере строку с Foxitr, и сделать пример более понятным.
в конце статьи про SYSOC сделать ссылку на Приложения 3,4 вместо их упоминания

еще
в разделе 2 про SVCPACK:
SVCPACK обрабатывается за 13 минут до окончания установки Windows (T13), так сказать на "высоком" уровне, что позволяет использовать оригинальный установщик программы.
добавить - и позволяет также использовать возможности реестра и других "высокоуровневых" средств (или как то так)

еще
Важно! В конфигурационном файле Run также возможно указывать ключи запускаемых приложений: setup.exe /s.
слово RUN выделить курсивом
и еще:
Комбинированные аддоны.
Из названия следует, что данный тип использует оба вышеописанных типа: SYSOC и SVCPACK.
Вобщем то , из названия ничего не следует :) переделать...

DyadyaGenya 23-08-2008 20:04 882149

volk1234, пока решаю проблемы с загузкой системы дома (уж очень хочется востановить ссылки) на работе в очередной раз прочитал руководство и появилась мысль, а не добавить ли в разделе деинсталяции замечание или дополнение, что с помощью
[Dir.Delete]
rundll32.exe advpack.dll,DelNodeRunDLL32
можно удалить одновременно несколько папок, допустим, чтоб не оставались следы программы в документ энд сетинг, которые особенно часто встречаются в апликейшин дата? конечно может гуру и используют этот метод, но я например не сразу решил что надо и эти папки подчищать и тем более как это сделать

для удобства пример:
[Dir.Delete]
rundll32.exe advpack.dll,DelNodeRunDLL32 %16422%\%PROG_DIR%
rundll32.exe advpack.dll,DelNodeRunDLL32 %16410%\Gretech
rundll32.exe advpack.dll,DelNodeRunDLL32 %16419%\Gretech

[Strings]
PROG_DIR ="Gretech"

Papercut 24-08-2008 10:37 882412

Помогите ламеру. Чем как можно изменить файлы в .cab и .exe? 7-Zip только добавляет файлы, а при удалении или замене сушествующих выдает ошибку "Не поддерживается".

maik5 24-08-2008 11:12 882426

Papercut,
Очень хорошая утилита CabTools для перепаковки .cab и почитайте на досуге Сжатые файлы и ModifyPE, а .exe можно попробовать распаковать с помощью унпакера (например Universal Extractor, но не факт, что он всё распакует, т.е. не все .exe может распаковать).

Papercut 24-08-2008 11:30 882430

Под .exe я имел в виду SFX-архивы.

maik5 24-08-2008 12:08 882438

Papercut,
Цитата:

Цитата gora
Только полный ответ, возможно, убережет от повторных "занудных" вопросов ;) . »

На форуме в основном используют 7-Zip SFX архивы, которые можно запаковать и распаковать с помощью Кнопки для создания и работы с 7z SFX и почитайте Создание SFX архива.

Black Babay 25-08-2008 10:36 883027

volk1234, извените, но опять вопрос, который поставил меня в тупик.

Как при помощи INF-файла, создать ярлык в Quick Launch для "Мой компьютер"?

volk1234 26-08-2008 08:19 883968

Papercut - вам может помочь Total Commander 7 версии и выше,
понимает множество архивов. Выделяете файл и Ctrl+PgDown - перед вами содержимое архива,
правда именно в каб по стандарту не получится добавить, используйте CabTool, а вот остальные - например Sfx rar -
прямо по команде F5 добавляется в архив.

Кстати делаю вам предупреждение за оффтопик, эта ветка про руководство, для решения проблем архиваторов вам не сюда.

DyadyaGenya 30-08-2008 19:27 887362

Stanner, попробовал удалить инф как ты и предлагаешь,
Цитата:

Цитата Stanner
Я считаю, что после удаления программы ее inf-файл тоже не нужен и предлагаю сделать так: »

но после этого в пункт "Установка компонентов виндоус" не достучаться, пишет мол нет инф файла такой то программы и окошко тухнет. Может я не так делаю? или ты не пробовал после этого заходить в "Установка компонентов виндоус"

Black Babay 30-08-2008 23:07 887482

Цитата:

Цитата DyadyaGenya
но после этого в пункт "Установка компонентов виндоус" не достучаться, пишет мол нет инф файла такой то программы и окошко тухнет. »

Точно, есть такое дело. Но вот когда это появилось, не знаю...

Stanner 31-08-2008 14:49 887797

DyadyaGenya, Black Babay, я так предлагал только для SVCPACK-аддонов, которые не имеют отношения к компонентам Windows.

DyadyaGenya 03-09-2008 18:29 890266

volk1234, а можно для таких как я в разделе sosoc сделать уточнение в строке
Hide - скрыть компонент
дописать таким образом:
Hide - скрыть компонент; скрывает аддон в списке "Установка компонентов Windows"

Black Babay, попробуй посмотреть какие аддоны у тебя стоят и проверь наличие в папке виндоус/инф инфов этих файлов, вдруг там не все есть, тогда просто из аддона добавь должно помочь

volk1234, и ещё маленькое дополнение, если наличие инф файла в папке виндоус имеет такое значение то может стоит отобразить это в руководстве?

Dmitry_K 20-09-2008 07:12 903882

Black Babay, нет ничего проще, чем создать при помощи INF-файла ярлык в Quick Launch для "Мой компьютер"... конечно, шутка... но "батники" - великая весчь ;)

Код:

[version]
Signature="$CHICAGO$"
AdvancedINF=2.5

[DefaultInstall]
RunPreSetupCommands = MakeDesktopLink

[MakeDesktopLink]
"cmd /c MD ""%APPDATA%\Microsoft\Internet Explorer\Quick Launch\Мой компьютер.{20D04FE0-3AEA-1069-A2D8-08002B30309D}"""


Black Babay 20-09-2008 20:48 904289

Dmitry_K, Спасибо! Я уж думал так и не решу эту мелочь! :search:

NikLok 26-09-2008 22:38 909682

Вот и я наконец то обратил свой взор на руководство по написанию аддонов. Начал читать и понял, что есть вопросы на которые не имею пока ответа:
- Что такое аддон
- В чем его преимущество и недостатки
- Какие типы их бывают
- Допускают ли динамическую установку ( то есть по выбору скажем на T40 или позже)
- Алгоритмы (Механизмы ) и средства интеграции или использования
- Локализация аддонов и возможности создания многоязычных

Вопросы, просты но ответы на них у меня чисто интуитивные и в их корректности я не уверен.
Может есть смысл осветить их во введении руководства? Так сказать для полноты документа!

То что написано по http://tools.oszone.net/jameszero/up...dex.htm#addons
выглядит очень скромно и не раскрывает вопроса.

Vadikan 27-09-2008 01:02 909794

Цитата:

Цитата NikLok
- Что такое аддон
- В чем его преимущество и недостатки »

Да, пожалуй, с этого стоит начать руководство :)

Цитата:

Цитата NikLok
Какие типы их бывают »

См. раздел II

Цитата:

Цитата NikLok
- Допускают ли динамическую установку ( то есть по выбору скажем на T40 или позже) »

Я думаю, что этот вопрос можно осветить в "преимуществах и недостатках".

Цитата:

Цитата NikLok
- Алгоритмы (Механизмы ) и средства интеграции или использования »

Не очень понятно, о чем речь... В общем, все руководство об этом и рассказывает :)

Цитата:

Цитата NikLok
- Локализация аддонов и возможности создания многоязычных »

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

NikLok 27-09-2008 11:14 909920

Цитата:

Цитата Vadikan
В общем, все руководство об этом и рассказывает »

Виноват не хватило терепения на внимательное прочтение даже оглавления.

Цитата:

Цитата Vadikan
Цитата NikLok:
- Алгоритмы (Механизмы ) и средства интеграции или использования »
Не очень понятно, о чем речь... В общем, все руководство об этом и рассказывает »

Ну к примеру популярнейший [addon] ResPatch Black-Dark Blue & Yellow или Новые ресурсы (битмэпы) для Windows XP
можно интегрировать вроде а можно просто поставить в уже установленной системе. И так вроде многие написаны.
Что это - смесь аддона со скриптом установки или уже новая сущность? (наверное все таки надо прочесть до конца сначала - но тогда многие вопросы исчезнут забившись информацией или прояснившись все таки :( )

Цитата:

Цитата Vadikan
Приведите пример аддона, который должен быть многоязычным. »

Ну я пока очень слабо в них ориентируюсь, но мне кажется многим захочется командную строку со списком команд. Очень полезная штучка для всяких начинающих и забывичвых, то есть заканчивающих! :)

volk1234 28-09-2008 19:40 911066

Привет. Слетела подписка на эту тему :(

Аддон (буквально Добавка) - программа модифицированная специальным образом для интеграции посредством Update Pack в дистрибутив Windows XP для последующей автоматической установки вместе с ней.
Для лучшего понимания приведу пример: Есть программа Total Commander которая является файловым менеджером, позволяет просмотривать папки и файлы, но не умеет просматривать картинки сразу в панели. А вам очень нужна такая функция. Вы скачиваете(или создаете) PLUG-IN для Total Commander который добавляет возможность просматривать картинки прямо в панели.
Тоже самое и в нашем случае. Update Pack служит для добавления в дистрибутив Windows обновлений и заплаток. Побочной функцией является возможность интегрировать программы в дистрибутив используя тот же механизм, что и обновления(SVCPACK, SYSOC).
Только в нашем случае не plug in, а аддон.

Плюсы такого подхода к автоустановке очевидны: при установке вместе с Windows устанавливаются все необходимые вам программы, утилиты, драйвера. Это происходит без вашего участия. Нет необходимости во множестве перезагрузок. Аддоны легки в создании и не требуют больших знаний (по крайней мере типа SVCPACK).

Минусы не так очевидны, но тоже присутствуют. Самый главный состоит в том, что установщик Windows изначально не расчитан на установку стороннего програмного обеспечения, и здесь возможны различные конфликты и ошибки несовместимости.Справедливости ради стоит сказать, что происходит это очень редко. Второй минус в том, что аддоны не очень гибки и изменить, что либо после записи дистрибутива на диск невозможно. Существуют варианты аддонов которые позволяют делать какой-либо выбор на этапе установки (SIF), но делается это путем различных хитростей и подменой дистрибутивных файлов. Что тоже не очень хорошо. Лучше воспользоватся одной из программ Post installer [ссылка на сайт]
Еще один минус - разбухание дистрибутива. Кроме того если не следить за журналом ошибок, при использовании плохо отлаженных или конфликтующих аддонов возникают различные трудно отлавливаемые глюки и ошибки в работе Windows, которые не исчезают даже при удалении установленных приложений-аддонов.


///
что качается вопроса о применении аддона на рабочей системе, он выходит за рамки руководства. Это вопрос по inf-файлам и ключам инсталяторов. Руковдство по созданию аддонов предполагает некоторый начальный уровень читающего в области создания простейших скриптов. Сами подумайте если команда copy a.txt d:\folder работает в виндовс
будет ли она работать в DOS ?
Все зависит от автора аддона. Кто -то умышленно исключает возможность установки аддона на работающей системе, а кто-то наоборот включает такую возможность.

NikLok 28-09-2008 20:02 911078

volk1234,
Цитата:

Цитата volk1234
Плюсы такого подхода к автоустановке очевидны: при установке вместе с Windows устанавливаются все необходимые вам программы, утилиты, драйвера. Это происходит без вашего участия. Нет необходимости перезагрузки. Аддоны легки в создании и не требуют больших знаний (по крайней мере типа SVCPACK). »

Я как то считал что они более полезны тем, что физически установки программ то как раз и не происходит, за счет чего достигается кономия времени при установке системы?

volk1234 28-09-2008 20:21 911093

Если программа не требует установки, то ее просто копируют. Пример - portable soft.

Полезны аддоны тем, что не надо дополнительно ставить эти программы после установки Windows. Не надо выполнять много повторяющихся действий, нажимать кнопки далее, перезагружать компьютер.
Самый распрастраненный пример - DrWeb. Если его устанавливать вручную, надо выбрать куда, какие компоненты, плюс он иногда начинает проверять систему на вирусы сразу после установки, надо скопировать в его папку лицензионный ключ, и наконец перезагрузить компьютер.

На одном компьютере это не очень долго, а попробуйте вручную установить Windows и весь необходимый набор софта с оптимальными настройками и твиками реестра на 10 машинах. Уже тяжелее не правдали ?

Dmitry_K 28-09-2008 20:24 911096

NikLok, физически установка программ все равно происходит (копирование файлов, применение установок), только это делается не всегда с помощью родного инсталлятора (установщика), а другими методами. А экономия времени достигается путем автоматизации установки. К примеру, если программа одна, то на ее установку и настройку уйдет немного времени, допустим, 3 минуты. А если таких программ 20? Итого лишний час времени на установку и настройку. Вот отсюда и экономия ;)

volk1234 28-09-2008 20:46 911118

Цитата:

Цитата Dmitry_K
только это делается не с помощью родного инсталлятора (установщика), а другими методами »

Все зависит от способа реализации аддона. При аддоне типа SVCPACK какраз таки используется родной инсталятор с ключом тихой установки.

Dmitry_K 28-09-2008 20:58 911133

Цитата:

Цитата volk1234
При аддоне типа SVCPACK какраз таки используется родной инсталятор »

не всегда, ;) все зависит...
Цитата:

Цитата volk1234
от способа реализации аддона »

спасибо за уточнение, немного некорректно написал, правильно "не всегда", исправил...

volk1234 28-09-2008 21:17 911150

Цитата:

Цитата Dmitry_K
не всегда, все зависит... »

Понятно, что можно сделать свой инсталятор любого вида и на его основе аддон типа SVCPACK.
Я просто стараюсь отвечать в рамках Руководства. Оно не предназначено на все случаи жизни, а уж
тем более на обучение созданию инсталяторов :) Это как обучение вождению и например контролируемому заносу на автомобиле,
сначало одно, потом другое и в другом месте ;)

vserd 29-09-2008 10:30 911474

Цитата:

Цитата NikLok
- Допускают ли динамическую установку ( то есть по выбору скажем на T40 или позже) »

Если знать что и где редактировать, то допускают.

NikLok 30-09-2008 10:35 912241

volk1234,
Цитата:

Цитата volk1234
а попробуйте вручную установить Windows »

Вопрос шел не о ручной установке. Меня больше интересует сравнение с автоматической установки скриптами или ключами автоинсталяции по сравнению с инсталляцией аддонами!

Цитата:

Цитата Dmitry_K
А экономия времени достигается путем автоматизации установки. »

Мне кажется акцент вы сделали не на том. Кажется что предыдущее предложение больше подходит! То есть так как в обоих случаях инсталляция производится в авторежиме, то аддоны похоже дают выигрыш во времени установки, за счет обхода неповоротливого инсталлятора или оптимизации процесса установки?!

Цитата:

Цитата vserd
Цитата NikLok:
- Допускают ли динамическую установку ( то есть по выбору скажем на T40 или позже) »
Если знать что и где редактировать, то допускают. »

vserd, Примерчик бы не помешал всем присутствующим, ибо вопрос сильно не тривиальный!

volk1234 30-09-2008 11:19 912268

Цитата:

Цитата NikLok
Меня больше интересует сравнение с автоматической установки скриптами или ключами автоинсталяции по сравнению с инсталляцией аддонами! »

Я честно пытался понять смысл предложения, но не смог. Сравнение чего c чем? Автоустановка и установка аддонов по сути одно и тоже, разница только в месте установки - во время или после установки системы.

Давайте договоримся, вы для начала прочтете http://www.oszone.net/2747/ и руководство которое обсуждается в этой ветке.
И если после прочтения этих двух учебников у вас останутся вопросы - задавайте их.
А то получается прочитать еще не прочитали, а вопросы уже есть. Поверьте там есть ответы на все возможные вопросы.RTFM.

Цитата:

Цитата NikLok
аддоны похоже дают выигрыш во времени установки, за счет обхода неповоротливого инсталлятора или оптимизации процесса установки?! »

Нет. Аддоны не создаются для ускорения процесса установки. Нет смысла.

Vadikan 30-09-2008 11:30 912281

volk1234, мне понравилось сравнение плюсов и минусов в 259. На эту тему я также писал:
Цитата:

Цитата Vadikan
аддоны не являются самым удобным средством установки приложений, что обусловлено двумя главными причинами: зависимостью от автора аддона при обновлении программы и невозможностью выбора программ для установки. Вторая причина значительно снижает универсальность дистрибутива в том случае, если он используется для установки на компьютеры различных домашних пользователей. <...>

[можно] использовать ПО, позволяющее выбрать программы для установки: Выбор устанавливаемых приложений. При обновлении версии программы, как правило, достаточно просто перезаписать в дистрибутиве исполняемый файл установщика (в отдельных случаях меняются ключи, еще 30 секунд поправить) или содержимое папки программы, не требующей установки. Все. »


prokazzza 30-09-2008 12:55 912322

volk1234,
Цитата:

Цитата volk1234
Нет. Аддоны не создаются для ускорения процесса установки. Нет смысла. »

Как не создются, а аддоны для удаления компонентов?

volk1234 30-09-2008 13:49 912377

Цитата:

Цитата DJ Electronic
не отрабатывает секция запуска файлов? и »

Когда вы уже будете читать руководство???
http://oszone.net/6946#f4

Цитата:

...
Важно! Именно через Setupx.dll (Setupapi.dll), происходит выполнение INF-файла при запуске его из контекстного меню командой "Установить".
....
Важное замечание по синтаксису INF- скрипта. При вызове интерпретатора из INF-файла имеются различия вызова через setupapi.dll и advpack.dll. Вызов setupapi.dll должен осуществляться через инструкцию Run= , а вызов advpack.dll - только через RunPostSetupCommands=
Если проще, много раз здесь писалось - если необходимо запустить комманду advpack , а RunPostSetupCommands именно такая команда,
надо вызвать inf файл через строку вида RunDll32.exe advpack.dll, LaunchINFSectionEx <inf-file>, <section>, <cab>, <flag1>, <flag2>, 0
а не через контекстное меню...

Про SP3 не знаю не ставил.

Цитата:

Цитата prokazzza
Как не создются, а аддоны для удаления компонентов? »

Зачем ты путаешь человека ?
Эти аддоны не ускоряют установку, а уменьшают размер дистрибутива. На мой взгляд единственное,
что зрительно ускоряет установку WinXP это много памяти у компьютера и файл unnatend.txt(winsif) :)

vserd 30-09-2008 15:16 912448

Цитата:

Цитата NikLok
- Допускают ли динамическую установку ( то есть по выбору скажем на T40 или позже) »
Если знать что и где редактировать, то допускают. »
vserd, Примерчик бы не помешал всем присутствующим, ибо вопрос сильно не тривиальный! »

А я и не говорю что тривиальный.
На T40 запускаешь редактор и правишь ручками sysoc.inf и svcpack.inf.
Если посидеть разобраться, то ничего сложного нет. С sysoc.inf вообще достаточно просто, пробежался по нему, затем по $winnt$.inf и выбрал чего ставить, а чего нет. C svcpack немного сложнее. Нужно будет делать соглашение для аддоно-писателей чтобы можно было выбирать осмысленно, а не по именам файлов.

Цитата:

Цитата volk1234
Аддоны не создаются для ускорения процесса установки. Нет смысла »

Всетаки для ускорения установки и для автоматизации рутины. Хотя время установки системы уваличивается, общее время на ввод в эксплуатацию сокращается, повышается качество установки (не забываем устанавливать то, что у каждого идет как "по умолчанию -- должно быть в системе"). И не приходится потом удивляться как это так, я систему ставил, а свою любимую но используему раз в год програмку не поставил. Да быть такого не может... :))

NikLok 30-09-2008 15:46 912491

volk1234,
Цитата:

Цитата volk1234
Я честно пытался понять смысл предложения, но не смог. »

У меня итак идет автоматическая установка, но не аддонами! Вот меня и интересует, что я могу выиграть от использования аддонов. Только не автоматику УЖЕ, она и так есть!

vserd,
Цитата:

Цитата vserd
не забываем устанавливать то, что у каждого идет как "по умолчанию -- должно быть в системе »

Тот же BSPI имеет для этого спец. значение в конфиге.

vserd 30-09-2008 16:31 912538

Цитата:

Цитата NikLok
Тот же BSPI имеет для этого спец. значение в конфиге. »

Это еще и BSPI нужно иметь :)), а так уже на уровне ОС!!!. И даже если не использовать автоустановку, программы установятся. Короче, в оффтопик скатываемся!!!

prokazzza 30-09-2008 17:11 912570

volk1234,

Цитата:

Цитата volk1234
Как не создются, а аддоны для удаления компонентов? »
Зачем ты путаешь человека ? »

Цитата:

Цитата volk1234
Эти аддоны не ускоряют установку, а уменьшают размер дистрибутива. »

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

volk1234 30-09-2008 17:59 912599

Так господа прекращаем офтоп.
Я чур последний.

prokazzza
Цитата:

Цитата prokazzza
Ошибаешься, аддоны да урезают размер, но и также уменьшают время установки системы, за счет того что лишние файлы, не распаковываются и не копируются на винт. »

Какой максимальный размер урезанного?? 50 метров? Сомневаюсь. Но даже если так, посчитайте сколько на современном компьютере времени занимает копирование 50 Мб ?? Десяток секунд? Вместе с распаковкой минуту??
С другой стороны даже десяток аддонов не сильно замедляет установку.

Цитата:

Цитата vserd
На T40 запускаешь редактор и правишь ручками sysoc.inf и svcpack.inf. »

ай маладца :)

Цитата:

Цитата vserd
Всетаки для ускорения установки и для автоматизации рутины. »

Ускорение установки Windows имелось в виду. Про автоматизацию я говорил - это и есть цель аддонов.

Цитата:

Цитата NikLok
У меня итак идет автоматическая установка, но не аддонами! Вот меня и интересует, что я могу выиграть от использования аддонов. Только не автоматику УЖЕ, она и так есть! »

Я вам повторю, читайте мануалы и форум. Дело не в аддонах, дело в UpdatePack. Автоустановка это автоустановка.

UpdatePack- мощное средство по интеграциии в дистрибутив наборов обновлений и пользовательских программ(аддонов). Автоустановка здесь ни причем(только разве, что качаемо тихой установки приложений для аддонов).
NikLok прочитайте несколько раз последнюю фразу, убедитесь, что вам это понятно. А то каша получается - автоустановка, BSPI, аддоны, ускорение установки Windows.....

vserd 30-09-2008 18:20 912614

Цитата:

Цитата volk1234
На T40 запускаешь редактор и правишь ручками sysoc.inf и svcpack.inf. »
ай маладца »

Кому нужно, тот будет делать. А когда надоест напишет программку :)), мне чтоль за всех отдуваться :)))

volk1234 30-09-2008 19:00 912650

Цитата:

Цитата DyadyaGenya
но после этого в пункт "Установка компонентов виндоус" не достучаться, пишет мол нет инф файла такой то программы и окошко тухнет. Может я не так делаю? или ты не пробовал после этого заходить в "Установка компонентов виндоус »

Цитата:

Цитата Black Babay
Точно, есть такое дело. Но вот когда это появилось, не знаю... »

Давно спрашивали, но отвечаю только сейчас. Если вы удалали inf файл программы являющейся пунктом из Компоненты Windows и не можете войти теперь в это окно необходимо править файл Sysoc.inf. Удалить целиком строчку касающуюся недостающего inf - файла.

prokazzza 30-09-2008 19:06 912653

volk1234, ты помоему решил собрать руководство по созданию аддонов и его описанию, но если руководство будет основано:
Цитата:

Цитата volk1234
На мой взгляд единственное»

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

Цитата:

Цитата volk1234
Какой максимальный размер урезанного?? 50 метров? Сомневаюсь. Но даже если так, посчитайте сколько на современном компьютере времени занимает копирование 50 Мб ?? Десяток секунд? Вместе с распаковкой минуту??
С другой стороны даже десяток аддонов не сильно замедляет установку. »

Смотря что ты режешь, не забывай то что еще разархивируется и копируется на винт, это пол дела, а то что эти приложения устанавливаются это уже совсем другое. И не у всех тута есть современный компьютер, да и дистрибутив собирают тут не только для себя. Для таких оффисных компов где стоит обычный Сeleron и старенький Cd-rom даже эти 50 метров будет значить, Поэтому не надо так бурно реагировать. :)

volk1234 30-09-2008 22:27 912843

prokazzza
Только без нервов :)
Я написал что думаю. В руководство я никогда не добаляю свои мысли или фантазии :)
Я дискутировал с тобой по несколько отвлеченному от Руководства вопроса.

Цитата:

Цитата prokazzza
а то что эти приложения устанавливаются это уже совсем другое »

Пример плиз. Мне уже самому интересно раз и навсегда выяснить этот вопрос. Давай возьмем все возможные аддоны по удалению компонентов и проверим.

Позже: хм. ПРОВЕРИЛ установку с вырезанным дистрибутивом и без. веточку создам с результатами тестов полюбопытствуйте
http://forum.oszone.net/thread-118755.html

volk1234 02-10-2008 13:15 914109

Хм. Будем считать спор с prokazzza исчерпанным, интересующиеся могут посмотреть по ссылке выше.
А на будущее надо добавить более подробное описание аддонов _Del

Обновлено Руководство
02.10.2008 версия статьи 1.40

+ Определение аддонов.Их плюсы и минусы. Раздел I.
+ Схема структуры аддонов дополнена вторым аддоном (SYSOC). Раздел I.
+ Что такое конфигурационные файлы. Раздел I.
+ Предупреждение о влиянии изменения имен папок на конфигурационные файлы Required и Conflict. Раздел I.
- Удалена строка описания Sysoc.inf в разделе Аддоны, использующие Sysoc, не подходящяя по стилистике.
* Оформление таблицы префиксов. Приложение I.
* Орфографические правки, пост 239 из темы руководства

vserd 06-10-2008 00:05 916710

Аддоны, использующие SYSOC

Цитата:

Файл Txtsetup.sif фактически является списком копируемых файлов для текстового этапа установки, с его помощью копируются файлы и кусты реестра с диска в папку установки Windows.

С помощью Sysoc.inf менеджер установки строит список файлов для установки дополнительных компонентов. Затем этот список сверяется с файлом Unattend.txt (Winnt.sif), если он есть.
По результатам сверки образуется конечный список устанавливаемых компонентов.
IMO что-то не так.

Txtsetup.sif -- содержит список файлов.
Sysoc.inf -- содержит список компонент которые должны быть установлены.
Unattend.txt (Winnt.sif) -- содержит список компонент которые должны быть установлены.

Как список файлов сверяется со списком компонент мне не понятно, абсолютно нет совпадений, разве что случайно.

Цитата:

Файл Dosnet.inf содержит остальные данные для программы установки на текстовом этапе, в том числе папку установки Windows.
Если я правильно путаю, то Sysoc.inf выполняется на графическом этапе. Зачем здесь упомянут текстовый этап?
И что то не так со следующим абзацем, или не правильно отредактировали документ, или тут смешаны разные аспекты аддона.

volk1234 06-10-2008 01:33 916739

Цитата:

Цитата vserd
IMO что-то не так.
Txtsetup.sif -- содержит список файлов.
Sysoc.inf -- содержит список компонент которые должны быть установлены.
Unattend.txt (Winnt.sif) -- содержит список компонент которые должны быть установлены.
Как список файлов сверяется со списком компонент мне не понятно, абсолютно нет совпадений, разве что случайно. »

Все элементарно: Txtsetup.sif копирует файлы в %systemdrive%, в том числе и те файлы которые понадобяться для установки SYSOC.
Это почти вся его задача в процессе установки, и он упомянут только в этом контексте, ведь для того, чтобы аддон SYSOC установить, его надо сначала скопировать из дистрибутива.

А файл Sysoc.inf и правда сверяется с разделом [components] в Unattend.txt (Winnt.sif) и если там стоит =off, то компонент не ставится.
txtsetup не участвует в сверке устанавливаемых компонентов - его дело копировать.

Цитата:

Цитата vserd
Если я правильно путаю, то Sysoc.inf выполняется на графическом этапе. Зачем здесь упомянут текстовый этап? »

Так то оно так, но файл Dosnet.inf не зря так назван. Этот файл нужен для корректной установке с харда, по сети, с флэшки и тд,
через промежуточные директории $win_nt$.~ls и тд.
Используется он на текстовом этапе.
Подробнее в Руководстве, Приложение 6. Этапы и механизмы установки Windows XP/2003. Log-файлы, создаваемые в процессе установки.

Цитата:

Чтение и интерпретация txtsetup.sif, winnt.sif и некоторых других файлов. Для установки не с CD используется dosnet.inf, содержащий сведения о файлах в папке $win_nt$.~ls
Цитата:

Setupdd.sys создает файл $wint$.inf в зависимости от конфигурации оборудования и содержимого файлов txtsetup.sif , sysetup.inf, layout.inf, winnt.sif (unnatend.txt). Файлы $wint$.inf (%windir%\System32), sysetup.inf, layout.inf (%windir%\inf) будут использованы мастером установки в графическом этапе установки.
С чем соглашусь, что в фразу
Цитата:

С помощью Sysoc.inf менеджер установки строит список файлов для установки дополнительных компонентов.
надо добавить :
на графическом этапе, тогда все становится на свои места.

volk1234 06-10-2008 01:54 916743

Обновил.

06.10.2008 версия статьи 1.41

*Маленькая смысловая правка статьи по SYSOC аддонам.

vserd 06-10-2008 08:59 916826

Мой вариант:
Цитата:

Файл Txtsetup.sif фактически является списком копируемых файлов для текстового этапа установки, с его помощью копируются файлы и кусты реестра с диска в папку установки Windows. С помощью Sysoc.inf менеджер установки, на графическом этапе, строит список файлов для установки дополнительных компонентов. Затем этот список сверяется с файлом Unattend.txt (Winnt.sif), если он есть. По результатам сверки образуется конечный список устанавливаемых компонентов. Файл Dosnet.inf содержит остальные данные для программы установки на текстовом этапе, в том числе папку установки Windows.

Фактически аддон типа SYSOC работает следующим образом. При компиляции скриптом Update Pack секции из Sysoc, Txtsetup, Dosnet, находящихся в корневой папке аддона, переносятся в дистрибутивные аналоги. Файлы из папки аддона Files копируются в папку дистрибутива I386. Затем на текстовом этапе файлы аддона, прописанные в списке Txtsetup.sif, копируются из дистрибутива в папку назначения для последующей установки вместе с дополнительными компонентами из Sysoc.inf. Файл Dosnet.inf используется только при установке Windows с жёсткого диска.
Файл Txtsetup.sif фактически является списком копируемых файлов для текстового этапа установки, с его помощью копируются файлы и кусты реестра с диска в папку установки Windows.
Файл Dosnet.inf используется только при установке Windows с жёсткого диска.
Файл Dosnet.inf содержит остальные данные для программы установки на текстовом этапе, в том числе папку установки Windows.

Для нормальной работы аддона необходимо создавать файлы Txtsetup и Dosnet, необходимо поддерживать все возможные официальные способы установки Windows.

С помощью Sysoc.inf менеджер установки, на графическом этапе, строит список дополнительных компонентов для установки . Затем этот список сверяется с файлом ответов (Unattend.txt, Winnt.sif), если он есть. По результатам сверки образуется конечный список устанавливаемых компонентов (если там стоит component_name=off, компонент не устанавливается).

Фактически аддон типа SYSOC работает следующим образом. При компиляции скриптом Update Pack секции из Sysoc, Txtsetup, Dosnet, находящихся в корневой папке аддона, переносятся в дистрибутивные аналоги. Файлы из папки аддона Files копируются в папку дистрибутива I386.

При установке Windows, на текстовом этапе установки файлы, прописанные в списке Txtsetup.sif, копируются из дистрибутива в папку назначения для последующей установки вместе с дополнительными компонентами из Sysoc.inf.

volk1234 06-10-2008 11:34 916928

Я вчера немного поспешил обновить руководство, не ожидал vserd что так заинтересуетесь :)
Обычно пишу в ветке, что собираюсь добавить и по месяцу лежит без комментариев.
Зеленым выделил безусловно нравящийся абзац.
Предлогаемы вариант неплох, только осмелюсь предложить немного сократить :

Файл Txtsetup.sif фактически является списком копируемых файлов для текстового этапа установки, с его помощью копируются файлы и кусты реестра с диска в папку установки Windows.
Файл Dosnet.inf содержит остальные данные для программы установки на текстовом этапе, в том числе папку установки Windows. Этот файл используется при установке Windows с жёсткого диска, по- сети.


С помощью Sysoc.inf менеджер установки, на графическом этапе, строит список дополнительных компонентов для установки . Затем этот список сверяется с файлом ответов (Unattend.txt, Winnt.sif), если он есть. По результатам сверки образуется конечный список устанавливаемых компонентов.


Фактически аддон типа SYSOC работает следующим образом. При компиляции скриптом Update Pack секции из Sysoc, Txtsetup, Dosnet, находящихся в корневой папке аддона, переносятся в дистрибутивные аналоги. Файлы из папки аддона Files копируются в папку дистрибутива I386.

При установке Windows, на текстовом этапе установки файлы аддона, прописанные в списке Txtsetup.sif, копируются из дистрибутива
в папку назначения для последующей установки вместе с дополнительными компонентами из Sysoc.inf.

Важно: Для совместимости аддона со все возможными способами установки Windows, необходимо включать в аддон конфигурционный файл Dosnet.

vserd 06-10-2008 13:17 916997

Цитата:

Цитата volk1234
При установке Windows, на текстовом этапе установки файлы аддона, прописанные в списке Txtsetup.sif, копируются из дистрибутива в папку назначения для последующей установки вместе с дополнительными компонентами из Sysoc.inf. »

все таки не аддона как самого, а программы которую устанавливаем. Тут нужно "обтачить напильником" формулировку. Хотя возможно я перегибаю палку.

Цитата:

Цитата volk1234
Затем этот список сверяется с файлом ответов (Unattend.txt, Winnt.sif), »

Фактически список сверяется с $winnt$.inf, но для понимания начинающими наверное нужно оставить как есть.

И еще вопросик всем кто знает.
SVCPACK.inf SetupHotfixesToRun допускает коментарии или нет? Т.е. если там прописана строка, на вызов программы можно ее за коментировать или всегда нужно удалять?

jameszero 06-10-2008 14:04 917028

vserd
Цитата:

Цитата vserd
SVCPACK.inf SetupHotfixesToRun допускает коментарии или нет? »

Допускается символ коментария точка с запятой - ";"

volk1234 07-10-2008 01:00 917568

vserd
Вот еще вариант куска текста
читать дальше »
Файл Txtsetup.sif фактически является списком копируемых файлов для текстового этапа установки, с его помощью копируются файлы и кусты реестра с диска в папку установки Windows.

Файл Dosnet.inf содержит остальные данные для программы установки на текстовом этапе, в том числе папку установки Windows. Этот файл используется при установке Windows с жёсткого диска, по сети, со съемных устройств.


На графическом этапе , с помощью Sysoc.inf менеджер установки строит список дополнительных компонентов и сверяет его с файлом ответов (Unattend.txt, Winnt.sif), если такой файл есть. По результатам сверки образуется конечный список устанавливаемых компонентов.

Фактически аддон типа SYSOC работает следующим образом. При компиляции скриптом Update Pack секции из Sysoc, Txtsetup, Dosnet, находящихся в корневой папке аддона, переносятся в дистрибутивные аналоги. Файлы из папки аддона Files копируются в папку дистрибутива I386.

При установке Windows, на текстовом этапе установки файлы, прописанные в списке Txtsetup.sif, копируются из дистрибутива
в папку назначения. Затем аддон устанавливается вместе с другими дополнительными компонентами из Sysoc.inf.

Важно: Для совместимости аддона со все возможными способами установки Windows, необходимо включать в аддон конфигурционный файл Dosnet.


*поправить название аддона WINSIF на WSE, добвить changer, t40editor, дать ссылки

NikLok 08-10-2008 22:06 919201

volk1234, Руководство не дочитал, но стало уже невтерпеж!

Возможно ли используя метод SYSOC управлять установкой аддона через секцию [Components]
файла winnt.sif ? Это думается мне, было бы очень сильным плюсом данного метода?

Но текст:
Цитата:

Метод Sysoc не делает аддон частью системы или дополнительным компонентом Windows, он только позволяет использовать механизм Sysoc для установки и удаления аддона.
как бы говорит о невозможности этого? Что этому мешает?

Кстати вопрос: что значит что (или что нужно сделать чтобы ) аддон стал частью системы?

vserd 08-10-2008 23:18 919253

NikLok,
Цитата:

Цитата NikLok
Возможно ли используя метод SYSOC управлять установкой аддона через секцию [Components]
файла winnt.sif ? Это думается мне, было бы очень сильным плюсом данного метода? »

Возможно. Читайте версию для печати. Был опуликован способ. на примере winamp.

volk1234 08-10-2008 23:20 919256

Цитата:

Цитата NikLok
Кстати вопрос: что значит что (или что нужно сделать чтобы ) аддон стал частью системы? »

Никак.

Цитата:

Цитата NikLok
Возможно ли используя метод SYSOC управлять установкой аддона через секцию [Components]
файла winnt.sif ? Это думается мне, было бы очень сильным плюсом данного метода? »

Управлять можно. Как вы могли прочитать постом выше, мы как раз это и обсуждаем.
Тоесть если аддон прописан в Sysoc.inf как Addon123(то есть прописанно имя запускаемой через Sysoc.inf секции аддона),
Код:

Addon123=ocgen.dll,OcEntry,Addon123.inf,,7
то указав в winnt.sif
Код:

Addon123=off
вы поидее отключите его установку.

Способ с отключением аддонов нельзя будет использовать при установке с CD\DVD - если они не перезаписываемые :)
В этом и есть слабость "сильного метода"
А с жесткого диска можно. Даже проще изменить inf- файлы аддона закоментировав параметр ;Modes=0,1,2,3 -
что приведет к добавлению аддона к компонентам ОС без установки, но с возможностью установить аддон позднее.
См. в Руководстве Приложение про Sysoc.inf.

Только для этого сществуют другие, более эффективные способы, те же аддоны WSE, changer, t40editor. Они позволяют изменять winnt.sif даже при установке с CD\DVD.

Цитата:

Цитата vserd
Возможно. Читайте версию для печати. »

??

vserd как вам последний вариант обсуждаемого с вами куска?

NikLok 09-10-2008 00:32 919316

volk1234, Очень хорошая новость, не мешало бы в руководство потом внести.

vserd 09-10-2008 04:56 919362

Цитата:

Цитата volk1234
vserd как вам последний вариант обсуждаемого с вами куска? »

Молчание знак согласия :)

Vadikan 09-10-2008 05:57 919367

Цитата:

Цитата volk1234
Обновлено Руководство
02.10.2008 версия статьи 1.40 »

Спасибо! Я немного поправил орфо, пункт. и стилистику в разделе I.

volk1234 09-10-2008 11:31 919505

NikLok
Еще немного поясню.
Частью системы аддон может стать, если он правит системные файлы в дистрибутиве - подменой либо добавлением,
однако вы явно имелли в виду сторонние программы. Поэтому ответ - никак.
В руководство уже внечено и про минусы аддонов - их нелдьзя гибко извменять, и про аддоны решающую частично эту проблемму WSE,t40(в следующей редакции) и про ;Modes=0,1,2,3

Цитата:

Цитата vserd
Возможно. Читайте версию для печати. Был опуликован способ. на примере winamp. »

мне самому интересно, где почитать? :))

vserd 09-10-2008 12:10 919538

Цитата:

Цитата volk1234
мне самому интересно, где почитать? »

Цитата:

DyadyaGenya 27-07-2008 11:15
......................................

и ещё, может кому пригодиться или даже получит одобрение и дальнейшее отображение в статье такая идея:
поскольку разным пользователям приходится ставить разные наборы программ, чтоб не собирать множество сборок которые будут отличаться друг от друга всего несколькими програмками, можно использовать свойство sysoc адонов попадать в список компонентов винды, и допустим делать мультизагрузку (как самый простой способ) с использованием разных вариантов winnt.sif где в секции [Components] указать какие интегрированые проги отключить, что то типа того:

[Components]
winamp=off

у меня так получилось, пока на большее не сподобился, хотя думаю можно при наличие времени и умения сделать даже графический интерфейсик, насколько я знаю у Boa Soft имеется подобный опыт (програмулина для выбора устанавливаемых прог)
IMO яснее некуда. Теперь остается выяснить почему не всегда срабатывает $winnt$.inf
[Components]
xxxxxx=Off

Для svcpack коментарий ";" работает, а вот для [Components] xxxxx=off не всегда...

Stanner 20-10-2008 15:32 928593

Вопрос к гуру:
Делая для себя аддон Foxit Reader, столкнулся с тем, что описанными в руководстве методами не удается создать ярлык для "Foxit Reader.exe". Шаблон - SVCPACK от Gora.
Все упирается в пробел: винда упорно ставит в ярлыке " после Foxit (т.е. в конце выглядит так: Foxit" Reader.exe), в результате чего ярлык некорректный!
Ставил разное количество " (до 3-х) в PROG_1 и "%PROG_1%", результат тот же. Пришлось создавать ярлык через 7-zip SFX, а удаление работает правильно.

Не сталкивались с таким? Как правильно создать ярлык для файлов с пробелами в имени?
Код:

[PROG.AddShortcut]
Name                =%SRTC_NAME%
CmdLine                =16422,%PROG_DIR%,%PROG_1%
WorkingDir        =16422,%PROG_DIR%
SubDir                =%PROG_SDIR%
InfoTip                =%PROG_INFO%
...
PROG_DIR        ="Foxit Software\Foxit Reader"
SRTC_NAME        ="Foxit PDF Reader"
PROG_1                ="Foxit Reader.exe"
PROG_SDIR        ="Утилиты"
PROG_INFO        ="Просмотр и правка PDF-файлов"


jameszero 20-10-2008 16:23 928626

Stanner
Нужно использовать имя файла в формате 8.3 - пост 273

rexwonted 26-10-2008 11:18 933930

1.
Из "Руководства по созданию аддонов" ясно, что файлы Sysoc, Txtsetup, Dosnet и Run должны заканчиваться пустой строкой. Для всех остальных такого правила не определено. Значит все остальные конфигурационные файлы (SpecCase, KillWFP.lst, Finish, DelDrv.lst, Required, Conflict и др.) не должны заканчиваться пустой строкой?

2.
В каких конфигурационных файлах первая строчка должна быть пустой? Вопрос потому, что в некоторых аддонах в файлах sysoc, txtsetup первая строчка пустая.

3. Имеет ли значение регист? Например, в некоторых аддонах папка SVCPACK обозначена как SvPack или svpack. Аналогично и файл Run обозначен как run (RUN).
Кроме того, в конфигурационных файлах может быть написано название интегрируемой программы в верхнем регистре, в то время, когда в папке SVCPACK он обозначен в нижнем регистре.
Например, в файле Run написано: XXXXX.CAB (XXXXX.cab, xxxxx.CAB, XXXXX.exe, xxxxx.EXE). А в папке SVCPACK лежит (соответственно) xxxxx.CAB (xxxxx.CAB, XXXXX.cab, xxxxx.EXE, XXXXX.exe)

4.
В какой кодировке должны сохраняться конфигурационные файлы? 1251 (ANSI - кириллица), 65001 (UTF-8) или 866 (OEM - русская)

5.
Цитата:

Важно! При переименовании папок аддонов всегда помните, что w конфигурационных файлах Required и Conflict используется статичное имя папки аддона, то есть после переименования папки аддона (допустим, по причине добавления префиксов), он уже не будет проверятся на конфликты с другими аддонами.
Если в файле Required прописано "x-Reset10", то после переименования папки или добавления префикса аддон не сработает должным образом?

volk1234 26-10-2008 22:15 934423

1. На первый вопрос ответить могу частично, в рамках своих знаний
файлы Required, Conflict совершенно фиолетово относятся к наличаю пустых строк.
Вобщем то логично следующее: из файлов Sysoc, Txtsetup, Dosnet записи добавляются в системные файлы
которые критичны к форматированию и синтаксису. Из файла Run записи добавляются в Svcpack.inf также системный файл.
А остальные конфигурационные файлы используются только для внутренних потребностей скрита Update Pack,
который не так критичен к синтаксису и пробелам.

2. Скорее всего пробел оставлен для более красивого форматирования- дабы секция отделялась пробелом от предыдущей.

3. ИМХО регистр значение имеет, но не для установщика, который ищет файлы скорее всего и в том и в том регистре, а также в запакованных архивах.

4. Такой вопрос поднимался, но мне так и не удалось получить ответа. Выбор невелик cp1251 и cp866. Первая стандартная win вторая стандартная dos.

5. Это значит, что должным образом не сработает файл Required - который призван предотвратить установку аддона без требуемых компонентов, либо в случае с файлом conflict, аддон может быть установлен с конфликтующими программами. Результат -минимум ничего не произойдет, максимум программа установленная через аддон не будет работать, либо будет глючить. Еще вариант - если аддон затрагивает систему - вы получите глючащую или нерабочую систему.

vserd 26-10-2008 22:26 934432

rexwonted,
Цитата:

Цитата rexwonted
Run должны заканчиваться пустой строкой. »

С чем столкнулись и на чем обожглись, то и вынесли в руководство. Скорей всего должны.
Цитата:

Цитата rexwonted
Имеет ли значение регист? »

Согласно правил файловой системы не имеет. На практике одни люди описывают ситуации когда имеет, другие на тойже самой ситуации что не имеют... Так что вилами по воде. Я склоняюсь что не имеет. Если же дистрибутив находится на операционной системе которая различает регистр символов в имени файлов, то имеет.
Цитата:

Цитата rexwonted
Если в файле Required прописано "x-Reset10", то после переименования папки или добавления префикса аддон не сработает должным образом? »

если переименовывается x-Reset10 например в 1-x-Reset10, тогда __Patch.cmd не найдет x-Reset10 и будет прерывать выполнение с сообщением что x-Reset10 не найден. Хотя фактически он есть в системе....
Если же он прописан в conflict, тогда аддоны "подеруться" за одно и тоже (например один и тотже файл), и гремучая смесь в финале окажется не рабочей, разгребать прийдется конкретному человеку в одиночку. Практически никто в не будет воспроизводить эту ситуацию.
Так что переименование является спорным тезисом.

volk1234 27-10-2008 10:24 934733

скорее всего нет.
Цитата:

Цитата volk1234
2. Скорее всего пробел оставлен для более красивого форматирования- дабы секция отделялась пробелом от предыдущей. »


DyadyaGenya 06-11-2008 21:05 945315

volk1234, давно не был на форуме, прочитал много нового, особенно из того что я когда то предлагал ввести в руководство, (про плюсы и минусы аддонов, и общих понятиях) теперь с этого статья и начинается :)
жаль что за некоторые идеи мною высказанные получил "полезное сообщение" другой человек, процитировавший мой пост, хотя и приятно что мои посты кому то пригождаются :) это я о следующем :)
http://forum.oszone.net/thread-104104-30.html

Цитата:

Цитата volk1234
Давно спрашивали, но отвечаю только сейчас. Если вы удалали inf файл программы являющейся пунктом из Компоненты Windows и не можете войти теперь в это окно необходимо править файл Sysoc.inf. Удалить целиком строчку касающуюся недостающего inf - файла. »

если я правильно понял вопрос Black Babay то там шла речь про невозможность удалить прогу при помощи "компоненты виндоус", и если у неё не было ссылки на анинстал в "установка и удаление программ", то и удалить нельзя, вот я и подсказал про добавление инф в виндоус/инф, а заморочки с Sysoc.inf тут не помогут, просто исчезнет из этих "кмпонентов" а "программ файлз" останется, если я правильно все понял

Цитата:

Цитата volk1234
5. Это значит, что должным образом не сработает файл Required »

позволю себе и тут немного уточнить, файл Required сработает правильно, просто он не обладает интеллектом дабы сортировать и подбирать файлы по подобию :) ещё изменения регистра пройдут, а добавление новых букв в название аддона не пройдет, не поймет он этого

Dmitry_K, вопрос по поводу
Цитата:

Цитата Dmitry_K
Код:
[version]
Signature="$CHICAGO$"
AdvancedINF=2.5
[DefaultInstall]
RunPreSetupCommands = MakeDesktopLink
[MakeDesktopLink]
"cmd /c MD ""%APPDATA%\Microsoft\Internet Explorer\Quick Launch\Мой компьютер.{20D04FE0- -3AEA-1069-A2D8-08002B30309D}"""»

на мой взгляд это больше создание с помощью cmd, который просто запускается через инф, или я не прав? а через ProfileItems это возможно? я то как раз пробовал решить эту проблему через ProfileItems или допустим через реестр? (через реестр у меня тоже не получается)

NikLok, к вопросу о плюсах и минусах аддонов попробую сделать ещё одно дополнение, правда оно касается sysoc аддонов. (хотя этот пример я уже приводил). при установке винды с интегрированными аддонами они заносятся в компоненты виндоус, даже если не установлены, при этом мы получаем возможность доустанавливать их потом без использования "установочного диска". Получается, накидал аддонов на мнигие случаи жизни, но поставил сперва простому неопытному юзеру только часть, потом добавляй ему их, хоть в телефонном режиме, даже если он случайно их удалил, тем более что обновлением программ основная масса юзеров, которые сами не могут поставить ОС даже не пользуются. ниже более подробно
http://forum.oszone.net/post-886899.html#post886899

volk1234 09-11-2008 17:14 947850

Цитата:

Цитата DyadyaGenya
позволю себе и тут немного уточнить, файл Required сработает правильно, просто он не обладает интеллектом дабы сортировать и подбирать файлы по подобию »

Нет он просто не сработает правильно, то есть не пресечет попытку установки конфликтующих аддонов вместе.
Скрипт Update Pack проверяет перед работой условие заданное в Required, например DrWeb. А если папка назвается DrWeb4.44.08921
скрипт не найдет ее, соответственно установка продолжится. Сам по себе файл Required не работает.
Хотя это уже нюансы формулировок....

DyadyaGenya 22-11-2008 14:19 960066

volk1234, предлагаю в раздел Тонкости использования инф\создание ярлыков добавить пример создания и удаления ярлыков в меню\программы прог имеющих подкаталоги, да ещё и несколько, поскольку не каждый может сразу сообразить как это сделать (я и про себя в том числе :) ) спасибо jameszero подсказал, как раз самые большие проблемы с удалением были, подробнее тут:http://forum.oszone.net/showthread.p...E4%EE%ED%EE%E2
и тут: http://forum.oszone.net/showthread.p...E4%EE%ED%EE%E2

Цитата:

Цитата volk1234
Хотя это уже нюансы формулировок.... »

ты прав, нюансы, думаю кому надо, тот разобрался

vserd 06-12-2008 17:31 973985

volk1234,
Добавь пожалуйста в описание "Конфигурационные файлы" следующую информацию:
При выполнении файлов Start, SpecCase, Finish первым параметром передается путь к аддону в виде Addons\Имя_папки_аддона. Из самого файла его можно получить через %1. что обозначает запись вида %1 смотри документацию по cmd/bat файлам.

volk1234 08-12-2008 01:22 975065

ок, как наберется следующая партия правок, закину.

gabasov 20-12-2008 15:41 985646

Вопрос к авторам аддонов: что надо прописать в аддоне и в каком конфигурационном файле, чтобы при интеграции аддопа скопировать файл/папку не в I386, а в другую папку в дистрибутиве, например, в $OEM$ или в корень дистрибутива?

volk1234 21-12-2008 01:27 985943

gabasov

Уточните ваш вопрос. Что именно надо сделать.
Вам надо скопировать аддон в корень дистрибутива, или некую часть от аддона .
Аддоны заменяют и OEM папку и CMDLines и прочие способы. ЗАчем изобретать велосипед??

gabasov 21-12-2008 04:56 985971

Цитата:

Цитата volk1234
Уточните ваш вопрос. Что именно надо сделать »

Хочу сделать аддон, который при интеграции копирует папку DRV в корень дистрибутива

Shido 21-12-2008 11:47 986085

gabasov, воспользуйтесь этой командой,
Код:

COPY /V /Y /Z "%~1\DRV" "%DISTR%"
её нужно поместить в файл SPECCASE или FINISH (отличаются временем срабатывания), подробнее смотри в руководстве. Папка должна распологатся в корне вашего аддона.

gabasov 21-12-2008 12:10 986107

Цитата:

Цитата Shido
COPY /V /Y /Z "%~1\DRV" "%DISTR%" »

Странно, почему в руководстве нет ничего про переменную %DISTR%. Надо бы исправить! ;-)

Я так понял, она формируется из файла Distr.ini ?

gora 21-12-2008 12:53 986143

Цитата:

Цитата gabasov
Я так понял, она формируется из файла Distr.ini ? »

Нет. Она назначается в __PATCH.CMD UpdatePack-a.

volk1234 21-12-2008 13:38 986178

Не вопрос в очередной заход добавлю пример Shido.

gabasov 21-12-2008 13:59 986193

Цитата:

Цитата gora
Она назначается в __PATCH.CMD »

Какие еще интересные переменные среды назначаются при интеграции аддонов?

gora 21-12-2008 18:37 986434

Цитата:

Цитата gabasov
Какие еще интересные переменные среды назначаются при интеграции аддонов? »

Да любые переменные из PATCH.CMD UpdatePack-a. доступны пользователя (автору аддонов), но...
До тех пор пока они не будут переопределены, или проигнорированы в PATCH.CMD UpdatePack-a!!!
Я бы не стал делать аддон в расчете на НЕ анонсированные переменные PATCH.CMD ! ИМХО это не правильно! Есть другие способы решить поставленную задачу и без привязки к недокументированным переменным.

gabasov 22-12-2008 03:19 986777

Цитата:

Цитата gora
НЕ анонсированные переменные »

Дело в том, что они ВСЕ не анонсированы, разве что %DISTR% недавно обнаружилась :)

Shido 22-12-2008 04:24 986786

gabasov, Если разбираешся в cmd то вычленить их не проблема. Про %I386% пояснять надеюсь не надо? Есть ещё %GUI% при запуске из под _patch.cmd GUI=NO служит ля проверки типа интегратора GUI или _patch.cmd. А если использовать GUI, то там есть свои специфичные переменные (можно посмотреть в теме про GUI).

volk1234 11-01-2009 16:06 1003787

Поступило предложение по переделке Приложения №1

читать дальше »
JamesZero (14:46:15 11/01/2009)
К тебе встречное предложение, вернее пожелание.
Рассмотри возможность удаления из руководства по созданию аддонов "Таблицы префиксов"
Люди воспринимают это не как руководство к изготовлению новых аддонов, а как руководство по переименованию существующих, я уже забадался объяснять, что это потенциальные грабли.

Denger (14:47:12 11/01/2009)
там вроде куча предупреждений

JamesZero (14:51:03 11/01/2009)
Никто не читает мануалы, факи и правила форума
Никакой функциональности префиксы не несут и я добавил в FAQ и в Диагностику проблем замечание о переименовании.
Помню, как пару раз люди выкладывали логи интеграции с переименованными аддонами. Я кучу времени убил пока вкурил где какой аддон.

Denger (14:53:47 11/01/2009)
давай попробуем написать предупреждение на таблице префиксов

Denger (14:54:10 11/01/2009)
если не поможет я ее удалю

JamesZero (14:56:05 11/01/2009)
я за то чтобы убрать эту главу совсем, ну как скажи анализировать логи и сопоставлять переименованные и оригинальные аддоны.
Обычно случайные и неопытные участники наводят красоту в папках, а потом убиваются об грабли.

JamesZero (15:00:22 11/01/2009)
а зачем она ему?

Denger (15:00:48 11/01/2009)
например для создание аддона с твиками которые должны применятся после определенного аддона

Denger (15:01:30 11/01/2009)
для создани допустим служебного аддона - изменяющего иконку
в ресурсах винды

JamesZero (15:02:33 11/01/2009)
значит главу нужно переписать, и упор сделать на порядок выполнения в зависимости от префикса, но не расписывать все возможные варианты аддонов


Обсуждаем...

otsheln1k 02-02-2009 02:00 1026804

volk1234,

Столкнулся с ситуацией, поведение которой отличается от изложенного в "Приложение 3. Файл Txtsetup.sif"
Цитата:

Если Txtsetup.sif укажет программе установки, что файл не сжат, то установщик будет сравнивать размер файла с Layout.inf, чтобы удостовериться что размер не был изменен.
Если правильно понял, то из этого утверждения следует, что если файл сжат, то проверка через Layout.inf не производится. Видимо, проверка производится в любом случае, а [_x] указывает что проверку на размер производить до расжатия или после.

Столкнулся, настраивая локальные политики безопасности при установке системы через defltwk.inf

volk1234 02-02-2009 11:17 1027010

otsheln1k
Это интересно, можно поподробнее с примером, чтобы проверить и добавить в руководство.

otsheln1k 02-02-2009 14:11 1027186

volk1234,

При установке системы настраиваю локальную политику безопасности изменением
файла defltwk.inf (содержится в дистрибутиве в сжатом виде DEFLTWK.IN_ в моем
случае его размер составляет 25498 байт, размер сжатого файла будет
определяться параметрами переданными утилите MakeCab.exe в командной строке)

Строка из txtsetup.sif

defltwk.inf = 100,,,,,,,20,0,0


Для редактирования его необходимо извлечь, внести необходимые изменения и
повторно упаковать в CAB, утилитой makecab.exe (по некоторым источникам можно
не сжимать). Однако есть одна особенность - размер файла после редактирования,
до упаковки, должен быть равен указанному в файле layout.inf.

Пример строки из layout.inf:

defltwk.inf = 100,,604054,,,,,20,0,0

где, размер составляет 604054 байта.

Если после редактирования размер распакованного файла не будет
соответствовать указанному в layout.inf, то после установки системы в
файлах setuperr.log и setupact.log присутствует сообщение об ошибке:

Код:

Программа установки обнаружила ошибку при установке защиты системы.

 Ошибка расширенного типа.


bish 08-02-2009 00:57 1032492

volk1234, при написании аддона методом Sysoc нужно установить службу новую,
внесение нужных ключей в реестр не даёт желаемого результата - ошибка: нет доступа к разделу реестра
Код:

HKLM\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_*****
Вопрос: случаем не знаешь как установить службу посредством INF файла?

------------------------------------
:sorry: проблему решил.

volk1234 26-03-2009 01:13 1074912

Новые исправления в РУКОВОДСТВО.


Обсуждаем. Всем заинтересованным, Ваши предложения пожалуйста до конца марта. Орфография в Личку !
*26,03,09 - поправил пунктуацию, спасибо okshef!
*28,03,09 - подправил Приложение 9, спасибо gora!
читать дальше »


Раздел I. Общие положения.

читать дальше »
▫ Имена файлов и папок.

Все файлы аддонов типа SYSOC должны иметь имена в формате 8.3. В этом же формате должны именоваться CAT- файлы используемые как в SYSOC, так и в SVCPACK типах аддонов. Имена файлов и папок не должны содержать пробелов и спецсимволов (например, в Txtsetup Sysoc имена со спецсимволами и длинными именами не будут подхватываться).

▫ Префиксы в названиях папок аддонов.

предложение: Предлагается следующее использование префиксов (составил участник конференции Oszone Shido): см. Приложение 1. Таблица префиксов.

изменить на

Посмотреть пример использования префиксов (составил участник конференции Oszone Shido): Приложение 1. Таблица префиксов

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


В свете изложенного необходимо четко понимать, что наименование папок и архивов с аддонами остается целиком на совести авторов.....

▫ Конфигурационные файлы.
....
При выполнении файлов Start, SpecCase, Finish первым параметром передается путь к аддону в виде Addons\Имя_папки_аддона. Из самого файла его можно получить через переменную командной строки '%1'.


РАЗДЕЛ II. Типы аддонов.

читать дальше »
▫ Аддоны, использующие для интеграции SVCPACK.

Важно! Если аддон меняет какие-либо системные файлы, не забудьте про файлы каталогов безопасности ( *.cat). Если такие файлы необходимы, они просто размещаются в папке SVCPACK аддона, скрипт их скопирует и добавит в Svcpack.inf автоматически. В файле Run их прописывать не надо! Еще раз напомню, CAT- файлы, используемые как в SYSOC, так и в SVCPACK типах аддонов, должны именоваться формате 8.3 !

ссылка на новое приложение 9.

▫ Аддоны, изменяющие дистрибутив.

....
Тонкости изменения дистрибутива.

Если необходимо создать аддон, который при интеграции копирует нужную папку в корень создаваемого дистрибутива силами UpdatePack, воспользуйтесь следующим способом:

Добавьте в корневую папку вашего аддон конфигурационный файл Start (Finish) содержащий строку:

Код:

COPY /V /Y /Z "%~1\Имя_папки" "%DISTR%"
Где интересует нас только 2 параметра "%~1\Имя_папки" и "%DISTR%", поскольку остальные - стандартные ключи команды Copy.

%~1 возвращает скрипту путь к вашему аддону (соответственно, копируемая папка так же должна располагаться в корневой папке аддона)

%DISTR% это внутренняя переменная скрипта UpdatePack, содержащая путь к вашему дистрибутиву.

Раздел III. Примеры и приложения.
читать дальше »
▫ Приложение 1. Таблица префиксов.

ЭТО ПРИМЕР, а не руководство к действию !!
В общем и целом полное переименование папок аддонов для добавления префиксов, не даст обычному пользователю никаких преимуществ.
Для авторов аддонов имеет смысл использовать следующую схему -
Аддон который надо обработать, до всех других аддонов в том числе встроенных аддонов UP именовать префиксом 0-имя_аддона
Аддон который надо обработать, после всех других аддонов именовать префиксом 9-имя_аддона (либо zz-имя_аддона).

..название столбца: Пример записи и предлагаемый порядок аддонов
изменить на
Пример записи с префиксом.

▫ Приложение 3. Файл Txtsetup.sif

....[_x] означает, что файл дистрибутива не сжат. Если [_x] отсутствует, программа установки предполагает, что файл сжат. Каждый файл дистрибутива XP перечислен в Layout.inf, вместе с размером в байтах. Размер в байтах, очевидно, зависит от того, сжат файл или нет. Если Txtsetup.sif укажет программе установки, что файл не сжат, то установщик будет сравнивать размер файла с Layout.inf, чтобы удостовериться что размер не был изменен. Если файл сжат, то установщик будет сравнивать с записью в Layout.inf размер распакованного файла. Если размер файла не соответствует тому, что указан в Layout.inf, установка XP может быть прервана ошибкой.

▫ Приложение 8. Файл Addon.nfo


Свое развитие этот конфигурационный файл получил в служебном аддоне HTMLINFO созданным участником конференции asmol.
Данный аддон формирует в корневой папке вашего дистрибутива файл ADDONS.HTM вместо ADDONS.TXT.
В данном файле используются многие преимущества языка HTML и это позволяет красиво оформить список установленных аддонов.
Используя в вашем аддоне файл html.nfo вы можете добавить описание вашего аддона в ADDONS.HTM.


▫ Приложение 9. Тонкости при создании аддонов SVCPACK- новое
читать дальше »
Данное приложение не ставит цели повторять ветки форума Автоматическая установка приложений. Здесь не будет ( по крайней мере не планируется) полного списка ключей инсталляторов.

1. Использование установщика Windows

Самая распространенная конструкция аддонов типа SVCPACK - это строка с использованием ключей тихой установки конкретного установщика в конфигурационном файле Run, либо в коментарии архива. Также используются MST- файлы для заданных заранее параметров установки. Этот метод не всегда гибок. Данный факт сподвиг меня на исследования, которые вылились в целую статью. Повторять ее здесь нет смысла, поэтому обязательно почитайте статью по ссылке. Здесь же небольшие замечания по использованию свойств установщика Windows.
Свойства (Properties) установщика, заданные в командной строке, имеют приоритет выше, чем MST-файл, что делает их отличным средством повышения гибкости вашего аддона. Можно исправить одну строку с параметрами, а не редактировать специальными программами MST- файл.

Синтаксис использования:

Код:

msiexec.exe /i Example.msi СВОЙСТВО
Если MSI- файл установки упакован установщиком в EXE- файл, то следует использовать стандартный ключ /v для передачи параметров в MSI- файл.

Синтаксис использования:

Код:

Example.exe /s /v”TRANSFORMS=unatend.mst /qn”
Обсуждение применения различных Свойств установщика Windows в ветке Msiexec - список ключей и свойств





Хочу поблагодарить отдельно забытого:
IDDQDesnik за пост #14 - определившего название одной из групп аддонов в Руководстве.

Хочу поблагодарить людей внесших основные идеи в эту редакцию -
otsheln1k - сравнение размера сжатого файла с Layout.inf
Shido - отличный пример использования внутренней переменной UP
vserd - раскопанный возвращаемый параметр конфигурационных файлов
okshef - орфография

Приложение 2. к апрелю Обещал дополнить Staner

jameszero 26-03-2009 08:51 1075024

volk1234
Цитата:

Цитата volk1234
Приложение 1. Таблица префиксов.
ЭТО ПРИМЕР, а не руководство к действию !! »

Всё равно ничего не изменится. Как авторы называли свои аддоны, так и будут назвать, как пользователи переименовывали их под себя, так и будут продолжать.
Нужно чётко дать понять, что переименование авторских аддонов недопустимо, так как это нарушит зависимость данного аддона от других и изменит порядок интеграции, которые будут отличаться от проверенных автором в ходе тестирования, а так же затруднит анализ ошибок с помощью диагностического аддона.
При изготовлении своего аддона можно/рекомендуется/желательно... использовать следующую таблицу префиксов и привести эту таблицу.
Таблица префиксов должна рассматриваться как часть руководства к изготовлению новых аддонов, а не руководства к переименованию существующих, у нас же на форуме всё наоборот.

Лично я, если кто то сообщит о проблеме и прикрепит к посту диагностический лог интеграции Log.7z с переименованными аддонами, анализировать его не стану, в принципе.

gora 26-03-2009 12:02 1075167

Цитата:

Цитата volk1234
Тонкости при создании аддонов SVCPACK
...
Самая распространенная конструкция аддонов типа SVCPACK - это строка с использованием ключа тихой установки конкретного установщика. »

Это о чем? О файле run?
Цитата:

Цитата volk1234
Синтаксис использования:
Код:
Example.exe /s /v”TRANSFORMS=unatend.mst /qn” »

Это где? В файле run?

volk1234 27-03-2009 01:18 1075848

Цитата:

Цитата gora
Это о чем? О файле run? »

Обязательно поправлю -
Например так:

Цитата:

Самая распространенная конструкция аддонов типа SVCPACK - это строка с использованием ключей тихой установки конкретного установщика в конфигурационном файле Run, либо в коментарии архива.
Открою небольшой секрет:
В приложении 9, вторым пунктом я хотел сделать:

Код:

2. Использование архиваторов.
2.1 Winrar
2.2 7zip

И если с winrar я худо бедно справлюсь, то 7ZIP лучше Вас преподнести несмогу точно - ибо редко его использую.
Рассмотрите возможность написать небольшой мастер- класс по использованию 7zip для создания SVCPACK аддонов,
а то для меня все эти ai1 ai2 темный лес, и таких как я много :)
Кроме того во втором пункте будет небольшое сравнение +\- этих архиваторов для создания аддонов.

-этот раздел не планировался, как ликбез по использованию архиваторов, но как небольшой обзор удобных и нужных комманд архиваторов(или их возможностей).


Цитата:

Цитата jameszero
Нужно чётко дать понять, что переименование авторских аддонов недопустимо, »

Я попробую сформировать это как- то, но как показывает моя практика - попытка запретов или стандартизации в этой области - бессмысленна,
предупредить - это наша забота, а остальное - дело конкретного человека. Большое количество запретов может только привлечь определенную часть пользователей к префиксам.

vserd 27-03-2009 20:34 1076597

Цитата:

Цитата volk1234
изменить на
Посмотреть пример использования префиксов (составил участник конференции Oszone Shido): Приложение 1. Таблица префиксов
....
»

Поддерживаю jameszero.
Предлагаю такую формулировку:
При разработке нового аддона рекомендуется использовать префиксы. Это облегчит "разбор полетов" и понимание порядка выполнения аддона при интеграции. Префиксы см. в Приложении 1 и далее по тексту.

КРАЙНЕ НЕ РЕКОМЕНДУЕТСЯ переименовывать аддоны бездумно-самостоятельно. Вы должны понимать что вы делаете и что хотите получить. Если ваше переименование вызвано насущеной необходимостью, отпишитесь в топике по аддну который вы изменяете, также укажите на проблему в топике(-ах) связанных аддонов. Переименование очень серьезная операция и просто так автора адднов ее делать не будут. И аргумент что мол это в руководстве прописано, вы должны сделать, не является решающим. Некоторые аддноны были сделаны до составления этой таблицы. Они отлажены как самим автором аддона, так и авторами-"конкурентами" (связанными, конфликутющими и прочими), проверены множеством пользователей в реальной жизни.

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

Таблица префиксов должна рассматриваться как часть руководства по изготовлению новых аддонов, а не руководства к переименованию существующих.


Т.е. не только выписать запрет, но и почему этот запрет был выработан.

Цитата:

Тонкости изменения дистрибутива.
В дополнение рекомендация с таким смыслом: Вам прийдется разобраться как писать командные файлы (.bat, .cmd), написании/синтаксисе inf-файлов, устройстве дистрибутива windows и прочих тонкостях, все решается вашей хотелкой. Будьте предельно внимательны т.к. вы легко можете угробить работу всех остальных аддонов, как на этапе сборки дистрибутива, так и собственно установки.

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

gora 27-03-2009 23:44 1076786

Цитата:

Цитата vserd
Посмотреть пример использования префиксов (составил участник конференции Oszone Shido »

Не нужно выкладывать спички, а потом над ними писать: "Спички детям не игрушка". Как не читали предупреждений, так и не будут их читать. Много ли авторских аддонов сделано с применением этой таблицы!? А вот пользователей стремящихся к мнимой красивости в списке аддонов и желающим использовать эти префиксы уже видел на форуме предостаточно и все больше просили помочь в разборе их проблем.
Резюме:
Считаю эту таблицу не нужной (не в обиду ее автору) и даже вредной. Убрать! ИМХО.

Shido 28-03-2009 00:54 1076821

Цитата:

Цитата gora
Считаю эту таблицу не нужной (не в обиду ее автору) и даже вредной. Убрать! ИМХО. »

Я не обижаюсь. Но ИМХО:
Цитата:

Цитата volk1234
Руководство по написанию аддонов. »

А не по использованию. Не для пользователей. Если бы авторы ими пользовались повсеместно, то проблемы бы не было.

volk1234 28-03-2009 02:19 1076864

Не смотря на то что, против этой злосчастной таблицы очень мной уважаемые товарищи и мне легче было бы просто ее удалить, позволю себе привести обратные аргументы:

1. Фольклорный: Если закон запрещает иметь оружие - оно будет только у преступников !

Как автор аддона узнает о префиксах? Как asmol написал бы 0-HTMLINFO, еслибы ему не говорили про "вредные" префиксы ?

2. Фактический: Люди узнают про префиксы из любых других источников, только это уже будет не написанное нами совместно руководство, где мы может предупредить пользователей и авторов о проблемах связанных с префиксами.

То, что кто- то неправильно понял применение этой таблицы не делает ее вредной. Также как и постоянные увещевания не интегрировать по 100 нужных- ненужных аддонов, а пользоватся автоустановкой - и всеже никто не говорит, что аддоны вредны и их надо убрать. И как всегда находятся эстеты, которые поднимут все буквы в верхний регистр, перименуют папки аддонов в красивые для них имена и тогдалее.

Давайте откровенно. Сколько людей переименовало аддоны прочитав руководство и обратилось к вам?
Jameszero - кроме trol_tmn кто еще так поступил и обратился к вам?
Gora, а у вас сколько было фактов проблем из за префиксов ?
- Не спорю проблемы из за переименования аддонов были, но не только из-за руководства, и не только из за префиксов. (ОПК 3.13 - : ) )

В руководстве все подробно расписанно и про проблемы и про применение. Предлагаю на обсуждение еще один вариант - изменить, переделать таблицу, чтобы она была примером для создания\отладки аддонов. Тоесть убрать имена реальных аддонов (ну может оставить имена служебных аддонов)

В любом случае я подчинюсь воле большинства.
Итак за удаление - 2 ( gora, Jameszero)
За переделку - 3 (vserd,volk1234, Shido)


Предлагаю такую надпись в приложении:

читать дальше »
ЭТО ПРИМЕР, а не руководство к действию !!
Переименование чужих аддонов недопустимо, так как это нарушит зависимость данного аддона от других и изменит порядок интеграции, которые будут отличаться от проверенных автором в ходе тестирования, а так же затруднит анализ ошибок с помощью диагностического аддона.

При создании аддона, который требует строгой очередности выполнения имеет смысл использовать префиксы по следующей схеме -
Аддон который надо обработать, до всех других аддонов в том числе встроенных аддонов UP именовать префиксом 0-имя_аддона
Аддон который надо обработать, после всех других аддонов именовать префиксом 9-имя_аддона (либо zz-имя_аддона).

..название столбца: Пример записи и предлагаемый порядок аддонов
изменить на
Пример записи с префиксом.

И если все захотят - давайте переделаем таблицу ?? Чтобы в ней небыло реальных аддонов, которые созданы без префиксов.

Shido 28-03-2009 02:49 1076877

Я за то чтобы оставить. Если нужно переделать давайте переделаем, тем более, что у себя в пакете я использую префиксы, и их назначение несколько отличается от того варианта который в руководстве (жизнь заставила несколько пересмотреть свои взгляды).

Повторяю проблема не в пользвателях которые хотят красоты а в авторах которые не могут договорится. Префиксы достаточно мощный и удобный инструмент, но его преимущество проявляется только при повсемесном использовании. Повторяю это мое ИМХО, никого обидеть не хочу и заставлять пересматривать свои взгляды не буду.

jameszero 28-03-2009 10:48 1077006

volk1234
Изначально я за удаление таблицы префиксов, об этом мы общались по ICQ, прошу перенести мой голос.
Переделку предложил, как говорится, на крайний случай.

volk1234 29-03-2009 03:38 1077686

jameszero
Я и не подумал тебя перевирать, просто надеялся - а вдруг ты смилостивишься над бедным приложением :)
Онож мне как дитя...

gora 31-03-2009 11:36 1079876

Цитата:

Цитата volk1234
это строка с использованием ключей тихой установки конкретного установщика в конфигурационном файле Run, либо в коментарии архива. »

Из контекста следует, что приведенную ниже строку можно использовать в файле run:
Цитата:

Цитата volk1234
Синтаксис использования:
Код:
Example.exe /s /v”TRANSFORMS=unatend.mst /qn” »

А это не так! Использовать ее в файле run НЕЛЬЗЯ и это должно быть объяснено пользователю как и причины по которым это недопустимо!

volk1234 31-03-2009 14:18 1080018

Цитата:

Цитата gora
Использовать ее в файле run НЕЛЬЗЯ и это должно быть объяснено пользователю как и причины по которым это надопустимо! »

Можно подробнее, почему недопустимо? Из за кавычек?

Example.exe /s замечательно работает.

gora 31-03-2009 14:22 1080021

Цитата:

Цитата volk1234
почему недопустимо? Из за кавычек? »

В процитированной строке, кавычки и знак равенства. Добавлю еще и знак минус, используемый часто как разделитель в серийных номерах.

PS
Файлу run вообще уделено недостаточно внимания, в то время как он достаточно неординарный и требует определенных знаний при размещении в нем ком. строки. У меня в ходе тестирования одного аддона были случаи, что из-за несоблюдения определенных правил, дистрибутив вообще не устанавливался на машину!

volk1234 05-04-2009 03:12 1084479

Цитата:

Цитата gora
Файлу run вообще уделено недостаточно внимания »

Приведите пример того неудачного файла run, пожалуйста.

truvo 05-04-2009 04:20 1084486

У меня такая просьба: люблю, когда всё стройненько так... и не нравится мне, что папка аддона внутри архива и сам архив имеют сплошь и рядом разные (иногда слишком разные!) имена; иногда в именах архивов указывается дата выхода данной версии аддона или номер версии, и форматы отображения этой числовой информации тоже самые разные.
Например, названия архивов:
MHTIE_2008-05-17.7z
7_Zip_466a_nv_nup__s_090322_15-50.7z
3-dllsfull-9.2.9.7z
MIGRES.7z
Del_SCSI-4_03022008.7z
В общем, гляжу я на свою коллекцию чужих аддонов и вижу, что в смысле именования - кто в лес, кто по дрова... Понимаю, что всех не построишь в одну шеренгу - но хотелось бы это как-то причесать. Ну, например, задать такое требование:

имя архива = имя папки внутри

Хотя дата бывает нужна для ориентации при обновлениях. Тогда так:

имя архива = имя папки внутри + дата в жестко заданной форме

gora 06-04-2009 12:39 1085567

Цитата:

Цитата volk1234
Приведите пример того неудачного файла run »

Свою проблему я давно решил и файл заменил на удачный, приводить нечего.

truvo, ошиблись веткой, писать надо сюда, т.к., "Руководство..." ни когда не являлось "нормативным" документом, обязательным к исполнению, это скорее справочник...

volk1234 06-04-2009 15:01 1085707

Цитата:

Цитата gora
Файлу run вообще уделено недостаточно внимания, в то время как он достаточно неординарный и требует определенных знаний при размещении в нем ком. строки. У меня в ходе тестирования одного аддона были случаи, что из-за несоблюдения определенных правил, дистрибутив вообще не устанавливался на машину! »

Цитата:

Цитата gora
Свою проблему я давно решил и файл заменил на удачный, приводить нечего. »

Вот и так все.
Я не знаю всех нюансов.
Вы - авторы аддонов, знаете, но не помните или нехотите помогать. :(
Вот и нету полного описания использования файла RUN.....

Цитата:

Цитата truvo
У меня такая просьба: люблю, когда всё стройненько так... и не нравится мне, что: »

Цитата:

Цитата truvo
Понимаю, что всех не построишь в одну шеренгу - но хотелось бы это как-то причесать. Ну »

Писать куда- либо бесполезно, ибо авторам аддонов или абсолютно всеравно или они разрабатывают свою систему именования аддонов и не хотят ее менять. Такие попытки загнать всех в рамки ни к чему не приведут. Только время потратите.
легче хранить аддоны распакованными :)

gora 06-04-2009 18:07 1085905

Указал на грабли - заработал упрек... Хех! Ни чего не меняется в этом мире.

greg_b 06-04-2009 22:49 1086149

gora, намек по-моему справедливый - проблему решил - скажи как? Иногда запятая стоит жизни.

truvo 06-04-2009 23:07 1086168

Цитата:

Цитата gora
truvo, ошиблись веткой, писать надо сюда »

gora, название темы, в которую вы меня направили, начинается со слова "Инфо". Слово "Руководство", которое здесь, всё-таки ближе к нормативам по смыслу. В общем, я за то, чтобы данное или какое-то подобное указание появилось в "Руководстве", а насколько это будет выполняться, как пишет volk1234, - это вопрос другой.
Вообще, автор данной темы и руководства не должен писать так:
Цитата:

Цитата volk1234
Писать куда- либо бесполезно, ибо авторам аддонов или абсолютно все равно»

Во имя чего тогда вся тема? Если продвигаешь идею - стой на том, что лучше и полезнее этой идеи нет.
Цитата:

Цитата volk1234
они разрабатывают свою систему именования аддонов »

Кстати говоря, не раз наблюдал, когда несколько аддонов одного автора имеют разную систему именования.

Vadikan 06-04-2009 23:21 1086182

Коллеги, есть такое радикальное предложение, направленное на приведение новых аддонов к единому виду. Можно сделать в форуме премодерацию тем. Другими словами, созданные темы становятся видимыми только модераторам, которые проверяют контент на соответствие правилами и рекомендациям по созданию аддонов. Если все ок, пускают тему в форум.

Плюсы. Новые аддоны будут следовать тем правилам, которые вы составите.
Минусы. Возрастает нагрузка на модераторов.

С существующими темами сложнее... разве что закрывать :)

volk1234 07-04-2009 00:41 1086293

Мда. За что как говорится боролись.
Мне вот интересно как будет происходить голосование за "единственно правильное" наименование аддона.
Что- то мне подсказывает, что будет пролито не мало крови.
Если мне не изменяет память, поднимали этот вопрос и mercuryn и gora в предпоследний раз - и у gora есть свой способ именования аддонов - нечто вроде WinFlip0424RU_P_080206_09-59.7z (отсюда ), как он отнесется к модерированию его темы Jаmeszero - когда тот порежет тему и заставит привети аддон к имени - WinFlip0424_080206.7z (или как там еще решим)????
А другие авторы адонов? Да Jаmeszero правильно сказал уже давно - что ему легче забить на аддоны, чем переименовывать их.

Да и размещение аддонов происходит на других ресурсах - файлообменниках, где автор может называть архивы как захочет. А если аддон большой - метров 50 - не сильно помодерируешь 10 аддонов за день. У меня например инет платный дома :)

У меня давно зрело предложение - все можно сделать проще. Аддоны это часть UP. Значит автор скрипта имеет полное право устанавливать
определенные рамки и стандарты. Как например языки програмирования имеют определенные команды и резервированные переменные.

Например - аддон Example1
Можно просто вставить в скрипт проверку аддонов на определенный стандарт.
1. Обязать авторов заполнять служебное поле в файле Addon.nfo ( без этого аддон пропускается)
поле выглядит так : zz00zz "Example1 "
Скрипт проверяет соответствие служебного поля с названием папки аддона. В случае если некий "умелец" переименует папку аддона " для красоты" аддон не будет обработан. Люди же знающие про служебное поле - явно не будут допускать таких глупых ошибок.
Этим мы решим проблему и с файлами Conflict Requred....
Кроме того можно ввести проверку в файле Conflict не точного соответсвия названия, а и с учетом возможного применения префиксов и прочего мусора:
*Example1*
цифра-Example1

Это конечно зависит от Jameszero, захочет ли он это делать..

truvo 07-04-2009 02:24 1086362

volk1234, мне кажется, что под единым видом Vadikan подразумевает не только имена и не только моё предложение, а и шапки тем и что-нибудь ещё... Но если и дальше продолжать на эту тему, то:
Цитата:

Цитата volk1234
Мне вот интересно как будет происходить голосование за "единственно правильное" наименование аддона »

А кто сказал, что оно вообще будет происходить? Желаемую форму можно просто задать, а согласиться и не спорить, думаю, всем будет легко, ибо, если вдуматься - какая разница, как назвать - лишь бы работало. Миллион раз всякий из нас переименовывает файлы в компе и не жалуется.
Цитата:

Цитата volk1234
как он отнесется к модерированию его темы - когда тот порежет тему и заставит»

Не порежет и заставит, а просто терпеливо дождется, пока автор приладит своё творение под некий шаблон (под ваше руководство, к примеру) - и тогда только пустит тему в эфир. И резать-то нечего будет, кроме первого поста - ведь Vadikan предложил только для новых аддонов.

gora 08-04-2009 10:57 1087678

2 greg_b
Цитата:

Цитата greg_b
намек по-моему справедливый - проблему решил - скажи как? »

Ни намеков, ни упреков в свой адрес по этому поводу не принимаю! Я никогда не утаивал известную мне информацию и всегда делился ей и готов делиться впредь. То что я привел в этом посте не новость и было мной озвучено более года назад в этой же ветке:
Цитата:

Цитата gora
Ключи через "механизм" SVCPACK передаются, но требуют соблюдения определенных условий. Передать путь с пробелами не удастся и кавычки при этом не спасают. Ключи типа хххх-хххх-хххх-хххх тоже не передаются из-за знака минус (-) в ключе. »

Эта (и другая) информация об ограничениях в файле Run неоднократно озвучивалась мной еще несколько раз в других ветках. Почему эта информация не попала в "Руководство..." вопрос не ко мне, а к его автору.

2 truvo
Цитата:

Цитата truvo
название темы, в которую вы меня направили, начинается со слова "Инфо". Слово "Руководство", которое здесь, всё-таки ближе к нормативам по смыслу. »

Я Вас не зря направил именно в ту ветку. Прочитайте внимательно первые 5 страниц этой ветки и посты в той ветке того же периода (эта ветка была когда то выделена именно из той!) и Вы поймете с чего все начиналось. Как обсуждение стандартов было сорвано и по чьей инициативе это произошло. Именно поэтому я и указал Вам на ту ветку, т.к., обсуждать их в этой бессмысленно. "Руководство..." ни когда не станет "стандартом" (я не имею ввиду название, я имею ввиду суть)!!! Хотя, после неоднократных попыток (моих и не только) реанимировать это обсуждение, и полной незаинтересованности в этом людей которые могут принимать волевые решения (а без таковых решений все "стандарты" теряют смысл), вряд ли что-то получится. Как ни прискорбно, но видимо mercuryn прав:
Цитата:

Цитата mercuryn
похоже это не та ветка, где можно решать вопросы стандартизации, а так как другой не нашёл, то похоже это никому не надо... »


volk1234 08-04-2009 17:28 1088084

truvo
Цитата:

Цитата gora
Как обсуждение стандартов было сорвано и по чьей инициативе это произошло. »

Заодно обратите внимание, что все начиналось с одного поста, где предлагалась стандартизация файла addon.nfo, а затем началось обсуждение не стандартов, а именно руководства - места где объединена вся полезная информация.

2 участника продолжили обсуждение именно стандартизации, я занялся руководством. Сознательно до завершения споров на эту тему я указал в руководстве такой расплывчатый стандарт именования архивов с аддонами - чтобы не занимать чей- либо стороны.
Я и тогда не горел желанием что - либо стандартизировать. И сейчас не горю. Придете к консенсусу- внесу в руководство.

Цитата:

Цитата gora
Цитата gora:Ключи через "механизм" SVCPACK передаются, но требуют соблюдения определенных условий. Передать путь с пробелами не удастся и кавычки при этом не спасают. Ключи типа хххх-хххх-хххх-хххх тоже не передаются из-за знака минус (-) в ключе. »
Эта (и другая) информация об ограничениях в файле Run неоднократно озвучивалась мной еще несколько раз в других ветках. Почему эта информация не попала в "Руководство..." вопрос не ко мне, а к его автору. »

В эту же редакцию внесу изменения.

Vadikan 08-04-2009 22:45 1088352

Конечно, если будет премодерация, то нужно не просто стандарт по аддону, но и по оформлению тем. Список модераторов можно расширить под это дело.

Что касается стандарта аддонов, то как я понял, вам его не выбрать самостоятельно, поскольку нет идеального варианта / единого мнения. Значит, тогда нужно представить несколько проектов стандарта и сформированная мною комиссия выберет один :)

volk1234 09-04-2009 00:20 1088440

Самое главное, что будет обсуждатся - стандарт наименования архива?
папки с аддоном? Стандарт имени аддона в шапке?
На мой взгляд тема изменения пользователями имен папок - гораздо важнее и актуальнее
В любом случае:
ИМХО надо вынести вопрос на голосование в закрытом форуме VIP-клуб. Это касается напрямую авторов аддонов.

Shido 09-04-2009 00:58 1088462

Мое мнение определится с именем архива, именем папки (причём с префиксами), мини стандартом для оформления темы, с наличеем отсутсвием описания в архиве (readme, addon.nfo, html.nfo, и.т.д.) Предмодерация дело хорошее, но как быть со старыми темами, некоторые авторы не появляются уже давно?

volk1234 09-04-2009 03:19 1088517

Создал в Vip - форуме ветку для обсуждения.
Пожалуйте туда, здесь давайте просто огласим результат.
Модераторам этого форума просьба удалять сообщения не по теме.

gora 09-04-2009 09:57 1088629

2 Vadikan
Учитывая это:
Цитата:

Цитата volk1234
Модераторам этого форума просьба удалять сообщения не по теме. »

изложил свою точку зрения здесь.

Shido 09-04-2009 10:05 1088640

volk1234, gora, Vadikan с
Цитата:

Цитата volk1234
Создал в Vip - форуме ветку для обсуждения »

С этим не согласен, т.к. высказатся смогут не все, меня например не пускают. Хотя идея всё обсудить и добится поддержки стандарта авторами аддонов без сомнения правильная.

volk1234 09-04-2009 13:54 1088829

Как хотите, давайте в общем доступе. Перенесите созданную ветку из вип клуба или прибейте ее и создайте новую.
Насчет группы Авторов аддонов реально затупил, я был совершенно уверен, что у них есть доступ к ВИП-клубу.

Stanner 10-04-2009 22:49 1090497

К вопросу о переименованиях папок с аддонами: если внутреннее имя аддона без версий хранить в отдельном файле (вроде addon.name), откуда его и будет брать UP, то внешнее имя папки будет не иметь значения...

volk1234 11-04-2009 02:55 1090629

А еще лучше конструкция вроде

Код:

UP проверяет по служебным полям название аддона и ищет конфликты

Example
  -Run (examle.bat)
  -Conflict ( по циклу получение в переменые списка файлов из служебного поля addon.nfo)
  -Addon.nfo/

=====
Addon.nfo
Код:

Аддон пример.
Автор Stanner
2005/2008

//zzz
zName=Examle;
zConflict=DrWeb,AVZ,KAV;
zRequired=;
zzz//

Конечно это набросок...

kill-kit 11-04-2009 23:20 1091369

http://forum.oszone.net/post-1091333-812.html здесь просил пока молчат решил сам пробовать, что не так подскажите.
Files>ForceCopy>SvcPack>objectdock
Run>objectdock.exe

volk1234 15-04-2009 00:23 1094287

Тэкс. Поговорил с Jameszero про служебные поля и переименование папок. Он был вежлив, но я понял, что он совсем не прочь отматерить
"любителей навести красоту". Скрипт переделывать не будет. Посему обсуждение в этом направлении лично я прекращаю - т.к. считаю, что решить проблему можно только через скрипт - а не декларациями....

Кто хорошо знает 7zip ? надо пару абзацев про использование этого чуда с аддонами для руководства

Jekson07 15-04-2009 00:53 1094308

Цитата:

Цитата volk1234
Скрипт переделывать не будет. Посему обсуждение в этом направлении лично я прекращаю - т.к. считаю, что решить проблему можно только через скрипт - а не декларациями....

А зачем переделывать скрипт, если всё и так корректно отрабатывает!!? Проблемы возникают только из-за кривых аддонов и таких же рук.
Цитата:

Цитата volk1234
Он был вежлив, но я понял, что он совсем не прочь отматерить "любителей навести красоту".

Давайте вернёмся к MS-DOS... :laugh:

volk1234 15-04-2009 01:28 1094334

Цитата:

Цитата Jekson07
Давайте вернёмся к MS-DOS... »

Имелись в виду люди переименовывающие папки без учета Conflicts Required в угоду красоте и прочие "улучшатели"
бездумно действующие...

tr011_tmn 15-04-2009 06:04 1094409

volk1234, давно не заглядывал в данную тему, а тут глянул и ахнул.
ИМХО: Таблица префиксов нужна, и не только для эстетической стороны работы скрипта, но и для практической, я конечно менее года на форуме, и для многих коллег здесь еще молокосос, но тем не менее, на данный момент у меня все аддоны в UP видоизменены согласно таблице префиксов, да мне понадобилось время что бы добиться работоспособности всех аддонов, но я могу с увереностью сказать что на данный момент дистрибьютив который я собираю лишен детских болезней, таких как сбой при установке, ошибки текстового этапа и т.д..
В первую очередь я считаю что с данной таблицей префиксов следует ознакомить авторов новых аддонов, что бы они заведомо создавая аддон, делали его отталкиваясь от нее. Старые же аддоны никто переделывать не будет, сам неоднократно сталкивался с предложениями ( проверенными лично на своем дистрибьютиве) авторам по добавлению префикса в имя аддона. В ответ либо тишина, либо отсылают в известный путь с фразой проблемы с переименованием аддона, проблемы переименовавшего. :drug:
P.S. Конечно спасение утопающего дело рук самого утопающего, но никто не мешает авторам аддонов, дать спасательный круг этим утопающим :not-me:
P.S.S. Префиксовал аддоны, префиксую, и буду префиксовать :jester: Да пребудет с нами сила :lol:

Shido 15-04-2009 06:37 1094415

volk1234, отправил вариант текста в ПМ. Несильно изменил, но надеюсь проблем будет меньше.

tr011_tmn, Вместе мы сила! :)

gora 15-04-2009 08:33 1094446

Цитата:

Цитата tr011_tmn
на данный момент у меня все аддоны в UP видоизменены согласно таблице префиксов »

А кто Вам это разрешил? Везде написано, что чужие аддоны переименовывать НЕЛЬЗЯ!
Цитата:

Цитата tr011_tmn
мне понадобилось время что бы добиться работоспособности всех аддонов »

А зачем это нужно? Аддоны отлажены авторами и полностью работоспособны, если их не переименовывать. Сизифов труд.
Цитата:

Цитата tr011_tmn
Префиксовал аддоны, префиксую, и буду префиксовать »

Вот пример "нарушителя" запрета переименования аддонов (tr011_tmn, надеюсь без обид, ни чего личного...). Это в очередной раз доказывает, что ни какие предупреждения и увещевания о запрете переименования чужих аддонов не помогут!

tr011_tmn 15-04-2009 09:48 1094494

gora, я префиксовал аддоны отнюдь не из праздного любопытства, а для того что бы добиться работоспособности. Когда я только появился на форуме я столкнулся с проблемой того что не мог собрать нормально дистр средствами UP, поэтому начал осваивать nlite паралельно изучая матерьялы выложенные на данном форуме, и приводя свой UP к тому образу и подобию которое сейчас имею.
cписок аддонов:

0-HTMLINFO\
1-BaseCSP\
1-exFAT\
1-Flash\
1-GPPC\
1-ICCD\
1-IMAPI2\
1-LLTD\
1-MRT\
1-MSXML\
1-MU\
1-PkgInst\
1-Rootsupd\
1-WGA\
2-3rdParty\
2-CPLDAPU_02a_09\
2-DirectX\
2-DotNet11_35SP1_KB_LP\
2-Flash_Player\
2-IE7_Reload\
2-PfotoStory\
2-Physx\
2-PowerShell\
2-Shockwave\
2-Silverlight_3\
2-SPTD\
2-TTF_fonts\
2-WMP11RUS\
2-XLive12\
3-Alky_XP\
3-dllsfox\
3-dllsfull\
3-Msgina\
3-RCadmin\
3-Resolution\
3-TTF_fonts\
3-Unpnc\
4-aspi\
4-Avatars\
4-Cursors Aero\
4-inkball\
4-Kernel\
4-LClock_r_s\
4-MM2.6\
4-MsRoyale\
4-MsZune\
4-Oem\
4-OOBE\
4-QTall\
4-ResPatch_BDB_v4.1\
4-Screens\
4-SNot\
4-Sounds Vista 2.0\
4-STool\
4-Themes\
4-UxTheme\
4-VIstaGamesv\
4-Wallpapers\
5-CabTools\
5-DLLINFO\
5-everything\
5-HashTab230\
5-MassStor\
5-MSConfig\
5-POWER\
5-PSforExp\
5-SysInternals\
5-USBDeView\
5-Wiaacmgr\
6-FixQL_icon\
6-MyCustom\
6-neticon\
6-tcpip\
6-Z1_LogonUIFix\
7-7Zip_465\
7-AdobeReader9Plus\
7-AkelPad\
7-CODECv.11\
7-Console2\
7-DMaster_5591157\
7-dopdf62\
7-DTools4303\
7-Encoder9\
7-EVEREST_Ultimate_5.0.1650\
7-FlashProjector\
7-IEPro\
7-IrfanView423\
7-IrfanView423_Plugin\
7-Java1612\
7-Killcopy\
7-LightAlloy\
7-Messenger5.1\
7-MP3ext\
7-MPCHC\
7-Paint.NET336\
7-SDP2009\
7-SIW\
7-SUMo_24167\
7-TCPP70RU\
7-UltraISO_PE_v9.3.2.2656\
7-Universal_Extractor_1.6\
7-Unlocker_187\
7-UT_2.7.1_4932\
7-VFLOPPY\
7-vistadriveicon6in1\
7-wdv4\
7-WinRAR3.80final\
7-z_aimp20090105\
8-Del_Obsolete\
8-DelMSMSGS\
8-Del Pinball\
8-DelWinTOUR\
8-Del ZoneGames\
8-TTF_fonts\
8-TTF_fonts_Obsolete\
9-cleanup\
9-x-Reset10\
9-ZZ_Clean\
z-Log\

volk1234 16-04-2009 01:55 1095345

Короче.
Как бы мне не нравилась красивая таблица в Приложении 1 -
в следующей редакции я размещу новый укороченный вариант предложеный Shido. (выложу позднее, с правками очередными)

Если и далее продолжатся жалобы от "компетентных" товарищей - я просто укажу что есть такая возможность для аддоно писателей -
префиксы, за разъяснениями к Jameszero :)

tr011_tmn 16-04-2009 08:08 1095413

volk1234, а я считаю что это не верно. Во первых Jameszero не панацея, и у него есть своя жизнь и свои дела, так что отсылать всех к нему это не справедливо. Особенно зная наш менталитет, про каждую запятую переспрашивать. А во вторых я считаю что авторов аддонов следует приручить к префиксам. Желательно "огнем и мечом".

Shido 16-04-2009 08:28 1095422

tr011_tmn, огнем и мечём это конечно здорово, но разговор уже два года идёт а воз и ныне там. Стандартов нет и судя по всему не будет. Разве что к нашему небольшому клубу ещё кто присоеденится *надежды на это у меня мало* :unsure:

tr011_tmn 16-04-2009 10:14 1095509

Shido, вот смотри я приложил свой список аддонов и порядок того как я их префиксовал, среди спорящих есть гуру чьи аддоны в списке присутствуют, если они мне докажут что те префиксы которые я поставил приводят к ошибкам (мною не выявлено не одной), то я сложу оружие на барикады и сдамся на милостьпобедителя, выйдя из спора

gora 16-04-2009 11:11 1095566

Цитата:

Цитата tr011_tmn
если они мне докажут что те префиксы которые я поставил приводят к ошибкам »

Неверная постановка вопроса. Это Вам надо доказать, что отсутствие префиксов приводит к ошибкам. Мною тоже не выявлено ни одной ошибки из-за отсутствия префиксов и это доказывает, что без них можно спокойно жить. Подавляющее большинство Авторов аддонов префиксами НЕ пользуются (аддоны пака не в счет, они были пронумерованы еще до создания таблицы и ни как не подтверждают ее необходимость).

По поводу голосования таблицы префиксов...
Этот метод принятия решения неэффективен и не отражает истинной картины существующей на форуме, т.к., о голосовании не знают подавляющее большинство Авторов аддонов, а кто и знает, то проходят мимо, не желая ввязываться в спор. Им эта таблица "по барабану", заставить ею пользоваться их ни кто не сможет, и рассуждают примерно так: "пусть себе спорят, а я пойду свои аддоны делать, делом займусь...".
Если же ее действительно хотите знать, то нужно произвести опрос Авторов аддонов через ПМ с вопросом "Используете ли Вы префиксы в своих публичных аддонах?". Это может сделать и volk1234 (должность позволяет), т.к., он заинтересован в получении ответа на этот вопрос. А потом обнародуйте эти результаты, это и будет истинная картина. Вот тогда и нужно говорить о
Цитата:

Цитата tr011_tmn
сложу оружие на барикады и сдамся на милостьпобедителя »


maik5 16-04-2009 14:05 1095733

Если честно, то мне эти префиксы, как собаке пятая нога. Я использую более 100 аддонов и никаких ошибок. И пока я дождусь, что авторы аддонов приведут их в соответствии с таблицей префиксов, то уже Windows7 выйдет. Думаю проще оставить всё как есть и не искать себе проблем, и соответственно не тратить драгоценное время на устранение этих проблем.

zeroua 16-04-2009 14:31 1095765

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

volk1234 20-04-2009 18:41 1099212

Про префиксы в 110й раз.

Я не имею никакой личной заинтересованности в префиксах. Я ими не пользуюсь.
Но как составитель (и немного автор) Руководства я должен стоять на позициях защиты интересов его читателей.

Конечно в первую очередь от различных модификаций страдают люди оказывающие помощь по отладке - Jameszero и др. Но эти люди могут постоять за себя сами...
Я очень благодарен Jameszero за его неоднократную помощь в написани скриптов, но его помощь и моя невнимательность не означают необходимость запрета написания скриптов неопытным пользователям. Надеюсь я понятно написал.

А вот большинство читателей не могут постоять за себя. Или просто неузнают об этом или поленятся\посчитают бесполезным спорить.
Я лично не споткнулся на префиксах, хотя видел таблицу префиксов. Кому-то показалось важным заставить скрипт обрабатывать папки в строгом порядке. Ну если человек осознает, что делает флаг и конституцию ему в руки!
А как вы собираетесь скрывать информацию о том, что скрипт обрабатывает папки в алфавитном порядке ??? Или вы думаете, что люди черпают информацию только из руководства? После прочтения информации об обработке аддонов в алфавитном порядке, что помешает человеку поименовать папки не префиксами, а буквами :

Код:

aZoomIt
bDriverPack
cDrWeb

И ничто в мире не удержит от такого именования "любителей красоты в папках".
Поэтому я себя ставлю на место совсем новичка в написании аддонов - я бы лично хотел, что бы мне предоставили всю информацию. Что бы мне не пришлось лопатить 500 страниц форумов в поиске описания загадочных префиксов и примеров их использования. И я бы на месте новичка, хотел бы внятного предупреждения - что можно делать, а что нельзя и почему. А прятать подальше с глаз бесполезно. Всеравно найдут.

Я всегда считал, что проблема пораждена скриптом- он обрабатывает аддоны в алфавитном порядке без разбора. Вплоть до например вымышленного мной аддона zDelete386\ состоящего из одного скрипта RD %Distr% /a /y и выполняемого последним. По его выполнению папка I386 с уже интегрированными обновлениями и аддонами удаляется.

И кто будет виноват??? Автор аддона или пользователь переименовавший папку аддона в 1-zDelete386 ?
Если бы скрипт получал информацию от аддона или сам решал, какие аддоны в какой очередности интегрировать ( не основываясь на таком ненадежном факторе, как имя папки)
проблемы префиксов не существоало бы. Хоть матными словами папки называй, скрипт проигнорирует это...

volk1234 24-05-2009 12:16 1126189

Кстати, по поводу нашей дискусии о именовании аддонов и архивов.
Вот думаю дать в руководстве ссылку
Занимательная нумерология (блог Проничкиных)
интересно почитать, чтобы лишний раз убедится в выборе именования папок и версий - все зависит от конкретного случая...

volk1234 18-06-2009 01:57 1145612

Новые + предыдущие исправления в РУКОВОДСТВО.


Обсуждаем. Всем заинтересованным, внесу эти изменения на выходных - 20,21 июня. Орфография в Личку !

читать дальше »

Раздел I. Общие положения.
читать дальше »

▫ Имена файлов и папок.

Все файлы аддонов типа SYSOC должны иметь имена в формате 8.3. В этом же формате должны именоваться CAT-файлы используемые, как в SYSOC, так и в SVCPACK типах аддонов. Имена файлов и папок не должны содержать пробелов и спецсимволов (например, в Txtsetup Sysoc имена со спецсимволами и длинными именами не будут подхватываться).

▫ Префиксы в названиях папок аддонов.

предложение: Предлагается следующее использование префиксов (составил Shido): см. Приложение 1. Префиксы.

изменить на

Посмотреть пример использования префиксов (составил участник конференции Oszone Shido): Приложение 1. Префиксы


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

В свете изложенного необходимо четко понимать, что наименование папок и архивов с аддонами остается целиком на совести авторов.....

Дополнительно про именование версий программ можно почитать в серии статей Занимательная нумерология (блог Проничкиных)

▫ Конфигурационные файлы.
....
При выполнении файлов Start, SpecCase, Finish первым параметром передается путь к аддону в виде Addons\Имя_папки_аддона. Из самого файла его можно получить через переменную командной строки '%1'.


РАЗДЕЛ II. Типы аддонов.
читать дальше »

▫ Аддоны, использующие SYSOC

Файл Txtsetup.sif фактически является списком копируемых файлов для текстового этапа установки, с его помощью копируются файлы и кусты реестра с диска в папку установки Windows.
Файл Dosnet.inf содержит остальные данные для программы установки на текстовом этапе, в том числе папку установки Windows. Этот файл используется при установке Windows с жёсткого диска, по сети, со съемных устройств.
На графическом этапе с помощью Sysoc.inf менеджер установки строит список дополнительных компонентов и сверяет его с файлом ответов (Unattend.txt, Winnt.sif), если такой файл есть. По результатам сверки образуется конечный список устанавливаемых компонентов.
Фактически аддон типа SYSOC работает следующим образом. При компиляции скриптом Update Pack секции из Sysoc, Txtsetup, Dosnet, находящихся в корневой папке аддона, переносятся в дистрибутивные аналоги. Файлы из папки аддона Files копируются в папку дистрибутива I386.
При установке Windows, на текстовом этапе установки файлы, прописанные в списке Txtsetup.sif, копируются из дистрибутива
в папку назначения. Затем аддон устанавливается вместе с другими дополнительными компонентами из Sysoc.inf.

Важно: Для совместимости аддона со все возможными способами установки Windows, необходимо включать в аддон конфигурационный файл Dosnet.


▫ Аддоны, использующие для интеграции SVCPACK.

Важно! Если аддон меняет какие-либо системные файлы, не забудьте про файлы каталогов безопасности ( *.cat). Если такие файлы необходимы, они просто размещаются в папке SVCPACK аддона, скрипт их скопирует и добавит в Svcpack.inf автоматически. В файле Run их прописывать не надо! Еще раз напомню, CAT-файлы, используемые как в SYSOC, так и в SVCPACK типах аддонов, должны именоваться формате 8.3!


ссылка на новое приложение 9.

▫ Аддоны, изменяющие дистрибутив.

....
Тонкости изменения дистрибутива.

Если необходимо создать аддон, который при интеграции копирует нужную папку в корень создаваемого дистрибутива силами UpdatePack, воспользуйтесь следующим способом:

Добавьте в корневую папку вашего аддона конфигурационный файл Start (Finish), содержащий строку:
Код:

COPY /V /Y /Z "%~1\Имя_папки" "%DISTR%"
Где интересует нас только 2 параметра: "%~1\Имя_папки" и "%DISTR%", поскольку остальные - стандартные ключи команды Copy.

%~1- возвращает скрипту путь к вашему аддону (соответственно, копируемая папка также должна располагаться в корневой папке аддона)

%DISTR%- это внутренняя переменная скрипта UpdatePack, содержащая путь к вашему дистрибутиву.


Раздел III. Примеры и приложения.
читать дальше »

▫ Приложение 1. Префиксы.
читать дальше »

Это пример, а не руководство к действию !
Переименование папок чужих аддонов недопустимо (особенно, если вы не понимаете последствий), так как это нарушит зависимость данного аддона от других. А также изменит порядок интеграции, который проверялся автором в ходе тестирования, и затруднит анализ ошибок.
Переименование папок готовых аддонов (в т.ч. для добавления префиксов), не даст обычному пользователю никаких преимуществ, а скорее создаст проблемы. Префиксы это инструмент авторов аддонов для случаев, когда возникают проблемы с интеграцией и совместимостью аддонов.
При создании новых аддонов имеет смысл использовать описанную ниже схему -
Аддон который надо обработать, до других аддонов в том числе встроенных аддонов Update Pack именовать префиксом 0-имя_аддона,Аддон который надо обработать, после всех других аддонов именовать префиксом 9-имя_аддона (либо zz-имя_аддона).

Примерная нумерация префиксов .[/b]

Код:

0 - Служебные, предназначены для подготовки других аддонов к процедуре интеграции.
1 - Аддоны базового набора.
2 - Разного рода обновления и дополнения встроенных компонентов ОС.
3 - Неофициальные обновления или технические обновления ОС. Наборы библиотек, компоненты не входящие в ОС, и.т.п. вещи.
4 - Хаки.
5 - Программы сторонних производителей (sysoc).
6 - Программы сторонних производителей (svсpack).
7 - Аддоны предназначенные для внесения изменений в реестр ОС.
8 - Аддоны предназначенные для удаления компонентов ОС и драйверов.
9 - Служебные, предназначены для пост-обработки информации или создания образа.



▫ Приложение 2. Тонкости использования INF-файлов.


3. Создание ярлыков - обновлено и доработанно
читать дальше »
▫ Флаги создания/удаления ярлыков – перенесено из разного

Есть в руководстве по INF-файлам, но по этому списку более понятна логика складывания флагов:

Код:

0x00000001  Создать пункт меню для текущего пользователя
0x00000002  Удалить пункт меню
0x00000003  Удалить пункт меню для текущего пользователя
0x00000004  Создать пункт меню для профиля All Users в папке Пуск\Все программы
0x00000005  Создать пункт меню для текущего пользователя в папке Пуск\Все программы
0x00000006  Удалить пункт меню для профиля All Users в папке Пуск\Все программы
0x00000007  Удалить пункт меню для профиля текущего пользователя в папке Пуск\Все программы
*в меню пуск все пункты меню - ярлыки

соответственно удаляется эти флаги из подраздела 4. Разное

▫ Специальные флаги создания/удаления ярлыков (Special ProfileItems Flags)

Добавление ярлыков:

Код:

0x00000008,2 = "%UserProfile%\Start Menu\Programs"
0x00000008,5 = "%UserProfile%\My Documents"
0x00000008,6 = "%UserProfile%\Favorites" <- Perfect for adding custom IE Bookmarks
0x00000008,7 = "%UserProfile%\Start Menu\Programs\Startup"
0x00000008,8 = "%UserProfile%\Recent"
0x00000008,9 = "%UserProfile%\SendTo"
0x00000008,11 = "%UserProfile%\Start Menu"
0x00000008,13 = "%UserProfile%\My Documents\My Music"
0x00000008,14 = "%UserProfile%\My Documents\My Videos"
0x00000008,16 = "%UserProfile%\Desktop"
0x00000008,19 = "%UserProfile%\NetHood"
0x00000008,20 = "%WinDir%\Fonts"
0x00000008,21 = "%UserProfile%\Templates"
0x00000008,22 = "%AllUsersProfile%\Start Menu"
0x00000008,23 = "%AllUsersProfile%\Start Menu\Programs"
0x00000008,24 = "%AllUsersProfile%\Start Menu\Programs\Startup"
0x00000008,25 = "%AllUsersProfile%\Desktop"
0x00000008,26 = "%UserProfile%\Application Data" <- Perfect for QuickLauch
0x00000008,27 = "%UserProfile%\PrintHood"
0x00000008,28 = "%UserProfile%\Local Settings\Application Data"
0x00000008,31 = "%AllUsersProfile%\Favorites"
0x00000008,32 = "%UserProfile%\Local Settings\Temporary Internet Files"
0x00000008,33 = "%UserProfile%\Local Settings\Cookies"
0x00000008,34 = "%UserProfile%\Local Settings\History"
0x00000008,35 = "%AllUsersProfile%\Application Data"
0x00000008,36 = "%WinDir%"
0x00000008,37 = "%WinDir%\system32"
0x00000008,38 = "%ProgramFiles%"
0x00000008,39 = "%UserProfile%\My Documents\My Pictures"
0x00000008,40 = "%UserProfile%"
0x00000008,41 = "%WinDir%\system32"
0x00000008,43 = "%CommonProgramFiles%"
0x00000008,45 = "%AllUsersProfile%\Templates"
0x00000008,46 = "%AllUsersProfile%\Documents"
0x00000008,47 = "%AllUsersProfile%\Start Menu\Programs\Administrative Tools"
0x00000008,48 = "%UserProfile%\Start Menu\Programs\Administrative Tools"
0x00000008,53 = "%AllUsersProfile%\Documents\My Music"
0x00000008,54 = "%AllUsersProfile%\Documents\My Pictures"
0x00000008,55 = "%AllUsersProfile%\Documents\My Videos"
0x00000008,56 = "%WinDir%\Resources"
0x00000008,57 = "%WinDir%\Resources\0409"
0x00000008,59 = "%UserProfile%\Local Settings\Application Data\Microsoft\CD Burning"

Удаление ярлыков:
Для специальных флагов тоже действует правило сложения – специальный флаг + флаг удаления =0x00000008+0x00000002=0x0000000A
Чтобы удалить ярлык, созданный с помощью специальных флагов, используйте:

Код:

0x0000000A, номер специального флага равный номеру специального флага при создании ярлыка (таблица выше).
В качстве примера рассмотрим следующий раздел:

▫ Создание/удаление ярлыка в контекстном меню "Отправить" (SendTo):

Важно: При использовании ProfiledItems в вашей секции создания ярлыка в параметре CmdLine= необходимо указать путь к файлу и имя файла в формате 8.3.

4. Разное.
▫ Определение каталога копирования по умолчанию. новое

читать дальше »
В секции DestinationDirs определяются папки назначения для всех операций копирования, удаления и переименования, где бы они не находились в INF-файле. Организованно это в виде списка секций и путей копирования для них.
Для секций, не заданных явно в этой папке, или для файлов, скопированных прямо из секции копирования (с помощью символа @)

Синтаксис:
Код:

DefaultDestDir=dirid,подпапка
Пример.
Код:

[DefaultInstall]
CopyFiles=SomeSection,@somefile.txt

[DestinationDirs]
DefaultDestDir=16409,Temp
SomeSection=10,

Секция SomeSection будет скопирована / переименована / удалена по пути, определенному в DestinationDirs (в данном случае %WINDIR%)
Файл somefile.txt и другие секции или файлы, не указанные в DestinationDirs, будут копироваться по умолчанию в папку Temp на рабочем столе.
Избегайте использования DefaultDestDir с несколькими вложенными INF-файлами (использующими директивы Include и Needs). Если во вложенных файлах будет определена директива DefaultDestDir, отличная от основного файла, она будет игнорироваться, и все файлы будут скопированы в папку, определенную в основном INF-файле.
Если в секции DestinationDirs нет ни одной записи, все файлы по умолчанию копируются в %windir%\system32.

▫ Приложение 3. Файл Txtsetup.sif

....[_x] означает, что файл дистрибутива не сжат. Если [_x] отсутствует, программа установки предполагает, что файл сжат. Каждый файл дистрибутива XP перечислен в Layout.inf, вместе с размером в байтах. Размер в байтах, очевидно, зависит от того, сжат файл или нет. Если Txtsetup.sif укажет программе установки, что файл не сжат, то установщик будет сравнивать размер файла с Layout.inf, чтобы удостовериться, что размер не был изменен. Если файл сжат, то установщик будет сравнивать с записью в Layout.inf размер распакованного файла. Если размер файла не соответствует тому, что указан в Layout.inf, установка XP может быть прервана ошибкой.

▫ Приложение 8. Файл Addon.nfo


Свое развитие этот конфигурационный файл получил в служебном аддоне HTMLINFO, созданным участником конференции asmol.
Данный аддон формирует в корневой папке вашего дистрибутива файл ADDONS.HTM вместо ADDONS.TXT.
В данном файле используются многие преимущества языка HTML, и это позволяет красиво оформить список установленных аддонов.
Используя в вашем аддоне файл html.nfo, вы можете добавить описание вашего аддона в ADDONS.HTM.



▫ Приложение 9. Тонкости создания аддонов SVCPACK новое
читать дальше »

Данное приложение не ставит цели повторять ветки форума Автоматическая установка приложений. Здесь не будет (по крайней мере не планируется) полного списка ключей инсталляторов.

1. Использование установщиков.

Как правило, использование установщиков в аддонах SVCPACK сводится к запуску инсталлятора в «тихом» режиме. Однако есть и тонкости.

1.1 Использование установщика Windows (Windows Installer)

Самая распространенная конструкция аддонов типа SVCPACK - это строка с использованием ключей тихой установки конкретного установщика в конфигурационном файле Run, либо в коментарии архива. Также используются MST-файлы для заданных заранее параметров установки. Этот метод не всегда гибок. Данный факт сподвиг меня на исследования, которые вылились в целую статью. Повторять ее здесь нет смысла, поэтому обязательно почитайте статью по ссылке. Здесь же небольшие замечания по использованию свойств установщика Windows.
Свойства (Properties) установщика, заданные в командной строке, имеют приоритет выше, чем MST-файл, что делает их отличным средством повышения гибкости вашего аддона. Можно исправить одну строку с параметрами, а не редактировать специальными программами MST-файл.

Синтаксис использования:

Код:

msiexec.exe /i Example.msi СВОЙСТВО
Если MSI-файл установки упакован установщиком в EXE-файл, то следует использовать стандартный ключ /v для передачи параметров в MSI- файл.

Синтаксис использования:

Код:

Example.exe /s /v”TRANSFORMS=unatend.mst /qn”
Обсуждение применения различных свойств установщика Windows в ветке Msiexec - список ключей и свойств

Важно! Поскольку строки, содержащие знаки '=' , '-' и некоторые другие символы, некорректно отрабатывают в конфигурационном файле Run, вышеприведенные строки надо использовать в скриптах, а в файле Run указывать только имя скрипта.





Хочу поблагодарить отдельно, забытого:
IDDQDesnik за пост #14 - определившего название одной из групп аддонов в Руководстве.

Хочу поблагодарить людей внесших основные идеи в эту редакцию –
otsheln1k - сравнение размера сжатого файла с Layout.inf
Shido - отличный пример использования внутренней переменной UP
vserd - раскопанный возвращаемый параметр конфигурационных файлов, уточнение описания sysoc
okshef – орфография
Gora
Jameszero, Habetdin – за поднятый вопрос со специальными флагами ProfiledItems
Приложение 2. к апрелю Обещал дополнить Staner да так и пропал

Vadikan 18-06-2009 09:56 1145738

Проверка правописания

Цитата:

Цитата volk1234
CAT- файлы используемые »

CAT-файлы, используемые
Цитата:

Цитата volk1234
Shido »

Ссылкой

Цитата:

Цитата volk1234
Дополнительно, про именование версий программ можно почитать »

Дополнительно про именование версий программ можно прочесть

Цитата:

Цитата volk1234
! Пожалуйста, поймите, »

Пожалуйста, примите к сведению,

Цитата:

Цитата volk1234
На графическом этапе , с помощью Sysoc.inf »

На графическом этапе с помощью Sysoc.inf

Цитата:

Цитата volk1234
CAT- файлы »

CAT-файлы

Цитата:

Цитата volk1234
формате 8.3 ! »

Перед знаками препинания пробел не ставится.

Цитата:

Цитата volk1234
Добавьте в корневую папку вашего аддон конфигурационный файл Start (Finish) содержащий строку: »

Добавьте в корневую папку вашего аддона конфигурационный файл Start (Finish), содержащий строку:

Цитата:

Цитата volk1234
Где интересует нас только 2 параметра »

Где интересует нас только 2 параметра:

Цитата:

Цитата volk1234
так же должна »

также должна

Цитата:

Цитата volk1234
%DISTR% это »

%DISTR% - это

Цитата:

Цитата volk1234
ЭТО ПРИМЕР, а не руководство к действию !! »

Капслок не нужен. Можно жирно-красно делать. Два воскл. знака тоже не нужны.

Цитата:

Цитата volk1234
так как это нарушит зависимость данного аддона от других и изменит порядок интеграции, которые будут отличаться от проверенных автором в ходе тестирования »

Логическая связь нарушена. И предложение очень длинное - можно разбить.

Цитата:

Цитата volk1234
В общем и целом полное переименование папок аддонов для добавления префиксов, не »

В общем, полное переименование папок аддонов для добавления префиксов не

Цитата:

Цитата volk1234
имеет смысл использовать следующую схему - »

имеет смысл использовать описанную ниже схему.
Цитата:

Цитата volk1234
Аддон который надо обработать, до других аддонов в том числе встроенных аддонов UP именовать префиксом 0-имя_аддона, »

Аддон который, надо обработать до других аддонов, в том числе встроенных аддонов UP, именовать префиксом 0-имя_аддона.

Дальше посмотрю позже, некогда сейчас :)

volk1234 18-06-2009 12:11 1145837

чуток переработал текст:
▫ Приложение 1. Префиксы.
читать дальше »

Это пример, а не руководство к действию!
Переименование папок чужих аддонов недопустимо (особенно, если вы не понимаете последствий), так как это нарушит зависимость данного аддона от других. Также, это изменит порядок интеграции, который проверялся автором в ходе тестирования, и затруднит анализ ошибок.
Переименование папок готовых аддонов (в т.ч. для добавления префиксов), не даст обычному пользователю никаких преимуществ, а скорее создаст проблемы. Префиксы - это инструмент авторов аддонов для случаев, когда возникают проблемы с интеграцией и совместимостью аддонов.
При создании новых аддонов имеет смысл использовать описанную ниже схему.
Аддон, который надо обработать до других аддонов (в том числе встроенных аддонов Update Pack), именовать префиксом 0-имя_аддона. Аддон который надо обработат, после всех других аддонов, именовать префиксом 9-имя_аддона (либо zz-имя_аддона).


Vadikan все и так знают мою "грамотность", немог бы ты закрыть коментарии тегом [more] ? :)

Vadikan 21-06-2009 18:50 1148288

volk1234, я закончил вторую часть проверки правописания - на сей раз прямо в тексте поста 377. Однако свои замечания из поста 378 я не вносил туда.

Также, я внес правки в пост 379.

volk1234 22-06-2009 02:45 1148642

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

volk1234 23-06-2009 23:55 1150290

Руководство Обновлено

23.06.2009 версия статьи на сайте 2.30

Много правок и добавлений. Как раз к годовщине. Думаю в связи с выходом W7 лебединая песня :)
читать дальше »

Цитата:

+ Приложение 9. Тонкости создания аддонов SVCPACK - новое

+ Раздел I. Общие положения.

Имена файлов и папок.

Префиксы в названиях папок аддонов.

Конфигурационные файлы.

+ РАЗДЕЛ II. Типы аддонов.
Аддоны, использующие SYSOC

Аддоны, использующие для интеграции SVCPACK.

Аддоны, изменяющие дистрибутив.

+ Раздел III. Примеры и приложения.

Приложение 1. Префиксы.

Приложение 2. Тонкости использования INF-файлов.

3. Создание ярлыков - переработанно

4. Разное. Определение каталога копирования по умолчанию.

Приложение 3. Файл Txtsetup.sif

Приложение 8. Файл Addon.nfo

*Добавлены отсутствующие ссылки и и проверены все ссылки. А их около 40 штук !

*Более 68 мелких смысловых правок текста (добовление слов, предложений, перемена слов местами)

*Приведение всех папок к виду [путь\папка]

*Приведение слов SVCPACK и SYSOC к единому виду(прямой шрифт, заглавные буквы)

*Приведение всех файлов(кроме кода) к виду File.exe

Vadikan
читать дальше »
Редактор на сайте -это песня :)
Утром сделал все правки быстренько, решил посмотреть свойства якоря - бац, ИЕ не позволяет это сделать и требует повторить отправку информации на сайт........ничего естественно не сохранилось...
Ссылки добавлять очень удобно, но пока я понял как это делать...совершенно случайно получилось, до этого правил хтмл код.
Незнаю хватит ли меня на создание chm версии. Пока буду тупо отдыхать.

Vadikan 24-06-2009 00:41 1150320

Цитата:

Цитата volk1234
Редактор на сайте -это песня »

Стандартный FCKEditor.

Цитата:

Цитата volk1234
ничего естественно не сохранилось... »

Можно писать в Word, потом вставлять в редактор.

Цитата:

Цитата volk1234
Ссылки добавлять очень удобно, но пока я понял как это делать »

На панели инструментов значок точно такой же, как в форуме :)

volk1234 24-06-2009 01:09 1150335

Э нет. Там же в форму можно только вставить ссылку. А подпись??
я пока допер, вставлял между <a href> </a>

Цитата:

Цитата Vadikan
Можно писать в Word, потом вставлять в редактор. »

понятно, но это все жадность - еще строчку напишу и потом сохранюсь :)

volk1234 15-08-2009 20:24 1194351

В следующую серию -
поправить ляп про rundll32

Вместо:
Цитата:

Важное замечание по синтаксису INF- скрипта. При вызове интерпретатора из INF-файла имеются различия вызова через Setupapi.dll и Advpack.dll. Вызов Setupapi.dll должен осуществляться через директиву Run= , а вызов Advpack.dll - только через RunPostSetupCommands=
Следует читать:
Важное замечание по синтаксису INF- скрипта. При вызове rundll32.exe из INF-файла имеются различия вызова через Setupapi.dll и Advpack.dll. Директива Run отрабатывает при вызове секции установки через Setupapi.dll , а RunPostSetupCommands= через вызов Advpack.dll. То есть если правой кнопкой мыши установить INF-файл(Setupapi.dll) то директива RunPostSetupCommands= не отработает.

semiono 26-09-2009 22:40 1228263

Цитата:

Цитата volk1234
Аддоны в зависимости от целей и способов реализации делятся на 4 типа »

У меня глобальный вопрос накипел, объясните пожалуйста!

1. Я юзаю nLite пару лет, и как бы не жалуюсь. Однако наверное создатели аддонов даже в большинстве своём
юзают какие-то другие способы интеграции приложений в установку windows. Хотелось бы знать какие
преимущества могут в этом быть? Вернее хочется узнать об этих способах...
Насчёт nLite понятно, что он пользуется SVCPACK способом, хотя я не понял, а что если самому в любой
сырой дистр положить хотфиксы в этот каталог, то что они сами обнаружаться инсталлером windows?
Это былобы очень не плохо! Так как я в данном случае именно интересуюсь ручным способом
интеграции пакетов без утилиты nLite! Или же надо конфиги править? Кстати, про svcpack.inf мне
тоже извесно, если он не отличается в сборке nLite, то там всё просто и понятно было!

2. Если развивать тему далее об отказе от nLite, то какие способы имеются ещё в настройке
и удалении служб и твики реестра? Хотя можно наверное зделать такой пакет-хотфикс который
запустит на t13 все эти настройки, например, регфайлом. Но может быть есть возможность прямого
редактирования конфигов дистрибутива для этих задач?
Кстати, я бы хотел изменить дефолтную редакцию boot.ini, хотяб timeout задать поменьше, !? (разумеется автоматически)

3. Про главное совсем забыл, мне хотелось бы знать элементарные закономерности в дистрибутивах XP,
а не то как разрабатывать или пользоваться готовыми чужими аддонами "для Update Pack от Petya V4sechkin"
И ещё я категорически против папок $OEM$ в корне диска, если это где либо используется!...

P.S. насчёт готовых аддонов, мне просто обычно не нужны RUS версии программ, причём сами приложения
часто мне бывают нужны не популярные в народе. И прочитав немного статю про аддоны, мне кажется
слишком сложно всё, не уверен нужно ли мне всё это, я например грубо вырубаю SFC и тп.

Habetdin 26-09-2009 22:56 1228276

Цитата:

Цитата semiono
какие способы имеются ещё в настройке
и удалении служб и твики реестра? »

Удаление компонентов - с помощью Del-аддонов из списка.
Настройка - [addon] my custom
Цитата:

Цитата semiono
хотфиксы »

UpdatePack-XPSP3-Rus версия 9.9.11 - для интеграции обновлений и аддонов :)

semiono 26-09-2009 23:04 1228283

UpdatePack-XPSP3-Rus версия 9.9.11 извините! :) русский не надо...

Пожалуй я понял, что именно мне надо. :)
Походу все эти аддоны используют какой-то механизм внесения файлов итп в дистр!
Скорее всего с помощью запуска сервис пака типа UpdatePack-XPSP3-Rus как здесь!
Я же интересуюсь как всё зделать руками с помощю блокнота и копирования файлов.
Только правкой конфигов и всё!

Habetdin 26-09-2009 23:34 1228304

semiono, посмотрите в скрипте UpdatePack'а, что он изменяет в дистрибутиве ;)
Цитата:

Цитата semiono
русский не надо... »

Существует ли что-то наподобие updatepack'a для английской версии Windows?

Олег97 24-07-2010 12:37 1459748

можно ли добавить строки в секцию [winntdirectories] файла txtsetup.sif?

volk1234 28-07-2010 10:28 1462027

Строки то добавить можно, вопрос только в том, обработаются ли они :)
Попробуйте добавить и посмотреть логи.

jameszero 28-07-2010 10:42 1462040

volk1234
Обрабатываются.
Секции [WinntDirectories] используются в UpdatePack и аддоне Windows Media Player 11, например.

truvo 24-09-2010 19:09 1503480

volk1234, в названии темы - руководство по созданию, в статье на сайте - тоже по созданию, почему тогда в шапке - по написанию? (имхо, по созданию - лучше).

volk1234 24-09-2010 21:56 1503591

Цитата:

Цитата truvo
volk1234, в названии темы - руководство по созданию, в статье на сайте - тоже по созданию, почему тогда в шапке - по написанию? »

fixed

BigBoo 18-06-2011 13:49 1696953

Цитата:

Цитата volk1234
SmartReboot = I
;если перезагрузка необходима, тогда спросить у пользователя. »

Кто-нибудь пользовался именно значением "I"? Со "SmartReboot = А" всё ОК, а вот с "I" так и не смог ни разу пронаблюдать предложение о перезагрузке не при каких обстоятельствах. Делаю не первый аддон, где перезагрузка в процессе удаления при определённых условиях может и не понадобиться, но приходится использовать её всё равно, указывая значение параметра как "А".

volk1234 19-06-2011 10:15 1697411

Я не пробовал, но вот если вот так попробовать:
Код:

SmartReboot=I
Reboot=1

Еще попробуйте вместе с параметром
CheckAdminRights= 1
я не уверен, что это поможет, но в коде многих скриптов эти команды шли вместе.
Здесь надо учитывать, что сам механизм смарт ребута предполагает- что перезагрузка нужна если были заменены используемые системные файлы.
Возможно вы не затрагивали такие файлы.

BigBoo 20-06-2011 12:41 1698094

Цитата:

Цитата volk1234
сам механизм смарт ребута предполагает- что перезагрузка нужна если были заменены используемые системные файлы »

По сути ребут нужнен, если какой-либо файл программы при деинсталляции оказывается заблокирован, и его удаление возможно лишь после перезагрузки. То есть Вы хотите сказать, что механизм смарт ребута отслеживает совсем не это и поэтому не срабатывает?

volk1234 20-06-2011 17:11 1698277

Я вроде бы написал то же самое, что и Вы. :)
Цитата:

Цитата volk1234
перезагрузка нужна если были заменены используемые системные файлы. »

Цитата:

Цитата BigBoo
если какой-либо файл программы при деинсталляции оказывается заблокирован, и его удаление возможно лишь после перезагрузки »

Почему у Вас не срабатывает, сказать не могу. Нет данных. Не пробовал. Мне не требовалось.

BigBoo 20-06-2011 22:39 1698517

volk1234, к сожалению Ваши советы не помогли.
Цитата:

Цитата volk1234
SmartReboot=I
Reboot=1 »

В этом случае нижняя команда перешибает верхнюю, и предложение о перезагрузке появляется всегда, а CheckAdminRights = 1 ничего не даёт.

BigBoo 30-09-2011 00:54 1762761

В ходе работы с INF-файлом при создании аддона столкнулся с тем, что CopyFiles при работе снимает атрибуты с файлов. Есть ли способ, чтобы эта команда атрибуты сохраняла? В частности у файлов "скрытый", к примеру Desktop.ini.

И ещё один вопрос. Как сделать так, чтобы создаваемая папка в секции DestinationDirs имела атрибут "системный" (чтобы отображался значок, заданный для неё в Desktop.ini)?

BigBoo 30-09-2011 21:51 1763380

Хочу добавит в свой аддон типа SYSOC, расширяющий контексное меню проводника, скрипт из SetTools 4.0 для изменение регистра имен файлов и директорий из контекстного меню "Отправить".
Вопрос, как запустить скрипт VBS из INF, применимо к SYSOC? Так не работает:
Код:

Run = CASE.InstallCASE

[CASE.InstallCASE]
Commandline="wscript.exe InstallCASE.vbs"

Подстановка путей %11%\ тоже ничего не даёт.

BigBoo 05-10-2011 22:23 1766839

Слушайте, а кто-нибудь пользовался командой Run, у меня такое подозрение, что такая команда для setupapi вообще не существует и запуск чего-либо возможен только для advpack, используя RunPre(Post)SetupCommands.
То есть аддоны типа SYSOC такой роскоши себе позволить не могут, или всё-таки можно найти какой-то способ?

volk1234 06-10-2011 21:14 1767647

Врядли на этапе установки будет работать wscript.exe. Лучше сделайте аддон типа SVCPACK

BigBoo 06-10-2011 23:31 1767715

volk1234, сейчас уже просто дело в принципе, почему не срабатывает команда Run. Даже элементарно просто запустить "Блокнот" через неё и setupapi не получается:
Код:

Run = CASE.InstallCASE   

[CASE.InstallCASE] 
Commandline="%11%\notepad.exe"

Вот и появилось предположение об этом способе, что он всего лишь теория, причём нерабочая.

BigBoo 07-10-2011 23:02 1768390

Нашёл оригинальный способ запуска файлов:
Код:

[DefaultInstall]
AddReg = Example.AddReg

[Example.AddReg]
HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,Example,"%11%\notepad.exe"

Через setupapi работает, если запускаешь вручную:
Код:

rundll32 setupapi,InstallHinfSection DefaultInstall 132 Example.inf
А вот через апплет панели управления - нет. Опять непонятная загадка... :(

Причём это действительно метод setupapi, потому что при попытке запустить так файл через advpack ничего не происходит, что окончательно вводит в недоумение.

timon45 15-11-2014 13:23 2429753

BigBoo, тоже задался, таким вопросом и решение нашел!
Код:

Commandline="""wscript.exe"" ""%16422%\%PROG_DIR%\runQ.vbs"""
Вот бы еще разбраться как запустить runQ.vbs с определенным параметром.


Время: 18:05.

Время: 18:05.
© OSzone.net 2001-