Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Наборы обновлений для Windows XP/2003/Windows 7 » Инфо - Руководство по созданию аддонов (текущая версия)

Ответить
Настройки темы
Инфо - Руководство по созданию аддонов (текущая версия)

Аватара для volk1234

Старовер


Сообщения: 1708
Благодарности: 314


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: volk1234
Дата: 24-09-2010
Описание: новая версия на сайте

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

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

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

Отправлено: 19:19, 27-02-2008

 

Аватара для Zetoke

Ветеран


Сообщения: 822
Благодарности: 93

Профиль | Сайт | Отправить PM | Цитировать


volk1234, Хм... Насчет патча поподробнее пожалуйста. Как это все сделать?

Отправлено: 16:05, 20-04-2008 | #141



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

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


Аватара для volk1234

Старовер


Сообщения: 1708
Благодарности: 314

Профиль | Отправить PM | Цитировать


Ну я в смысле ошибок, разве не вы мне присылали вложения в виде 2х файлов: исправленый вариант и патч в виде строк исправленых?
Если не вы значит Vserd Я регулярно чищу личку, так что не помню. Спросите у Vserd'a чем он пользуется, но програмка мощная.
В любом случае спасибо. Еще раз просьба про ошибки пишите в PM. Другим участника форума не очень интересно лопатить десяток страниц с сообщениями типа: "исправте О на А"...
Про пробелы еще раз: редактор на сайте "умный" и может сам решить поставить тег "<br/>" что завершает строку, кроме того, blockquote,
выделяющая код синим, требует не меньше 1 пробела сверху и снизу, в некоторых случаях и 2 пробела захватывает, короче куча лишних пробелов, когда редактируешь текст, возможны некрасивые сдвиги...я тут бессилен.

-------

Ю-ху!


Отправлено: 16:42, 20-04-2008 | #142


Ветеран


Сообщения: 894
Благодарности: 137

Профиль | Отправить PM | Цитировать


Цитата volk1234:
мне присылали вложения в виде 2х файлов: исправленый вариант и патч в виде строк исправленых »
Я, использую winmegre как бесплатный, но на самом деле таких програм масса, как комерческих, так и бесплатных.

-------
Я не развожу политику в подписи
ПТН ПНХ


Отправлено: 10:35, 21-04-2008 | #143


Аватара для volk1234

Старовер


Сообщения: 1708
Благодарности: 314

Профиль | Отправить PM | Цитировать


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=
кто знает?

-------

Ю-ху!


Последний раз редактировалось volk1234, 25-04-2008 в 13:45.

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:28, 22-04-2008 | #144


Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день! Помогите, плиз, в создании 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

Что делаю не правильно?

Отправлено: 08:45, 25-04-2008 | #146


Аватара для Zetoke

Ветеран


Сообщения: 822
Благодарности: 93

Профиль | Сайт | Отправить PM | Цитировать


elwin, Вам в соседнюю тему Авторам аддонов. Здесь обсуждается только само руководство.

Отправлено: 13:22, 25-04-2008 | #147


Аватара для volk1234

Старовер


Сообщения: 1708
Благодарности: 314

Профиль | Отправить PM | Цитировать


Читайте учебник по 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
По идее так, поэксперементируйте еще с кавычками.

-------

Ю-ху!

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:41, 25-04-2008 | #148


Пользователь


Сообщения: 93
Благодарности: 4

Профиль | Отправить PM | Цитировать


Будет ли в руководстве информация по присвоению ( или применению. изменению, обьявлению) разрешений на файлы и папки.
Иногда бывает надо дать права юзеру на отдельные файлы-папки в Program Files
Пример- аддоны Next Sensor -(speedfanevents.cfg, speedfanparams.cfg, speedfansens.cfg) и SpeedFan -(NxSConf.ini)

Тема очень порадовала. Вся (надеюсь) информация в одном месте. А идея о едином стиле наименования аддонов прям пролила бальзам на душу - сам уже недели три об этом думаю - и тут попалась эта тема

Отправлено: 21:58, 02-05-2008 | #149


Аватара для volk1234

Старовер


Сообщения: 1708
Благодарности: 314

Профиль | Отправить PM | Цитировать


Цитата AleksandrG:
Будет ли в руководстве информация по присвоению ( или применению. изменению, обьявлению) разрешений на файлы и папки. »
Здесь - http://forum.oszone.net/post-777871-107.html

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

Код: Выделить весь код
[CopyFile]
file.exe

[CopyFile.Security]
"D:P(A;CI;GR;;;AU)...."
правда это применимо только к файлам. Разрешения для папок задавайте через скрипты, и на Т13 выполняйте, но учитывайте:
Цитата Руководства:
16. T9 – сохранение параметров, установка административных разрешений для системных папок и реестра
что вы не сможете до первой загрузки и создания хотябы одного пользователя задать разрешения для системных папок.

-------

Ю-ху!

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:58, 07-05-2008 | #150



Компьютерный форум OSzone.net » Автоматическая установка Windows » Наборы обновлений для Windows XP/2003/Windows 7 » Инфо - Руководство по созданию аддонов (текущая версия)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Как определить какая версия XP Корпоративка или Oem версия? Rock Microsoft Windows 2000/XP 2 10-01-2008 11:18
Текущая настройка безопасности ActiveX Motto Защита компьютерных систем 1 26-12-2004 19:05
Что такое текущая директория? Guest Программирование и базы данных 11 24-07-2004 00:19




 
Переход