Accueil - FAQ - ModBoot -  CD de démarrage -  CD MultiBoot - PE Builder - Ultime DVD - Scr2Htm

Aide sur les plugins de Bart's PE Builder v3

ce document est mieux que la version originale en anglais, encore en construction ;-)

Page créée le : 6 octobre 2003
Dernière mise à jour : 26 décembre 2003 (Ajout section Append, ajout des [.build])

:: Introduction
:: Contenu d'un plugin
:: Créer un plugin
:: Section PEBuilder
:: Section WinntDirectories
:: Section SourceDisksFolders
:: Section SourceDisksFiles
:: Section Software.AddReg
:: Section Software.DelReg
:: Section SetupReg.AddReg
:: Section Default.DelReg
:: Section AddLine
:: Section DelLine
:: Section SetValue
:: Section Append
:: Remerciements

 Introduction

Ce document devrait vous aider à créer ou modifier les fichiers de plugin de PE Builder, pour ajouter des fonctionnalités. Le fichier .inf principal de PE Builder est pebuilder.inf. Merci de ne PAS éditer ce fichier ! Si vous souhaitez modifier quelque chose, utilisez un fichier de plugin.
Tous les plugins sont situés dans le répertoire plugin. Chaque fichier .inf situé dans le répertoire des plugins (quelque soit le sous répertoire) avec une section "pebuilder" est considéré comme un plugin valide (ce qui permet d'avoir plusieurs plugins dans un même répertoire) pour PE Builder.
Utilisez le bouton activer/désactiver (Enable/Disable) dans le dialogue sur les plugins pour choisir lesquels inclure.

 Contenu d'un plugin

Un fichier de plugin comportera les éléments suivants :
Si vous souhaitez partager vos plugins, et afin de pouvoir les utiliser directement depuis PE Builder, il faut créer une archive compactée au format .CAB.

Suivez les étapes suivantes pour créer un plugin au format .CAB :
  1. Téléchargez makev3.zip modifié le 14 octobre 2002 (59 Ko) et décompactez le dans un répertoire (par exemple, "c:\makev3\")
  2. Copiez les fichiers à utiliser dans le répertoire "c:\makev3\source\nom_plugin".
  3. Ouvrez une fenêtre de commandes, allez dans le répertoire "c:\makev3\", et tapez "make nom_plugin". Normalement, vous devriez trouver votre module compacté et nommé "c:\makev3\cabs\nom_plugin.cab"
  4. Votre fichier de plugin est créé, vous pouvez le partager.

En règle générale, pour un plugin, on créé un répertoire dans "c:\makev3\source\", qui sera le nom du plugin. Dans ce répertoire, on place les différents fichiers (.inf, .htm, .xml, .cmd, ...). On copie éventuellement les autres fichiers dans un répertoire "c:\makev3\source\nom_plugin\files".

 Créer un plugin

Un fichier de plugin .inf doit être au format ASCII, et pas unicode. Les lignes commençant par un ";" (point virgule) sont ignorées (utilisées pour les commentaires).

Tous les plugins devraient commencer par des lignes ressemblant à ceci :
; Fichier de plug-in pour PE Builder v3
; Cree par Bart Lagerweij
; Traduit par Severin TERRIER
; http://severinterrier.free.fr/Boot/
;
; Courte description de ce que fait le plug-in...

[Version]
Signature= "$Windows NT$"

[PEBuilder]
Name="Nom du Plugin"
Enable=0
Help="Nom du Plugin.htm"
Version="1.0"

Ceci est un exemple, vous devez bien évidemment adapter les différentes valeurs.

Attention, vous DEVEZ conserver l'information [Version] Signature= "$Windows NT$". Sinon, les fonctions setupapi ne peuvent pas ouvrir le fichier .inf. Utilisez les informations ci-dessous pour ajouter d'autres sections à votre plugin...

Dans plusieurs sections, vous trouverez NomSection[.build], cela signifie que l'on peut prévoir des éléments différents, selon que la version des fichiers utilisés pour générer le CD est Windows XP SP1 ou Windows 2003 Serveur. On utilisera donc respectivement NomSection.2600 pour XP et NomSection.3790 pour 2003.

 Section PEBuilder

Si vous créez un plugin, votre fichier .inf doit avoir une section [PEBuilder] !
Cette section doit comporter les champs suivants (il faut conserver les noms anglais) :
Name Le nom du plugin
Enable L'état du plugin (par défaut)
0 - Désactivé
1 - Activé
Help Le nom du fichier d'aide du plugin. Cela peut être un fichier texte, html, doc, pdf ou n'importe quel autre type. PE Builder utilise la fonction ShellExecute() pour ouvrir le document avec le programme associé par défaut. Il vaut toutefois mieux utiliser un fichier html ou texte, pour une portabilité maximale.
Version Spécifie la version du plugin. Cette information n'est pas strictement nécessaire actuellement, mais pourrait le devenir pour tester si un plugin a besoin d'un autre plugin dans une version minimale pour fonctionner.

 Section WinntDirectories

Sert à créer des répertoires (sur le CD BartPE).
Les lignes de cette section doivent avoir le format suivant :
directoryID=dirname[, attribute]

avec ...

directoryID est l'identifiant du répertoire (id)
Dans les fichiers .inf de plugin, vous pouvez utiliser 'a'-'z' pour assigner dynamiquement des nombres...
dirname est le nom du répertoire. Si le nom contient des espaces, il faut mettre des guillemets "autour du nom".
attribute Valeur numérique pour activer/désactiver des options
Valeur :
1 - Toujours créer le répertoire (même si vide)
2 - Créer le répertoire depuis la racine du CD généré (pas dans \i386)
Ajouter les valeurs pour combiner...
La valeur par défaut est 0.

Exemple :
[WinntDirectories]
; Toujours créer un répertoire à la racine nommé "Séverin"
a="Séverin",3
; Toujours créer un répertoire à la racine nommé "Projet\Séverin\Source"
b="Projet\Séverin\Source",3
; Créer un répertoire dans le répertoire i386 nommé "extra\files"
c="extra\files",1

Voici une liste des identifiants de répertoires :
ID Nom du répertoire
1 \
2 system32
3 system32\config
4 system32\drivers
5 system
7 system32\ras
9 system32\spool
10 system32\spool\drivers
11 system32\spool\drivers\w32x86\3
12 system32\spool\prtprocs
13 system32\spool\prtprocs\w32x86
14 system32\wins
15 system32\dhcp
16 repair
17 system32\drivers\etc
18 system32\spool\drivers\w32x86
19 system32\drivers\disdn
20 inf
21 Help
22 Fonts
23 Config
24 msagent\intl
25 Cursors
26 Media
27 java
28 java\classes
29 java\trustlib
30 system32\ShellExt
31 Web
32 system32\Setup
33 Web\printers
34 system32\spool\drivers\color
35 system32\wbem
36 system32\wbem\Repository
37 addins
38 "Connection Wizard"
39 "Driver Cache\i386"
40 security
41 security\templates
42 system32\npp
43 system32\ias
44 system32\dllcache
45 Temp
46 Web\printers\images
47 system32\export
48 system32\wbem\mof\good
49 system32\wbem\mof\bad
50 twain_32
51 msapps\msinfo
52 msagent
53 msagent\chars
54 security\logs
55 system32\icsxml
57 system32\mui
58 %MUI_PRIMARY_LANG_ID_DIR%
59 system32\mui\dispspec
60 AppPatch
61 Debug
62 Debug\UserMode
63 system32\oobe
65 system32\wbem\AdStatus
67 Help\Tours
68 Resources\Themes\Luna
69 Resources\Themes\Luna\Shell\NormalColor
70 system32\oobe\html\ispsgnup
71 system32\oobe\html\mouse
72 system32\oobe\html\oemcust
73 system32\oobe\html\oemhw
74 system32\oobe\html\oemreg
75 system32\oobe\images
76 system32\oobe\setup
77 system32\oobe\sample
78 Resources\Themes\Luna\Shell\Metallic
79 Resources\Themes\Luna\Shell\Homestead
90 TAPI
100 system32\1025
101 system32\1028
102 system32\1031
103 system32\1033
104 system32\1037
105 system32\1041
106 system32\1042
107 system32\1054
108 system32\2052
109 system32\3076
110 system32\wbem\xml
112 system32\inetsrv
123 mui
124 WinSxS
125 WinSxS\Manifests
126 WinSxS\InstallTemp
127 ime
129 Resources\Themes
130 ime
132 ime\imejp
133 System32\IME\PINTLGNT
134 System32\IME\CINTLGNT
135 System32\IME\TINTLGNT
136 IME\CHTIME\Applets
137 ime\imejp98
138 ime\imejp\applets
139 Web\printers\PrtCabs
180 system32\3com_dmi
239 system32\clients
240 system32\clients\twclient
241 system32\clients\twclient\x86
242 system32\clients\twclient\ia64
243 system32\clients\twclient\amd64
244 system32\LogFiles
245 system32\LogFiles\Shutdown
246 system32\administration
247 system32\administration\images
248 system32\wbem\Logs
249 system32\wbem\AutoRecover
250 system32\wbem\Repository\FS
251 Microsoft.NET\AuthMan
252 WinSxS\Policies
253 WinSxS\Policies\x86_policy.1.0.Microsoft.Windows.GdiPlus_6595b64144ccf1df_x-ww_4e8510ac

PE Builder utilise des identifiants de répertoire commençant à 30000, avec 30000 utilisé pour le répertoire racine de sortie. 30001 et plus sont utilisés de façon dynamique par PE Builder.

Section SourceDisksFolders

SourceDisksFolders[.build]
Sert à copier des répertoires complets (sur le CD BartPE), avec leurs sous répertoires.
Les lignes de cette section doivent avoir le format suivant :
sourcepath=directoryID

avec ...
sourcepath est le chemin/répertoire à partir duquel copier. C'est une copie exacte, rien n'est décompressé ou extrait !
directoryID est le nombre identifiant le répertoire de destination. Voir la section WinntDirectories pour une liste des identifiants de répertoires standards Windows. Cette liste est issue du fichier layout.inf de windows, section [WinntDirectories].

Exemple :
[WinntDirectories]
a="Programs\openoffice",2

[SourceDisksFolders]
; avec le répertoire openoffice dans le répertoire du plugin
openoffice=a

[SourceDisksFolders]
; avec le répertoire openoffice dans c:\
c:\openoffice=a

 Section SourceDisksFiles

SourceDisksFiles[.build]
Sert à copier des fichiers (sur le CD BartPE).
Les lignes de cette section doivent avoir le format suivant :
filename=directoryID[, filenameRenamed][, attribute]

avec ...
filename est le nom du fichier à copier.
directoryID est le nombre identifiant le répertoire de destination. Voir la section WinntDirectories pour une liste des identifiants de répertoires standards Windows. Cette liste est issue du fichier layout.inf de windows, section [WinntDirectories].
filenameRenamed est le nom du fichier de destination si un renommage est nécessaire.
attribute Valeur numérique pour activer/désactiver des options
Valeur :
1 - utilisé pour pluginCheck(). Soyez sur que le fichier existe dans le même répertoire que celui du fichier .inf, avant d'activer et continuer.
2 - ne décompresse pas le fichier.
4 - copie le fichier s'il existe. Pas d'avertissement s'il n'existe pas et que la copie n'a pas lieu.
Ajouter les valeurs pour combiner...
La valeur par défaut est 0.

Exemple :
[SourceDisksFiles]
; Copier le fichier French.dll du répertoire Languages dans le répertoire ayant l'ID b, avec vérification
Languages\French.dll=b,,1

; Essaie de copier (s'il existe) le fichier bst5.key, sans le décompacter, dans le répertoire ayant l'ID a
bst5.key=a,,6

 Section Software.AddReg

Software.AddReg[.build]
Ajouter des clés de registre dans la partie "Software".
Les lignes de cette section doivent avoir le format suivant :
regType, regKey, regValue, regData

avec ...
regType Spécifie le type d'information à stocker comme valeur.
Ce paramètre peut être une des valeurs (voir l'aide de regedit pour plus d'info) suivantes :
0x0, (REG_NONE) crée juste la clé, sans valeur
0x1, (REG_SZ) chaine de caractères
0x2, (REG_EXPAND_SZ) chaine (avec référence à une variable d'environment)
0x3, (REG_BINARY) données binaires brutes.
0x4, (REG_DWORD) nombre 32-bit
0x7, (REG_MULTI_SZ) chaine multiple
* Attention : doit commencer par "0x" (avec x minuscule) !
regKey Spécifie le nom de la clé (comme une chaine de caractères).
regValue Spécifie le nom de la valeur (comme une chaine de caractères).
regData La donnée à placer dans la valeur.

Exemple :
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"

 Section SetupReg.AddReg

SetupReg.AddReg[.build]
Ajouter des clés dans la partie "SetupReg.hiv" du registre. Même syntaxe que Software.AddReg

 Section Default.AddReg

Default.AddReg[.build]
Ajouter des clés dans la partie "Default" du registre. Même syntaxe que Software.AddReg

 Section Software.DelReg

Software.DelReg[.build]
Supprimer des clés dans la partie "Software" du registre.
Les lignes de cette section doivent avoir le format suivant :
regKey[, regValue]

avec ...
regKey Spécifie le nom de la clé (incluant toutes les valeurs) à supprimer (comme une chaine de caractères).
regValue Spécifie le nom de la valeur à supprimer (comme une chaine de caractères).

 Section Default.DelReg

Default.DelReg[.build]
Supprimer des clés dans la partie "Default" du registre. Même syntaxe que Software.DelReg

 Section AddLine

AddLine[.build]

Les lignes de cette section doivent avoir le format suivant :
Filename,Section,StringToAdd

avec ...
Filename est le nom du fichier dans lequel ajouter une ligne.
Section est le nom de la section.
StringToAdd est la ligne/chaine à ajouter.

Exemple :
"netmscli.inf", "MSClient.DelReg", "HKLM, Software\Microsoft\Rpc\SecurityService, 9"

 Section DelLine

DelLine[.build]

Les lignes de cette section doivent avoir le format suivant :
Filename,Section,StringToDel

avec ...
Filename est le nom du fichier dans lequel supprimer une ligne.
Section est le nom de la section.
StringToDel est la ligne à supprimer. Vous n'avez pas besoin de l'écriture exacte, les lignes commençant par StringToDel seront supprimées.

Exemple :
"netmscli.inf", "MSClient.Browser.AddReg", "HKR, Parameters, MaintainServerList,"

 Section SetValue

SetValue[.build]

Les lignes de cette section doivent avoir le format suivant :
Filename,Section,Key,Value

avec ...
Filename est le nom du fichier dans lequel placer une valeur.
Section est le nom de la section.
Key est la clé à laquelle assigner une valeur.
Value est la valeur.

Exemple :
"netmscli.inf", "Alerter_Service_Inst", "StartType", "3"

Utilisez Filename,Section,Key pour supprimer une clé.
Utilisez Filename,Section pour supprimer une section complète.

 Section Append

Append[.build]

Sert à ajouter des lignes dans un fichier existant.

Les lignes de cette section doivent avoir le format suivant :
Filename,FilenameToAppend

avec ...
Filename est le nom du fichier dans lequel les données seront ajoutées.
FilenameToAppend est le nom du fichier contenant les données à ajouter.

Exemple :
nu2menu.xml, penero_nu2menu.xml

 Remerciements

PE Builder a été créé par Bart Lagerweij, c'est lui qui a fait un superbe travail, et la version originale (en anglais) peut être consultée sur le site original de PE Builder. Vous pouvez aussi consulter l'aide originale sur les plugins (en anglais), qui est moins avancée (à la date de rédaction) que mon fichier ;-)

Pour ma part, j'ai effectué une traduction des pages de son site, ainsi que des plugins, pour permettre à un (plus) grand nombre de personnes maitrisant mieux le français que l'anglais d'en profiter.

J'ai (volontairement) omis de traduire les informations très techniques (les gens motivés les liront en anglais).

J'ai parfois réorganisé, modifié ou ajouté certaines informations, soit pour les rendre plus clair ou simple, soit parce qu'elles sont relatives au langage français, ou qu'elles n'existaient pas.

Traduction et modifications par Séverin TERRIER. Tous droits réservés.
Copyright (c) 2002-2003 par Bart Lagerweij. All rights reserved.