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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка Windows 2000/XP/2003 (http://forum.oszone.net/forumdisplay.php?f=32)
-   -   (статья) Руководство по работе с INF файлами (http://forum.oszone.net/showthread.php?t=66223)

Vadikan 25-05-2006 22:07 442438

(статья) Руководство по работе с INF файлами
 
Цитата:

Этот документ описывает синтаксис написания инсталляционных скриптов для Microsoft Windows, используя технологию INF. На INF-файлах построена вся база драйверов и большинство системных инсталляционных пакетов Microsoft Windows. Автор статьи - Алексей Кердиваре. Он любезно разрешил разместить документ на нашем ресурсе, хотя и предупредил, что статья так никогда и не была дописана до конца (в тексте вы встретите недописанные секции). Вашему вниманию предлагается последний авторский вариант статьи от 23 июля 2004 г. Пусть вас не смущает дата двухлетней давности. Документ является, пожалуй, наиболее полным справочником по INF файлам на русском языке. Статью для вас отредактировал и даже дополнил, участник конференции Oszone Владимир "vek" Ходыгин.
Читать дальше...

vampik 26-05-2006 02:03 442498

Кстати, после изучения inf-файлов из апдейт-пака, стал интересен момент - RegisterOCXs vs RegisterDLLs vs запуск regsvr32 из RunOnce - что правильнее? У Petya Vase4kin используются все три варианта. Что касается первых двух, во всех неофициальных руководствах по инфам упоминается только RegisterOCXs, а на сайте Microsoft наоборот, нашел только упоминание RegisterDLLs.

ProkVS 14-02-2007 07:55 549732

Мож у кого завалялась программка inf2reg от Shadrach, залейте куда-нить плз! Порыл в инете - визде битые ссылки... :(
Спасибо!

Proektor 14-02-2007 10:56 549789

ProkVS
http://rapidshare.com/files/16384930/Inf2Reg.7z.html

Xpe6eT 18-01-2008 01:13 719620

Помогите, плиз, с inf скриптом
 
Необходимо создать ярлык в "...\Главное меню\Программы\Утилиты\qwerty\qwerty.lnk" к файлу программы лежащей в %windir%\system32..., плюс необходимо запускать прогу с параметром...

делаю так:

[Optional Components]
qwerty

[qwerty]
ProfileItems=qwerty.Link

[qwerty.Link]
Name="qwerty"
CmdLine=11,"qwerty.exe ///param"
SubDir=%Util%
WorkingDir=11

[Strings]
Util="Утилиты\qwerty"

... ярлык не создаётся, в чём трабла?

jameszero 18-01-2008 13:45 719945

Xpe6eT
Код:

[Version]
signature = $CHICAGO$
SetupClass=BASE

[Optional Components]
qwerty

[qwerty]
ProfileItems=qwerty.Link

[qwerty.Link]
Name="qwerty"
CmdLine=11,,"qwerty.exe" "/param"
SubDir=%Util%
WorkingDir=11

[Strings]
Util="Утилиты\qwerty"


bish 23-01-2008 05:49 723360

Откуда в секции [DestinationDirs] INF - файла берётся цифра 16422.
В руководстве и другой литературе нет такого значения числового номера каталога.
Вопрос: Полный список этих номеров где найти?
Ещё: реальный путь: -1 или 1(в другой литературе просто 1, а -1 вообще нет)

amel27 24-01-2008 04:34 724221

Цитата:

Цитата bish
Полный список этих номеров где найти? »

http://gosh.msfn.org/Files/DirIds.txt

bish 16-03-2008 03:18 761396

В секции [Optional Components] может быть параметр InstallDefault, который принимает значения 0 или 1.
Так вот вопрос:
какое точно значение этого параметра должно быть для того, чтобы компонент не устанавливался,
т.е. в списке усановленных компонент Windows галочка была-бы не поставлена по-умолчанию ?
Пробовал InstallDefault=0 (логично вроде) - компонент устанавливается.
Перезаписать на 1 и [b][u]проверить[u][b] нет в данный момент возможности.

bish 28-03-2008 07:54 769492

Цитата:

Цитата bish
В секции [Optional Components] может быть параметр InstallDefault »

Проверил: InstallDefault=1 - также компонент устанавливается.
Вопрос:
Как(что) тогда сделать, чтобы при установки winXP компонент не устанавливался по-умолчанию, т.е в списке усановленных компонент Windows галочка была-бы не поставлена ???

vek 28-03-2008 09:13 769527

Параметр Modes=0,1,2,3 в секции [Optional Components] отвечает за установку компонент Windows.
При значении:
Modes=0,1,2,3 компонент установиться по умолчанию.
В случае заккоментированной строки:
;Modes=0,1,2,3 компонент по умолчанию установлен не будет, а его "доустановка" будет возможна из апплета "Установка компонент Windows"
При отсутствии параметра Modes компонент установлен не будет и его доустановка будет недоступна.

biork 19-11-2008 06:23 956552

"Добавление приложения в пользовательскую и общую автозагрузку при входе в систему" - этот раздел недописан или по каким то причинам не отображается?

Vadikan 19-11-2008 06:49 956561

biork, не дописан - рук-во было получено от автора "как есть".

Nun-Nun 23-04-2009 13:18 1101996

Народ, подскажите, плиз, в таком вопросе (заранее прошу прощения за чайниковость): есть один плагинчик для Total Commander-а, хочу создать автоустановку с помощью zip-файла (не exe!). Изначально установка плагина требует выполнения нескольких манипуляций, от которых хотелось бы избавиться:
1) с помощью inf-файла данные вносятся в настройки Total Commander-а;
2) с помощью reg-файла данные вносятся в системный реестр.

Вот их содержание:

1) содержание inf-файла:

