Відмінності між версіями «формат файлу модуля»

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук
 
Рядок 289: Рядок 289:
 
<table width="703" border=1>
 
<table width="703" border=1>
 
<tr><td width="63">regType</td>
 
<tr><td width="63">regType</td>
<td width="680">визначає тип інформації, що буде зберігатись як значення даних. Цей параметр може мати одне із наступних значень:<br>
+
<td width="680">визначає тип інформації, що буде зберігатись як значення даних.  
 +
Цей параметр може мати одне із наступних значень:<br>
 
0x0, (REG_NONE) створити тільки ключ, значення ні<br>
 
0x0, (REG_NONE) створити тільки ключ, значення ні<br>
 
0x1, (REG_SZ) рядок<br>
 
0x1, (REG_SZ) рядок<br>
Рядок 296: Рядок 297:
 
0x4, (REG_DWORD) 32-бітний номер<br>
 
0x4, (REG_DWORD) 32-бітний номер<br>
 
0x7, (REG_MULTI_SZ) декілька рядків<br>
 
0x7, (REG_MULTI_SZ) декілька рядків<br>
* Примітка:  
+
* Примітка: <regType> повинно розпочинатись з "0x" (в нижньому регістрі)!</td>
<regType>  
+
повинно розпочинатись з "0x" (в нижньому регістрі)!</td>
+
 
</tr>
 
</tr>
 
<tr><td>regKey</td>
 
<tr><td>regKey</td>
Рядок 314: Рядок 313:
 
Приклад:<br>
 
Приклад:<br>
 
<FONT COLOR=0000cc>
 
<FONT COLOR=0000cc>
0x1, &quot;Microsoft\Windows NT\CurrentVersion\Fonts&quot;, <br>&quot;Tahoma (TrueType)&quot;,&quot;TAHOMA.TTF&quot;<br>
+
0x1, &quot;Microsoft\Windows NT\CurrentVersion\Fonts&quot;, &quot;Tahoma (TrueType)&quot;,&quot;TAHOMA.TTF&quot;<br>
 
0x2, &quot;Control Panel\desktop&quot;, &quot;WallPaper&quot;, &quot;%systemroot%\system32\nu2.bmp&quot;<br>
 
0x2, &quot;Control Panel\desktop&quot;, &quot;WallPaper&quot;, &quot;%systemroot%\system32\nu2.bmp&quot;<br>
0x3, &quot;ControlSet001\Control\TimeZoneInformation&quot;, &quot;DaylightStart&quot;,<br>\
+
0x3, &quot;ControlSet001\Control\TimeZoneInformation&quot;, &quot;DaylightStart&quot;,\
00,00,04,00,00,01,00,02,00,00,00,00,00,00,00,00
+
00,00,04,00,00,01,00,02,00,00,00,00,00,00,00,00<br>
0x4, &quot;ControlSet001\Control\GraphicsDrivers\DCI&quot;, <br>&quot;Timeout&quot;, 0x7
+
0x4, &quot;ControlSet001\Control\GraphicsDrivers\DCI&quot;, &quot;Timeout&quot;, 0x7<br>
0x7,<br> &quot;ControlSet001\Services\VgaSave\Device0&quot;, &quot;InstalledDisplayDrivers&quot;, &quot;vga&quot;, &quot;framebuf&quot;, <br>&quot;vga256&quot;, &quot;vga64k&quot;
+
0x7, &quot;ControlSet001\Services\VgaSave\Device0&quot;, &quot;InstalledDisplayDrivers&quot;, &quot;vga&quot;, &quot;framebuf&quot;, <br>&quot;vga256&quot;, &quot;vga64k&quot;
 
</FONT>
 
</FONT>
 +
<BR><FONT SIZE="+1" COLOR="#660000">Розділ SetupReg.AddReg</FONT><BR>
 +
<tt>SetupReg.AddReg[.build]</tt><br>
 +
<br>
 +
Додавання ключів реєстру в вітку реєстру "SetupReg.hiv" .
 +
<br>
 +
Синтаксис відповідає розділу Software.AddReg<br>
 +
 +
<BR><FONT SIZE="+1" COLOR="#660000">Розділ Default.AddReg</FONT><BR>
 +
 +
