PDA

Показать полную графическую версию : Руководство по созданию аддонов (текущая версия)


Страниц : 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17 18 19 20 21

Zetoke
20-04-2008, 16:05
volk1234, Хм... Насчет патча поподробнее пожалуйста. Как это все сделать?

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

vserd
21-04-2008, 10:35
мне присылали вложения в виде 2х файлов: исправленый вариант и патч в виде строк исправленых »
Я, использую winmegre как бесплатный, но на самом деле таких програм масса, как комерческих, так и бесплатных.

volk1234
22-04-2008, 02:28
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
volk1234,

http://support.microsoft.com/kb/164787
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/ierk/Ch18_b.mspx?mfr=true
http://www.microsoft.com/technet/prodtechnol/ie/ieak/techinfo/deploy/60/en/Infcmd.mspx?mfr=true

elwin
25-04-2008, 08:45
Добрый день! Помогите, плиз, в создании 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
elwin, Вам в соседнюю тему Авторам аддонов. Здесь обсуждается только само руководство.

volk1234
25-04-2008, 13:41
Читайте учебник по inf'ам.
RegisterOCXs это команда advpack.dll, а вы скорее всего запускаете файл через команду "Установить" контекстного меню.
Выше на 3 поста статья где это указано. Правда добавил только сегодня.
Важно! Именно через 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
Будет ли в руководстве информация по присвоению ( или применению. изменению, обьявлению) разрешений на файлы и папки.
Иногда бывает надо дать права юзеру на отдельные файлы-папки в Program Files
Пример- аддоны Next Sensor -(speedfanevents.cfg, speedfanparams.cfg, speedfansens.cfg) и SpeedFan -(NxSConf.ini)

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

volk1234
07-05-2008, 19:58
Будет ли в руководстве информация по присвоению ( или применению. изменению, обьявлению) разрешений на файлы и папки. »

Здесь - 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
Возник такой вопрос к гуру inf'фо-писания, а возможно ли с помощью inf манипуляции с пользователями??? Т.е. собсно создать, задать пасcворд, группу, и т.д.
А тут одна идея образовалось, это и было бы весьма удобно реализовать именно через inf'ы если есть такая возможность.

Vadikan
12-05-2008, 01:29
Наконец-то добрался до вашего руководства - сейчас читаю и параллельно отмечаю, где чего поправить с точки зрения грамматики/стилистики :) После того, как я закончу, я сам внесу нбх правки в статью, размещенную на сайте. Если у авторов с этим есть проблемы какие-нибудь - дайте мне знать.

Одна из вещей, на которую я обратил внимание, это различный подход к написанию терминов: inf скрипты, inf- скрипты, inf-скрипты. Предлагаю унифицировать этот момент по всему рук-ву. И делать так:
INF-файлы, CAB-файлы, INF-скрипты, т.е. расширение выделять заглавными буквами, затем тире, затем уже само слово. Такой подход был принят в нашем клубе переводчиков, когда мы столкнулись с MSТ-файлами, MSP-файлами и пр.

Если нет возражений, я выполню нбх правку сразу.

prokazzza
12-05-2008, 01:53
volk1234, пост 109 (http://forum.oszone.net/post-780927-109.html) 2.Полезные утилиты при работе с inf\cab файлами. Ведет на несуществующую страницу

volk1234
13-05-2008, 10:37
различный подход к написанию терминов: »

Согласен. Например команды INF- скрипта Microsoft называет Directives, то есть Инструкции, а не команды или параметры....

Сразу почитайте новую статью для руководства: Выполнение inf- файла через Rundll32.exe (ссылка в шапке), я как вернусь в город
добавлю ее в Руководство.

Ведет на несуществующую страницу »

Исправил. На конце ссылки не хватало 'l'. Лучше смотрите Руководство на сайте- там более отредактированная версия...

Если у авторов с этим есть проблемы какие-нибудь - дайте мне знать. »

??

volk1234
14-05-2008, 11:59
*Статья "Выполнение inf- файла через Rundll32.exe" добавлена в Руководство на сайте.

Vel_
14-05-2008, 17:18
Слушайте господа, почитал я тут руководство, одним словом дебри, что мама не горюй. А нету разве программ для создания аддонов? Я хочу создать аддон архиватора TUGZip, я посмотрел на аналогичные, например WinRar, это жесть. В этом я не разберусь ну уж никак.

volk1234
14-05-2008, 18:08
Vel
программ для создания аддонов нет. Зато на форуме есть ветка в которой можно заказать аддон, и можно использовать способ установки через SVCPACK, использовав родной инсталятор утилиты.

vserd
14-05-2008, 18:09
Vel_, Вы нарыватесь на офтопик. Никто не говорит что это легко, но в тоже время сказать что это очень сложно тоже нельзя. Читайте, изучайте, пробуйте, и вам откроется вся прелесть аддонов.

Вон Gora жалуется что нету отзывов: http://forum.oszone.net/post-802610.html#post802610
попробуйте создать с помощью этой программы (http://forum.oszone.net/post-690870-264.html).

Vel_
14-05-2008, 18:45
volk1234, вот это мне больше нравится, лучше заказать.

Vadikan
15-05-2008, 06:10
Я приступил к редактированию материала, поэтому прошу людей, имеющих доступ к правке, не вносить никаких изменений в существующие разделы статьи. Добавлять можно.




© OSzone.net 2001-2012