[plugininstall]
Setting.reg
description=NFO View 1.5 lister plugin for nfo and diz files.
descriptionRUS=NFO View 1.5 - плагин для просмотра файлов nfo и diz.
type=wlx
file=nfoview.wlx
defaultdir=NFO View


2) Содержание reg-файла:

[HKEY_LOCAL_MACHINE\SOFTWARE\ISSoft]

[HKEY_LOCAL_MACHINE\SOFTWARE\ISSoft\NFO View for TC]
"ColorFon"=dword:00ffffff
"ColorFont"=dword:00000000
"ColorFontURL"=dword:00ff0000
"CTPath"="%COMMANDER_PATH%\\Plugins\\wlx\\NFO View\\Profiles\\"
"LangFile"="%COMMANDER_PATH%\\Plugins\\wlx\\NFO View\\Lang\\Rus.lng"
"LPath"="%COMMANDER_PATH%\\Plugins\\wlx\\NFO View\\Lang\\"
"NameFont"="Lucida Console"
"ShowEmot"=dword:00000001
"ShowURL"=dword:00000001
"SizeFont"=dword:00000008



Попытался содержание обоих файлов запихать в один общий inf, но этот inf нормально не работает: в TC из zip-а (при автозапуске) выполняется только секция [plugininstall], остальное игнорируется, а по команде "Установить" из контекстного меню в TC (правая кнопка мышки) выполняется всё остальное, но игнорируется секция [plugininstall]. Как всё это дело заставить нормально работать из единого inf-файла, вложенного в zip-файл? У меня дело застопорилось вот на таком варианте:

[Version]
Signature="$CHICAGO$"
SetupClass=BASE

[DefaultInstall]
AddReg=Reestr

[Reestr]
HKLM,"%PathReg%","ColorFon",0x00010001,16777215
HKLM,"%PathReg%","ColorFont",0x00010001,0
HKLM,"%PathReg%","ColorFontURL",0x00010001,16711680
HKLM,"%PathReg%","CTPath",,"%COMMANDER_PATH%\Plugins\wlx\NFO View\Profiles\"
HKLM,"%PathReg%","LangFile",,"%COMMANDER_PATH%\Plugins\wlx\NFO View\Lang\Rus.lng"
HKLM,"%PathReg%","LPath",,"%COMMANDER_PATH%\Plugins\wlx\NFO View\Lang\"
HKLM,"%PathReg%","NameFont",,"Lucida Console"
HKLM,"%PathReg%","ShowEmot",0x00010001,1
HKLM,"%PathReg%","ShowURL",0x00010001,1
HKLM,"%PathReg%","SizeFont",0x00010001,8