<tt>Default.AddReg[.build]</tt><br>
 +
<br>
 +
Додавання ключів реєстру в HKEY_CURRENT_USER.<br>
 +
Синтаксис відповідає розділу Software.AddReg<br>
 +
<BR><FONT SIZE="+1" COLOR="#660000">Розділ Software.DelReg</FONT><BR>
 +
<tt>Software.DelReg[.build]</tt><br>
 +
<br>
 +
Видалення ключів реєстру із вітки реєстру "Software".
 +
<br>
 +
Розділ має наступні формат:<tt><br>
 +
regKey[, regValue]</tt><br>
 +
<br>
 +
де...<br>
 +
<table border=1>
 +
<tr><td>regKey</td>
 +
<td>визначає назву ключа для видалення (включаючи всі значення) як рядок.</td>
 +
</tr>
 +
<tr><td>regValue</td>
 +
<td>визначає назву значення для видалення як рядок.</td>
 +
</tr>
 +
</table>
 +
<BR><FONT SIZE="+1" COLOR="#660000">Розділ Default.DelReg</FONT><BR>
 +
<tt>Default.DelReg[.build]</tt><br>
 +
<br>
 +
Видалення ключів реєстру із вітки реєстру "Default".
 +
<br>
 +
Синтаксис відповідає розділу Software.DelReg<BR>
 +
 +
 +
<BR><FONT SIZE="+1" COLOR="#660000">Розділ AddLine</FONT><BR>
 +
<tt>AddLine[.build]</tt><br>
 +
<br>
 +
Додавання рядків в розділ.
 +
<br>
 +
Рядки в розділі AddLine мають наступний формат:<br>
 +
<tt>Filename,Section,StringToAdd</tt><br>
 +
<br>
 +
де...
 +
<table border=1>
 +
<tr><td>Filename</td>
 +
<td>імя файлу, в який необхідно додати рядки.</td>
 +
</tr>
 +
<tr><td>Section</td>
 +
<td>назва розділу.</td>
 +
</tr>
 +
<tr><td>LineToAdd</td>
 +
<td>рядок для додавання розділу.</td>
 +
</tr>
 +
</table>
 +
<br>
 +
Приклад:<br>
 +
<FONT COLOR=#0000cc>
 +
&quot;netmscli.inf&quot;, &quot;MSClient.DelReg&quot;, &quot;HKLM, Software\Microsoft\Rpc\SecurityService, 9&quot;<BR>
 +
</FONT>
 +
<BR><FONT SIZE="+1" COLOR="#660000">Розділ DelLine</FONT><BR>
 +
<tt>DelLine[.build]</tt><br>
 +
<br>
 +
Видалення рядків із файлу.
 +
<br>
 +
Рядки в розділі DelLine мають наступний формат:<br>
 +
<tt>Filename,Section,StringToDel</tt><br>
 +
<br>
 +
де...<br>
 +
<table width="484" border=1>
 +
<tr><td>Filename</td>
 +
<td>імя файлу, із якого необхідно видалити рядки.</td>
 +
</tr>
 +
<tr><td>Section</td><td>назва розділу.</td>
 +
</tr>
 +
<tr><td>StringToDel</td>
 +
<td>рядок для видалення. Не вимагається точного співпадання, будь-які рядки, що розпочинаються з &quot;StringToDel&quot; ,будуть видалені.</td>
 +
</tr>
 +
</table>
 +
<br>
 +
Приклад:<br>
 +
<FONT COLOR=#0000cc>
 +
&quot;netmscli.inf&quot;, &quot;MSClient.Browser.AddReg&quot;, &quot;HKR, Parameters, MaintainServerList,&quot;<BR>
 +
</FONT>
 +
<BR><FONT SIZE="+1" COLOR="#660000">Розділ SetValue</FONT><BR>
 +
<tt>SetValue[.build]</tt><br>
 +
<br>
 +
Записує значення в файл.
 +
<br>
 +
Рядки в розділі SetValue мають наступний формат:<br>
 +
<tt>Filename,Section,Key,Value</tt><br>
 +
<br>
 +
де...<br>
 +
<table border=1>
 +
<tr><td>Filename</td>
 +
<td>імя файлу, в який буде виконуватись запис значення.</td>
 +
</tr>
 +
