PDA

Показать полную графическую версию : Авторам аддонов


Страниц : 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

jameszero
17-08-2007, 09:47
gora
Нужно так
[IE7Pr_.Register]
16422,"IE7Pro",IE7Pro.dll,1

Using Dirids (http://msdn2.microsoft.com/en-us/library/ms790174.aspx)
11 - System32
16422 - Program Files

jameszero
20-08-2007, 16:56
Как и обещал (http://forum.oszone.net/post-628092-179.html), написал небольшой мануал, для тех, кто желает разобраться в структуре аддонов sysoc типа.
Материал представляет собой пример изготовления конкретного аддона - Punto Switcher и основывается на использовании скрипта для создания секций копирования/удаления файлов (http://forum.oszone.net/post-434018-30.html) от XXXler (http://forum.oszone.net/member.php?userid=34346)
Рассмотрены:
секции копирования/удаления файлов
секции добавления/удаления записей в реестр
секции добавления/удаления ярлыков
секции регистрации/дерегистрации библиотек

Кто захочет повторить все шаги описанные в инструкции, архив с исходной папкой программы и тем что должно получиться, выложил здесь (http://tools.oszone.net/jameszero/doc/help_sysoc_example.7z) (в inf файл добавлены необходимые комментарии)
Саму инструкцию можно скачать здесь (http://tools.oszone.net/jameszero/doc/help_sysoc.7z) (формат - Word, объём - 6 листов)

Предложенный мануал рекомендуется к прочтению совместно с материалами по ссылкам в шапке данной темы
--
Инструкцию выложил "как есть", если будут замечены опечатки, неточности или просто возникнет желание, что то дополнить - моё PM (http://forum.oszone.net/private.php?do=newpm&userid=38952) открыто для любых конструктивных замечаний.

gora
05-09-2007, 11:21
jameszero, скачал (только сегодня, видимо подписка слетела) и внимательно прочитал. Замечания есть, но наверное когда соберусь напишу в ПМ.

Начну свой FAQ.
1 Параметр SizeApproximation=502755. Каково его назначение и насколько критично несоответствие истинного размера файлов, тому, которое указано в этом параметре? (Актуально при обновлении аддона, когда просто перезаписываются файлы в cab архиве).
2 Написание файлов в секции [SourceDisksFiles]. ps.dat=1, что означает эта единица?
3 Написание файлов в секции [punto_sw.Copy]. ps.dat,,,4, что означают запятые и их количество, а так же цифра 4 в конце? "ChooseLayouts.exe",ChooseLa.exe,,4, почему первый параметр в кавычках, а второй нет?
4 Написание файлов в секции [punto_sw.Del]. "ps.dat", почему здесь кавычки и всегда ли они нужны?
5 Как из cab архива несколько файлов скопировать в директорию, отличную от основной директории распаковки программы (например, ini файлы в в папку расположенную профиле пользователя)? Как создать эту папку?
6 Как запустить cmd или bat файл после распаковки всех файлов программы в нужную папку, для возможности проведения каких то операций (копирование, удаление файлов и т.д.)?
7 Где должен располагаться этот cmd или bat файл в аддоне (в cab архиве или рядом с ним)?
8 Параметр TickCount=500. Что это такое?

Пока остановлюсь, а то еще выгонят со всеми моими "почему" :)

jameszero
05-09-2007, 15:17
gora,

1. SizeApproximation не критичный и не обязательный параметр. Он отображает размер программы в "Установке компонентов Windows", а равен он значению в байтах (если открыть "Свойства" папки с программой, там увидите размер в килобайтах и байтах, вот последний и нужен)

2. Единица в секции [SourceDisksFiles] соответствует следующей секции [SourceDisksNames][SourceDisksNames]
1="Дистрибутив Windows XP SP2 с интегрированным аддоном Punto Switcher",punto_sw.cab,,"I386"Можно включить в аддон несколько cab файлов, тогда будет так
[SourceDisksNames]
1="Описание первого каба",ехаmрle1.саb„"I386"
2="Описание второго каба",example2.cab„"I386"
и если, например, файл file1.exe находится в первом кабе, а file2.exe во втором, то секция [SourceDisksFiles] будет такая
[SourceDisksFiles]
file1.exe=1
file2.exe=23. Значения запятых и флагов посмотрите здесь (http://msdn2.microsoft.com/en-us/library/ms794560.aspx)
Вкратце, между запятыми проставляются имена файла, в том случае, если имя конечного файла отличается от того, что в cab, т.е. в архиве файл example3.exe (формат 8.3) а в систему он должен скопироваться под именем example 333.exe. В таком случае будет так:
"example 333.exe",example3.exe,,4перед последней запятой ставится имя временного файла, на случай если файл уже существует и занят системой (т.е. будет заменён после перезагрузки), но это актуально только для win9x, NT системы сами генерируют имя временного файла

4. По поводу кавычек - они обязательны, если в имени файла или папки есть пробел или символы не английского алфавита, в остальных случаях они желательны, но не обязательны. В примере аддона я оставил кавычки там, где их проставил Скрипт для создания секций копирования/удаления файлов (http://forum.oszone.net/post-434018-30.html)

5. Папки назначения для файлов задаются в секции [DestinationDirs]. К примеру, так можно скопировать file1.exe в Program Files\Folder, а file2.exe в System32
[Install Section]
OptionDesc="Название программы"
Tip="Описание программы"
CopyFiles=file1.exe.Copy,file2.exe.Copy

[DestinationDirs]
file1.exe.Copy=16422,"Folder"
file2.exe.Copy=11

[SourceDisksNames]
1="Произвольное описание архива с файлами file1.exe и file2.exe",cab_name.cab,,"I386"

[SourceDisksFiles]
file1.exe=1
file2.exe=1

[file1.exe.Copy]
file1.exe,,,4

[file2.exe.Copy]
file2.exe,,,4Если папка назначения не существует, она будет создана.

6. Запуск файла из inf можно осуществить так (на примере аддона DrWeb)

[SpiderNT]
OptionDesc="DrWeb Spider Guard"
<skip>
Run=Spider.Run
<skip>

[Spider.Run]
Commandline="%16422%\DrWeb\spidernt.exe /install:auto /quiet"
TickCount=500
файл может быть любым исполняемым - exe, cmd..., так же можно запустить и функцию из dll-ки или секцию из inf-а (с помощью rundll32.exe)
[Spider.Init]
Commandline="""%11%\rundll32.exe"" advpack,LaunchINFSection ""%17%\DrWeb.inf"",Spider.Reboot,4"
TickCount=500
7. Файл запускается из той директории, куда он скопирован директивой CopyFiles из cab-а аддона.

8. TickCount - затрудняюсь ответить.

Выберу свободное время - добавлю небольшой FAQ в мануал

gora
05-09-2007, 16:26
Запуск файла из inf можно осуществить так »Имелась ввиду возможность запуска временного bat файла (т.е. его не желательно куда либо копировать или потом нужно удалять) через файл Run в корне аддона как это делалось в IE7Pro версии 0.9.20.

jameszero
05-09-2007, 19:53
gora, аддоны, которые содержат файл run относятся к так называемому SVCPACK типу, а я расписал, как запусить файл из аддона SYSOC типа.
В принципе, аддоны SVCPACK на несколько порядков проще, они обычно содержат тихий инсталлятор какой либо программы, но можно использовать и bat/cmd файлы. Исполняемый файл помещается в папку Files\ForceCopy\SVCPACK аддона, а в файл run пишется его имя (можно запустить несколько файлов из одного run - каждый файл пишется с новой строчки, но run обязательно должен заканчиваться пустой строкой)

Аддоны могут быть комбинированные, как тот же DrWebSP (с автоустановкой Spider Guard) - установка проходит из SYSOC, а затем из SVCPACK срабатывает тихий архив, который подменяет inf аддона в системе. Подмену можно было сделать и из inf-а, через HKLM,"SYSTEM\CurrentControlSet\Control\Session Manager","PendingFileRenameOperations", как в аддоне IE7_Reload, но я об этом способе узнал, после того, как сделал DrWeb Или аддон AVZ - из SYSOC устанавливается ядро программы, а из SVCPACK в папку с программой копируются антивирусные базы. Поковыряете аддоны DrWebSP и AVZ и поймёте, что к чему.

gora
06-09-2007, 08:53
jameszero, я продолжу с вашего позволения.

9 Какие типы аддонов существуют? Их принципиальное отличие и плюсы/минусы каждого типа.
10 Какова структура аддонов? Название папок и их назначение (назначение файлов в корне аддона я нашел) ?
11 Файл i386.lst, как я понял, содержит список имен файлов недопустимых для использования в аддонах во избежании коллизии. Он должен обновляться/пополняться в связи с выходом новых паков? А кто следит, чтобы не было коллизии между именами файлов из разных аддонах или ее там быть не может?
12 Синтаксис строк и чем определяется их количество в файлах txtsetup, sysoc, dosnet?
13 Файлы Sysoc и Run должны заканчиваться пустой строкой., а разве к addon.nfo это не относиться? Так отсутствие ее в аддоне WinRar 3.70 "моршит" текст в файле Addons.txt.
14 Параметр Modes=0,1,2,3. Что это такое?
15 Как прописать путь для копирования файлов, если его нет в dirids, например, %USERPROFILE%\Application Data\my_folder и будет ли создана такая папка, если ее нет? Можно ли использовать абсолютный или относительный путь и переменные среды в нем?

jameszero
06-09-2007, 12:03
gora,

9. Скриптом Update Pack предусмотрены два типа аддонов для интеграции программ в WINDOWS - аддоны SYSOC и SVCPACK типов.
SYSOC аддоны при интеграции используют файлы txtsetup, sysoc, dosnet и состоят из cab архива с файлами программы, и установочного inf файла. SVCPACK аддоны содержат тихий инсталлятор и файл run (могут содержать обычный инсталлятор, в таком случае, в файл run пишется имя инсталлятора с параметрами тихого запуска)
SYSOC аддоны, являются более сложными, в изготовлении и тестировании, и требуют более профессионального подхода. Если в inf файле SYSOC аддона будет ошибка, то дальнейшая установка всей системы пойдёт с ошибками.
SVCPACK самый простой способ внедрить программу (аддон эконом класса :))
Плюсы/минусы я затрагивать не буду - сколько людей столько мнений, если всё сделано грамотно и без ошибок, то разницы в аддонах нет, однако аддон SYSOC типа, может косвенно показать хороший уровень подготовки автора.

10. В папку Files помещаются файлы в не сжатом виде, которые уже есть в дистибутиве WINDOWS. Скрипт Update Pack сжимает их, помещает в папку Compressed, а затем перезаписывает в дистрибутиве. В папку ForceCopy помешаются файлы, которые должны быть добавлены в дистрибутив в чистом виде, без дополнительной обработки (сжатия). Все файлы из ForceCopy необходимо прописать в txtsetup и dosnet аддона, эти записи добавляются в txtsetup.sif и dosnet.inf дистрибутива во время интеграции. Папка SVCPACK аддона копируется в I386 в чистом виде

11. Это вопрос к XXXler - автору Скрипта для создания секций копирования/удаления файлов (http://forum.oszone.net/post-434018-30.html) В принципе, можно самостоятельно обновлять файл i386.lst

12. Частично ответил в п.10. За описание синтаксиса не берусь, это материал на отдельную статью, посмотрите здесь (http://gosh.msfn.org/txtsetup.htm)

13. Файл addon.nfo опционален и каждый автор пишет его по своему, я в своих всегда пробиваю три пустых строчки, что бы было визуальное разделение аддонов.

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

gora
06-09-2007, 13:28
jameszero, 11.1А кто следит, чтобы не было коллизии между именами файлов из разных аддонах или ее там быть не может? »
15 Как прописать путь для копирования файлов, если его нет в dirids, например, %USERPROFILE%\Application Data\my_folder и будет ли создана такая папка, если ее нет? Можно ли использовать абсолютный или относительный путь и переменные среды в нем? »

jameszero
06-09-2007, 19:08
gora, файлы аддона обрабатываются в рамках одного inf-а и соответствующего ему cab-а, в разных cab-ах могут быть одинаковые файлы. Если не ставить несколько аддонов в одну и ту же папку, то проблем с совпадением имён не будет. Впрочем, за этим никто не следит)) пока нестыковок не было.

%USERPROFILE% ещё не существует во время установки аддонов, можно сделать через All Users
[DestinationDirs]
file1.exe.Copy=16419,"my_folder"

или даже так

[DestinationDirs]
file1.exe.Copy=24,"Documents and Settings\All Users\Application Data\my_folder"Папка my_folder будет создана если её нет.
В inf-ах путь должен быть в транскрипции dirids (http://msdn2.microsoft.com/en-us/library/ms790174.aspx), переменные среды не используются.

gora
06-09-2007, 20:37
%USERPROFILE% ещё не существует во время установки аддоновТогда разъясните как это работает.
По этому пути IE7Pro\Files\ForceCopy\SVCPACK\ лежит файл install_.cmd следующего содержания@echo off
mkdir "%USERPROFILE%\Application Data\IE7pro"
copy /y "%PROGRAMFILES%\IE7Pro\conf.ini" "%USERPROFILE%\Application Data\IE7pro"
copy /y "%PROGRAMFILES%\IE7Pro\plugin.ini" "%USERPROFILE%\Application Data\IE7pro"
del "%PROGRAMFILES%\IE7Pro\conf.ini"
del "%PROGRAMFILES%\IE7Pro\plugin.ini"
exit и запускается из файла Run командой install_.cmd. И это реально работает! После установки системы файлы таки оказываются в указанном месте.
в разных cab-ах могут быть одинаковые файлыА если файлы расположены не в cab-ах, а как в описанном выше случае в папках Svcpack. В этом случае тоже не будет коллизии имен?

jameszero
06-09-2007, 22:26
gora, я почему то решил, что вас интересует копирование файлов в рабочий, а не в дефолтный профиль.
В вашем примере, переменная %USERPROFILE% = профилю Default User, пока не будет создан реальный профиль.
из inf задача реализуется так
[DestinationDirs]
file.Copy=53,"Application Data\IE7pro"
--
Если в папках SVCPACK будут файлы с одинаковыми именами, то естественно, ничего хорошего не получится. Один файл будет перезаписан другим.

asmol
18-09-2007, 08:14
Сделал адднон HTMLINFO (http://forum.oszone.net/thread-90061.html) который формирует в корневой папке вашего дистрибитива файл ADDONS.HTM вместо ADDONS.TXT.

- Импортируется CSS стиль, взят из файла README.HTM дистрибутива
- Автоматически создается "Содержание", работают переходы к разделу и назад к содержанию
- Добавляются разделы "Ведение", "OEM информация" и "Благодарности"
- Добавляеются *.NFO файлы из всех установленных аддонов
- Если есть HTML.NFO из него берется заголовок и текст с HTML разметкой
- txt формат (ADDON.NFO) добавляется как преформатированная секция

igorgn
22-09-2007, 23:17
Вопрос на засыпку. Можно ли патчить наборами аддонов 64-разрядную XP?

vserd
23-09-2007, 13:22
Можно ли патчить наборами аддонов 64-разрядную XP »
IMHO, Общий ответ НЕТ. Т.к. обновления от х86, а тебе нужны х64. Если их заменить на х64, то ДА. Ну и программы можно попробовать ставить.

Всем
как можно в аддоне в Required задать условие OR (или)?
т.е. требуется аддон А или аддон Я. В текущей реализации идет объедененеие по И.

VitRom
07-10-2007, 17:13
asmol, идея ничего, но для полной крутизны надо бы ещё (или уже есть?) вставлять ссылку на твой файл где-нибудь в самом начале "официального" readme.htm

jameszero
08-10-2007, 10:31
Добавил в пост с утилитами контекстного меню (http://forum.oszone.net/post-599580-153.html) набор CAB Tool. Описание там же.

gora
08-10-2007, 12:09
Описание там же. »Считаю необходимым/крайне_желательным добавить описание в виде ридми в указанный архив - будет удобнее. А то потом вспоминай, что там и для чего.
И про ключ /REMOVE для 3_SendTo_CAB_Tool.exe тоже бы не плохо упомянуть.

jameszero
08-10-2007, 13:27
gora, учтено.

gora
08-10-2007, 13:51
Для удаления CAB Tool из системы, нужно извлечь из архива файл INSTALL.VBS и выполнить его с параметром /REMOVE Можно и не извлекать! можно просто указать 3_SendTo_CAB_Tool.exe /REMOVE и модуль старательно передаст незнакомый ключ в строку RunProgram="hidcon:\"cscript.exe\" INSTALL.VBS" ;)




© OSzone.net 2001-2012