[Strings]
Pathreg="SOFTWARE\ISSoft\NFO View for TC"

[plugininstall]
Setting.reg
description=NFO View 1.5 lister plugin for nfo and diz files.
descriptionRUS=NFO View 1.5 - плагин для просмотра файлов nfo и diz.
type=wlx
file=nfoview.wlx
defaultdir=NFO View

amel27 24-04-2009 03:54 1102611

Nun-Nun, по ходу INF-файл TC это обычный INI-файл, используемый установщиком и не имеет ничего общего с INF-файлами Windows... Копайте в сторону интеграции плагинов в TC:

Система - Total Commander XP (сборка)
Утилиты - [addon] Total Commander Lite/Power/ExtremePack

semiono 28-01-2010 06:13 1331959

Как скопировать файл(ы) из system32 в inf-директорию или в другую...
К примеру
FileCopy "%WinDir%\system32\calc.exe" to "%SelfInfDir%\subdir\" .

Либо глючит либо не поддерживается :(

semiono 29-01-2010 14:40 1333477

Либо да либо нет? Можно копировать из "не скрипт директории" ?? Ау! :unsure:

semiono 29-01-2010 23:08 1333915

Кстати, там ошибка в статье...
0x00000002 (FLG_ADDREG_NOCLOBBER)
Prevent a given value from replacing the value of an existing value entry.
То-есть 0x2 а не как там 20 ;-

BigBoo 23-11-2010 23:26 1549996

Кто-нибудь знает, можно ли при создании ярлыка с помощью inf-файла задать ярлыку собственную иконку? В руководстве и в инете нигде не нашёл упоминания об этом.
Например, ярлык ссылается на vbs-скрипт, так хотелось бы видеть у него не невзрачную иконку vbs-файла, а свою, сообразно тематике скрипта.

Amigos 24-11-2010 07:59 1550140

Цитата:

Цитата BigBoo
при создании ярлыка с помощью inf-файла задать ярлыку собственную иконку? »

http://oszone.net/display.php?id=3827
Цитата:

Path - Полный путь до программы, заданный с помощью переменных путей.
workdir - Полный путь к рабочей директории (к папке, содержащей программу), заданный с помощью переменных путей.
GROUPNAME - имя группы ярлыков в меню ПУСК, которое видит пользователь. Может задаваться переменной, описанной в разделе [Strings]
PathIcon - Полный путь к библиотеке DLL,содержащей изображение иконки, заданный с помощью переменных путей. Если этот параметр опущен, программа установки ищет иконку в файле, указанном в параметре CmdLine
IndexValue - Этот параметр указывает какую именно иконку в библиотеке DLL необходимо использовать. При отсутствии этого параметра, программа установки будет брать первую иконку из файла, указанного в параметре CmdLine

HotkeyValue - Этот параметр задает значение "горячей клавиши" для вызова программы.
DESCRIPTION - Подсказка, выводимая пользователю при наведении указателя мыши на ярлык к программе. Может задаваться переменной, описанной в разделе [Strings]

BigBoo 24-11-2010 13:33 1550372

Цитата:

Цитата Amigos
PathIcon - Полный путь к библиотеке DLL »

- так это же из темы про INI-файлы. Пишу к примеру:
Код:

IconPath=11,SHELL32.dll
IconIndex=14

Иконка НЕ меняется. Или какой-то другой формат записи, или для INF не работает?

jameszero 24-11-2010 15:48 1550517

BigBoo
Код:

IconPath=11,,SHELL32.dll
IconIndex=14


BigBoo 24-11-2010 17:28 1550634

jameszero, Amigos, - спасибо, всё работает! :) Странно только что эта тема в учебнике находится только в главе "Работа с INI-файлами", не сразу найдёшь и догадаешься, что то же можно использовать для INF.