<tr><td>Section</td><td>назва розділу.</td>
 +
</tr>
 +
<tr><td>Key</td>
 +
<td>Ключ,в який буде записуватись значення.</td>
 +
</tr>
 +
<tr><td>Value</td>
 +
<td>дані.</td>
 +
</tr>
 +
</table>
 +
<br>
 +
Приклад:<br>
 +
<FONT COLOR=#0000cc>
 +
&quot;netmscli.inf&quot;, &quot;Alerter_Service_Inst&quot;, &quot;StartType&quot;, &quot;3&quot;<br>
 +
</FONT>
 +
<br>
 +
Використовуйте <tt>Filename,Section,Key</tt> для видалення ключа<br>
 +
Використовуйте <tt>Filename,Section</tt> для видалення всього розділу <br>
 +
<BR><FONT SIZE="+1" COLOR="#660000">Розділ Append</FONT><BR>
 +
<tt>Append[.build]</tt><br>
 +
<br>
 +
Додає файл до іншого файлу.
 +
<br>
 +
Рядки в розділі Append мають наступний формат:<br>
 +
<tt>Filename,FilenameToAppend</tt><br>
 +
<br>
 +
де...<br>
 +
<table border=1>
 +
<tr><td>Filename</td>
 +
<td>імя файлу, в який здійсниться додбавлення даних.</td>
 +
</tr>
 +
<tr><td>FilenameToAppend</td>
 +
<td>імя файлу, що містить дані для добавлення.</td>
 +
</tr>
 +
</table>
 +
<br>
 +
Приклад:<br>
 +
<FONT COLOR=#0000cc>
 +
<tt>nu2menu.xml, penero_nu2menu.xml</tt>
 +
</FONT>
 +
<BR>
 +
<BR><FONT SIZE="+1" COLOR="#660000">Змінні</FONT><BR>
 +
В більшості рядків файлу модуля можуть використовуватись спеціальні змінні PE-Builder:<br>
 +
Синтаксис: <tt>@variable@</tt><br>
 +
де...<br>
 +
<table width="570" border=1>
 +
<tr>
 +
  <th>змінна</th>
 +
<th>являїться...</th>
 +
</tr>
 +
<tr><td>Program</td>
 +
<td>Містить програми-складальника (за замовченням PE-Builder)</td>
 +
</tr>
 +
<tr><td>Version</td>
 +
<td>Версія програми-складальщика</td>
 +
</tr>
 +
<tr><td>IsoFile</td>
 +
<td>Повний шлях та імя файлу ISO-образу</td>
 +
</tr>
 +
<tr><td>OutDir</td>
 +
<td>Повний шлях до коталогу призначення</td>
 +
</tr>
 +
<tr><td>SourcePath</td>
 +
<td>Повний шлях до коталогу джерела</td>
 +
</tr>
 +
<tr><td>PluginDir</td>
 +
<td>Повний шлях до коталогу даного модуля</td>
 +
</tr>
 +
<tr><td>PluginFile</td>
 +
<td>Повний шлях та імя файлу даного файлу модуля</td>
 +
</tr>
 +
<tr><td>Language</td>
 +
<td>Мова, вибрана в даний час</td>
 +
</tr>
 +
<tr><td>Verbose</td>
 +
<td>Інформаційний режим (0 - ввімкнений, 1 - вимкнений)</td>
 +
</tr>
 +
<tr><td>Build</td>
 +
<td>Номер збірки Windows (2600 відповідає XP, <br>
 +
  3790 відповідає Server 2003)</td>
 +
</tr>
 +
</table>
 +
<br>
 +
Приклад:<br>
 +
<FONT COLOR=#0000cc>
 +
<tt>[SourceDisksFiles]</tt><br>
 +
<tt>program.exe=2,,3</tt><br>
 +
<tt>lang\@[email protected]=2,,3</tt><br>
 +
<br>
 +
</FONT>
 +
Де <tt>lang\@[email protected]</tt> буде <tt>lang\ukrainian.lng</tt> (якщо вибрано українську мову).<br>

Поточна версія на 15:05, 23 грудня 2008

Файл модуля PEBuilder

Основним .inf файлом PE Builder являеться файл pebuilder.inf.Даний файл не рекомендується змінювати!
При необхідності внести зміни можливо використовуючи файл модуля.Всі модулі знаходяться каталозі plugin. Кожний .inf файл в каталозі plugin, що містить розділ "PEBuilder" вважається модулем PE Builder. Використовуйте кнопку Подключить/Откл...
у вікні Модулів для підклучення чи відключення модулів.



Створення модуля

Кодування .inf файлу модуля повинно бути ASCII, а не Unicode. Рядки, що розпочинаються з ";" ігноруються (використовоються для коментарів). Кожний файл модуля повинен розпочинатися із наступних рядків:

; PE Builder v3 plug-in INF file
; Created by Bart Lagerweij
; http://www.nu2.nu/pebuilder/
;
; Short description of what the plugin does...

[Version]
Signature= "$Windows NT$"

[PEBuilder]
Name="NiceNameOfPlugin"
Enable=0
Help="pluginhelp.htm"

Зверніть увагу, що необхідно вімкнути в файл розділ [Version] із рядком Signature= "$Windows NT$". В іншому випадку .inf файл не буде розпізнаний функцією установки.

Для створення модулів необхідно використовувати наступні команди:

Розділ PEBuilder

При створені .inf файл повинен містити розділ [PEBuilder]!

Name Назва модуля
Enable статус модуля

0 - Відключений

1 - Підключений
Help імя файлу допомоги для модуля. Це може бути текстовий, html, doc, pdf або будь-який інший тип файлу. PE Builder використовує функцію ShellExecute() для відкриття документу згідно асоціації файлу по замовченню.
Config імя файлу конфігурації



Розділ WinntDirectories

Розділ WinntDirectories має наступний формат:
directoryID=dirname[, attribute]
де...

directoryID ідентифікатор (номер) каталогу
В .inf файлі модуля можливо використовувати символи 'a'-'z' для динамічного привласнення номеру...
dirname імя каталогу. Якщо в імені каталогу міститься пробіли, їх необхідно заключити його в "подвійні кавички".
attribute числове значення для вмикання/вимикання деяких опцій

Значення:
1 - Завжди створювати дану теку (навіть якщо вона порожня)
2 - Створювати теку в кореневому калалозі (в \ а не в \i386).
Для комбінації опцій, необхідно просто додати їх значення...

Значення по замовченню - 0.


Приклад: [WinntDirectories]

Завжди створювати теку в кореневому каталозі з іменем "BartPE"

a="BartPE",3

Створювати теки в кореневому каталозі "Project\BartPE\Source"

b="Project\BartPE\Source",3

Створювати теки в каталозі i386 з назвою "extra\files"

c="extra\files",1


Список деяких (найбільш використовуваних) ідентифікаторів каталогів:

ID Каталог Примітка
30000 [кореневий] Кореневий каталог призначення PE Builder
1\ Кореневий каталог системи (на CD це каталог \i386, на жорстком диску це каталог \minint)
2system32
3system32\config
4system32\drivers
5system
17system32\drivers\etc
20inf
21Help
22Fonts
24msagent\intl
52msagent
124WinSxS
125WinSxS\Manifests
252WinSxS\Policies


PE Builder використовує ідентифікатори каталогів, що розпочинаються з 30000. Ідентифікатор 30000 використовується для позначення каталогу призначення, 30001 та вище динамічно використовуються РE Builder.

Розділ SourceDisksFiles


Цей розділ використовується для копіювання файлів.Під час добавлення номеру збірки операційної системи після назви розділу,цей розділ буде використовуватись тільки в тому випадку, якщо джерело відповідає вказаній збірці.

Збірка Версія
2600Windows XP
3790Server 2003


Розділ SourceDisksFiles має наступний формат:
filename=directoryID[, filenameRenamed][, attribute]

де...

filename імя файлу для копіювання
directoryID номер (ідентифікатор) цільового каталогу.
filenameRenamed цільове імя файлу, якщо потрібго перейменування.
attributeчислове значення для вмикання/вимикання деяких опцій

значення:
1 - використовується для функції pluginCheck(). Перевіряє, чи існує вказаний файл в тій же текі, де знаходиться .inf файл перед підключенням або продовженням роботи.
2 - не виконує розпакування файлу.
4 - копіювати файл тільки в тому випадку, якщо він існує. Ігнорувати якщо файл відсутній.
8 - змінити імя файлу в верхній регістр. При створені ISO-образу PE Builder змінює регістр імен файлів у верхній, що необхідно для завантаження з CD.