Amigos 24-11-2010 18:38 1550706

Цитата:

Цитата BigBoo
Работа с INI-файлами »

имеется ввиду "как изменять системные ini при помощи inf файлов"
в win95 ini файлы в каталоге c:\WINDOWS\ ещё что то значили

BigBoo 19-01-2011 19:25 1592518

Интересно, а можно ли в INF-файле организовать проверку ошибок? То есть например, если команда на удаление папки с программой в секции деинсталляции возвращает ошибку, вывести окно "Требуется перезагрузка системы... Да/Нет" и далее после перезагрузки происходит окончательное удаление. Вопрос родился вот почему: дерегистрирую DLL в папке с программой, но она всё-равно не удаляется, так как заблокирована процессом Explorer. Ну и сами понимаете, пришибать и заново запускать Explorer не хотелось бы.

Bodya.N 19-01-2011 21:59 1592625

Вложений: 1
BigBoo, для вывода окна с вопросом о перезагрузке существует параметр "SmartReboot".О нем упоминается здесь .А дальше действия на удаление "занятых системой" файлов прописываем в RunOnceEx.Вообщем чтобы понятней было пример .inf-а прикрепил

BigBoo 20-01-2011 01:01 1592767

Bodya.N, спасибо за пример INF-файла с вопросом о перезагрузке, но вопрос немного в другом:
Цитата:

Цитата BigBoo
можно ли в INF-файле организовать проверку ошибок? »

Делаю аддон по расширению контекстного меню проводника и столкнулся с двумя "несовсем удаляемыми" DLL-ками. Не пойму с чем это связано, но после дерегистрации они оказываются то заблокированы, то нет, короче, то удаляюся, то нет. И вот хотелось бы ТОЛЬКО в случае безуспешного удаления увидеть окно "Требуется перезагрузка системы..."

p.s. Вопроса бы также не было, если понять чем блокируется злосчастная DLL-ка. Перезапускать Explorer помогает, но если запущен Total Commander - нет, его тоже нужно закрыть, и только в случае отсутствия каких-то запущенных программ - всё ОК! Дерегистрация проходит успешно, созданный пункт из контекстного меню проводника исчезает. В диспетчере не вижу никаках упоминаний о библиотеке и созданных процессов программой. Не хочется создавать новую тему, ведь не зря некоторые деинсталяторы предлагают перезагрузку, или всё-таки это как-то решаемо?

BigBoo 21-01-2011 13:51 1593928

Нашёл на форуме:
Код:

SmartReboot=I - если перезагрузка необходима, тогда спросить у пользователя.
Интересно, на основании чего делается вывод о необходимости перезагрузки? Попробовал применить данную команду - окно о перезагрузке не увидел ни при каких условиях. Или этот ключ работает как-то по другому? Если было бы ОК, то предыдущий вопрос был решён.

BigBoo 09-02-2011 20:19 1608767

Подскажите пожалуйста, можно ли устанавливать и как удалять шрифты с помощью INF файла?

Amigos 10-02-2011 06:58 1609025

BigBoo, в теории да
1 скопировать файлы шрифтов в c:\WINDOWS\Fonts\
2 внеси в реестр новые шрифты в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts

оба пункта можно делать через inf.

но делать инструментами типа [решено] Добавление своей коллекции шрифтов при установке WindowsXP и правильней, и проще, и удобней, и понятней, и работает в win9x

BigBoo 10-02-2011 12:22 1609211

Amigos, делаю аддон программы, вносящей пару шрифтов в папку c:\WINDOWS\Fonts\, поэтому использовать другой аддон не удобно, проще через INF. Также хотелось, чтобы при деинсталляции программы внесённые шрифты удалялись. Удаляю их ключи в реестре, а сами файлы не удаляются :( , только после перезагрузки из RunOnceEx. И устанавливаются кстати тоже после неё. Интересно, ведь родному инсталлятору перезагрузка не нужна! Возможно ли как-то устанавливать / удалять шрифты через INF без перезагрузки?


Время: 10:58.

Время: 10:58.
© OSzone.net 2001-