Значення за замовченням - 0.




Приклад: [WinntDirectories]

Завжди створювати теку в кореневому каталозі з іменем "BartPE"

a="BartPE",3

Створювати теки в кореневому каталозі "Project\BartPE\Source"

b="Project\BartPE\Source",3

Створювати теки в каталозі i386 з назвою "extra\files"

c="extra\files",1


Список деяких (найбільш використовуваних) ідентифікаторів каталогів:

ID Каталог Примітка
30000 [кореневий] Кореневий каталог призначення PE Builder
1\ Кореневий каталог системи (на CD це каталог \i386, на жорстком диску це каталог \minint)
2system32
3system32\config
4system32\drivers
5system
17system32\drivers\etc
20inf
21Help
22Fonts
24msagent\intl
52msagent
124WinSxS
125WinSxS\Manifests
252WinSxS\Policies


PE Builder використовує ідентифікатори каталогів, що розпочинаються з 30000. Ідентифікатор 30000 використовується для позначення каталогу призначення, 30001 та вище динамічно використовуються РE Builder.
Розділ SourceDisksFiles


Цей розділ використовується для копіювання файлів.Під час добавлення номеру збірки операційної системи після назви розділу,цей розділ буде використовуватись тільки в тому випадку, якщо джерело відповідає вказаній збірці.

Збірка Версія
2600Windows XP
3790Server 2003


Розділ SourceDisksFiles має наступний формат:
filename=directoryID[, filenameRenamed][, attribute]

де...

filename імя файлу для копіювання
directoryID номер (ідентифікатор) цільового каталогу.
filenameRenamed цільове імя файлу, якщо потрібго перейменування.
attributeчислове значення для вмикання/вимикання деяких опцій

значення:
1 - використовується для функції pluginCheck(). Перевіряє, чи існує вказаний файл в тій же текі, де знаходиться .inf файл перед підключенням або продовженням роботи.
2 - не виконує розпакування файлу.
4 - копіювати файл тільки в тому випадку, якщо він існує. Ігнорувати якщо файл відсутній.
8 - змінити імя файлу в верхній регістр. При створені ISO-образу PE Builder змінює регістр імен файлів у верхній, що необхідно для завантаження з CD.

Значення за замовченням - 0.


Розділ SourceDisksFolders


Цей розділ використовується для копіювання тек з файлами. При додаванні номеру збірки операційної системи

після назви розділу, цей розділ буде використовуватись тільки в тому випадку, якщо джерело відповідає вказаній збірці.</p>

Розділ SourceDisksFolders має наступний формат:
sourcepath=directoryID

де...

sourcepath шлях/тека в джерелі для копіювання. Це точна копія, не виконується декомпресій або видобування файлів!
directoryID номер (ідентифікато) цільвого каталогу.


Приклад: [WinntDirectories] a="Programs\openoffice",2 [SourceDisksFolders]

Коли тека openoffice являється каталогом модуля

openoffice=a [SourceDisksFolders]

Коли тека openoffice знаходиться в c

c:\openoffice=a

Розділ Software.AddReg

Додавання ключів реєстру в HKEY_LOCAL_MACHINE\SOFTWARE.

Розділ має наступний формат:
regType, regKey, regValue, regData

де...

regType визначає тип інформації, що буде зберігатись як значення даних.

Цей параметр може мати одне із наступних значень:
0x0, (REG_NONE) створити тільки ключ, значення ні
0x1, (REG_SZ) рядок
0x2, (REG_EXPAND_SZ) рядок (з переліком змінних середовища)
0x3, (REG_BINARY) двійкові дані
0x4, (REG_DWORD) 32-бітний номер
0x7, (REG_MULTI_SZ) декілька рядків

  • Примітка: <regType> повинно розпочинатись з "0x" (в нижньому регістрі)!
regKey визначає назву ключа як рядок
regValue визначає назву значення як рядка
regData значення


Приклад:
0x1, "Microsoft\Windows NT\CurrentVersion\Fonts", "Tahoma (TrueType)","TAHOMA.TTF"
0x2, "Control Panel\desktop", "WallPaper", "%systemroot%\system32\nu2.bmp"
0x3, "ControlSet001\Control\TimeZoneInformation", "DaylightStart",\ 00,00,04,00,00,01,00,02,00,00,00,00,00,00,00,00
0x4, "ControlSet001\Control\GraphicsDrivers\DCI", "Timeout", 0x7
0x7, "ControlSet001\Services\VgaSave\Device0", "InstalledDisplayDrivers", "vga", "framebuf",
"vga256", "vga64k"

Розділ SetupReg.AddReg
SetupReg.AddReg[.build]

Додавання ключів реєстру в вітку реєстру "SetupReg.hiv" .
Синтаксис відповідає розділу Software.AddReg


Розділ Default.AddReg

Default.AddReg[.build]

Додавання ключів реєстру в HKEY_CURRENT_USER.
Синтаксис відповідає розділу Software.AddReg

Розділ Software.DelReg
Software.DelReg[.build]

Видалення ключів реєстру із вітки реєстру "Software".
Розділ має наступні формат:
regKey[, regValue]


де...

regKey визначає назву ключа для видалення (включаючи всі значення) як рядок.
regValue визначає назву значення для видалення як рядок.


Розділ Default.DelReg
Default.DelReg[.build]

Видалення ключів реєстру із вітки реєстру "Default".
Синтаксис відповідає розділу Software.DelReg



Розділ AddLine
AddLine[.build]

Додавання рядків в розділ.
Рядки в розділі AddLine мають наступний формат:
Filename,Section,StringToAdd

де...

Filename імя файлу, в який необхідно додати рядки.
Section назва розділу.
LineToAdd рядок для додавання розділу.


Приклад:
"netmscli.inf", "MSClient.DelReg", "HKLM, Software\Microsoft\Rpc\SecurityService, 9"

Розділ DelLine
DelLine[.build]

Видалення рядків із файлу.
Рядки в розділі DelLine мають наступний формат:
Filename,Section,StringToDel

де...

Filename імя файлу, із якого необхідно видалити рядки.
Sectionназва розділу.
StringToDel рядок для видалення. Не вимагається точного співпадання, будь-які рядки, що розпочинаються з "StringToDel" ,будуть видалені.


Приклад:
"netmscli.inf", "MSClient.Browser.AddReg", "HKR, Parameters, MaintainServerList,"

Розділ SetValue
SetValue[.build]

Записує значення в файл.
Рядки в розділі SetValue мають наступний формат:
Filename,Section,Key,Value

де...

Filename імя файлу, в який буде виконуватись запис значення.
Sectionназва розділу.
Key Ключ,в який буде записуватись значення.
Value дані.


Приклад:
"netmscli.inf", "Alerter_Service_Inst", "StartType", "3"

Використовуйте Filename,Section,Key для видалення ключа
Використовуйте Filename,Section для видалення всього розділу

Розділ Append
Append[.build]

Додає файл до іншого файлу.
Рядки в розділі Append мають наступний формат:
Filename,FilenameToAppend

де...

Filename імя файлу, в який здійсниться додбавлення даних.
FilenameToAppend імя файлу, що містить дані для добавлення.


Приклад:
nu2menu.xml, penero_nu2menu.xml

Змінні
В більшості рядків файлу модуля можуть використовуватись спеціальні змінні PE-Builder:
Синтаксис: @variable@
де...

змінна являїться...
Program Містить програми-складальника (за замовченням PE-Builder)
Version Версія програми-складальщика
IsoFile Повний шлях та імя файлу ISO-образу
OutDir Повний шлях до коталогу призначення
SourcePath Повний шлях до коталогу джерела
PluginDir Повний шлях до коталогу даного модуля
PluginFile Повний шлях та імя файлу даного файлу модуля
Language Мова, вибрана в даний час
Verbose Інформаційний режим (0 - ввімкнений, 1 - вимкнений)
Build Номер збірки Windows (2600 відповідає XP,
3790 відповідає Server 2003)


Приклад:
[SourceDisksFiles]
program.exe=2,,3
lang\@[email protected]=2,,3

Де lang\@[email protected] буде lang\ukrainian.lng (якщо вибрано українську мову).