PE Builder v3 help

Inhaltsübersicht

# Plugin Datei-Format

1. Einführung
2. Ein Plugin erstellen
3. PEBuilder Abschnitt
4. WinntDirectories Abschnitt
5. SourceDisksFiles Abschnitt
6. SourceDisksFolders Abschnitt
7. Software.AddReg Abschnitt
8. Software.DelReg Abschnitt
9. SetupReg.AddReg Abschnitt
10. Default.AddReg Abschnitt
11. Default.DelReg Abschnitt
12. AddLine Abschnitt
13. DelLine Abschnitt
14. SetValue Abschnitt
15. Append Abschnitt
16. Variablen

## Einführung

Dieses Dokument soll Ihnen dabei helfen, PE-Builder Plugins zu erstellen oder zu verändern. Die Haupt-.inf-Datei des PE-Builder ist die `pebuilder.inf`. Diese bitte nicht veräendern! Um etwas verändern, verwenden Sie ein Plugin. Alle Plugins befinden sich im Verzeichnis `plugin`. Jede .inf-DAtei im Verzeichnis `plugin` (egal in welchem Unterverzeichnis) mit einem "pebuilder" Abschnitt wird durch den PE-Builder als gütilges Plugin erkannt. Verwenden Sie die Schaltfläche (de)aktivieren im Plugin Fenster um Plugins ein- oder auszuschalten.

## Ein Plugin erstellen

Eine plugin-.inf Datei muss im ascii Format vorliegen, nicht in unicode. Zeilen, die mit ";" (semikolon) beginnen werden ignoriert (werden zur Kommmentierung verwendet).
Jedes Plugin file sollte mit den folgenden Zeilen beginnen:

    ; PE Builder v3 plug-in INF file
    ; Created by Bart Lagerweij
    ; http://www.nu2.nu/pebuilder/
    ;
    ; Kurzbeschreibung was das Plugin macht .....

    [Version]
    Signature= "$Windows NT$"

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

Bitte beachten Sie, dass sie unbedingte die `[Version] Signature= "$Windows NT$"` Information anfügen. Anderenfalls können die setupapi Functionen die .inf Datei nicht öffnen. Verwenden Sie die folgenden Informationen, um in Ihrem Plugin weitere Abschnitte anzufügen ...

## PEBuilder Abschnitt

Wenn Sie ein neues Plugin erstellen, muss Ihre .inf Datei einen [PEBuilder] Abschnitt haben!

Name | Name für das plugin
Enable | Status des Plugin 0 - deaktiviert 1 - aktiviert
Help | der Dateiname der Hilfedatei des Plugin. Kann text, html, doc, pdf oder auch ein anderes Format haben. PE Builder verwendet die ShellExecute() Function um das Document mit der Standardanwendung zu &oouml;ffnen.
Config | der Dateiname der Konfigurationsdatei.

## WinntDirectories Abschnitt

Abschnitt WinntDirectories hat das Format:
`directoryID`=dirname[, attribute]
where...

directoryID | Verzeichnisnummer (id) In plugin .inf files you can use 'a'-'z' for dynamic number assignment...
dirname | Name des Verzeichnisses. Falls dieser Leerzeichen enthält, diesen unbedingt in "Anführungszeichen setzen".
attribute | numerischer Wert um verschiedene Optionen zu aktivieren Wert: 1 - Verzeichnis immer anlegen (auch wenn leer) 2 - Verzeichnis zu Ausgabe im Wurzelverzeichniss (in `\` und nicht in `\i386`) anlegen. Wert addieren um beides zu kombinieren... Standardwert ist 0.

Example:

    [WinntDirectories]
    ; Immer ein Verzeichnis im Wurzelpfad "Bart" erstellen
    a="Bart",3
    ; Ein Verzeichnis im Wurzelverzeichnis mit Namen "Project\Bart\Source" erstellen
    b="Project\Bart\Source",3
    ; Ein Verzeichnis im i386 Pfad mit Namen "extra\files" erstellen
    c="extra\files",1

Hier ist eine Liste der (häfig verwendeten) Verzeichnis ID's:

ID | Verzeichnis | Bemerkungen
30000 | [root] | PE Builder Ausgabepfad
1 | \ | SystemRoot (auf CD das \i386 Verzeichnis, auf der Festplatte \minint)
2 | system32
3 | system32\config
4 | system32\drivers
5 | system
17 | system32\drivers\etc
20 | inf
21 | Help
22 | Fonts
24 | msagent\intl
52 | msagent
124 | WinSxS
125 | WinSxS\Manifests
252 | WinSxS\Policies

PE Builder Verwendet Verzeichnis-id's beginnend mit 30000. Dabei wird id 30000 als Ausgabeverzeichnis verwendet. 30001 und folgende werden von PE Builder dynamisch verwendet.

## SourceDisksFiles Abschnitt

`SourceDisksFiles[.build]`
Dieser Abschnitt wird zum Kopieren von Dateien verwendet. Wenn Sie eine build Nummmer nach dem Abschnitt anfügen, wird der Abschnitt nur dann verwendet, wenn die Quelle aus diesem build stammt.

Build | Version
--- | ---
2600 | Windows XP
3790 | Server 2003

Der Abschnitt SourceDisksFiles hat folgendes Format:
`filename=directoryID[, filenameRenamed][, attribute]`

`filename` | die zu kopierende Datei.
`directoryID` | Die Nummer des Zielverzeichnisses. Siehe WinntDirectories Abschnitt mit einer Liste mit ID's von Standard WindowsVerzeichnissen
`filenameRenamed` | der Dateiname des Ziels falls umbennnen erforderlich ist.
`attribute` | numerischer Wert zum (de)aktivieren von Optionen value: 1 - pluginCheck(). Stellt fest, ob die Datei sich im gleichen Verzeichnis wie die .inf befindet, bevor aktiviert oder verarbeitet wird. 2 - keine Kompression der Dateien. 4 - Datei nur kopieren, wenn vorhanden. Keine Meldung wenn nicht vorhanden. Standardwert ist 0.

## SourceDisksFolders Abschnitt

`SourceDisksFolders[.build]`
Dieser Abschnitt dient dazu, ganze Verzeichnisse mit Dateien zu kopieren. Der Abschnitt SourceDisksFolders hat das folgende Format:
`sourcepath=directoryID`
where...

`sourcepath` | Quellpfad aus dem heraus kopiert wird. Exakte Kopie. Kein entpacken oder entkomprimieren!
`directoryID` | Nummer des Zielpfades. Siehe WinntDirectories Abschnitt mit einer Liste von ID's von Windows Standardverzeichnissen.

Beispiel:

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

    [SourceDisksFolders]
    ; ist ein Verzeichnis openoffice im Plugin-Verzeichnis
    openoffice=a

    [SourceDisksFolders]
    ; ist das openoffice Verzeichnis auf c:\
    c:\openoffice=a

## Software.AddReg Abschnitt

`Software.AddReg[.build]`
Fügt Registrierungsschlüssel in die "Software" Registrierungsadatenbank. Dieser Abschnitt hat folgendes Format:
`regType, regKey, regValue, regData`

regType | spezifiziert den Typ der Information die als Wert gespeichert werden soll. Dieser Parameter kann einer der folgenden Werte sein: 0x0, (REG_NONE) nur den Schlüssel anlegen, ohne Wert 0x1, (REG_SZ) string 0x2, (REG_EXPAND_SZ) string (mit Umgebungsvariablen-Referenz) 0x3, (REG_BINARY) Binärdaten 0x4, (REG_DWORD) 32-bit Nummer 0x7, (REG_MULTI_SZ) multiple strings * Note: muss mit "0x" (kleinschreibung) beginnen!
regKey | spezifiziert den Namen des Schlüssels als string.
regValue | spezifiziert den Namen des Wertes als string.
regData | Die aktuellen Daten.

Beispiel:

    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 Abschnitt

`SetupReg.AddReg[.build]`
Schreibt Registrierungsschlüssel in "SetupReg.hiv" Registrierungs-Hive. Gleicher syntax wie Software.AddReg

## Default.AddReg Abschnitt

`Default.AddReg[.build]`
Schreibt Registrierungsschlüssel in den "Default" Registrierungs-Hive. Gleicher syntax wie Software.AddReg

## Software.DelReg Abschnitt

`Software.DelReg[.build]`
Entfernt Registrierungsschlüssel aus dem "Software"-Registrierungs-Hive. Dieser Abschnitt ist in folgendem Format `regKey[, regValue]`

regKey | spezifiziert den Namen des Schlüssels (inklusive aller Werte) um ihn als String zu löschen as string.
regValue | spezifiziert den Namen des Wertes um ihn als String zu löschen..

## Default.DelReg Abschnitt

`Default.DelReg[.build]`
Entfernt Registrierungsschlüssel aus dem "Software"-Registrierungs-Hive. Gleiche syntax wie Software.DelReg

## AddLine Abschnitt

`AddLine[.build]`
Fügt einem Abschnitt Zeilen hinzu. Zeilen im AddLine Abschnitt haben folgendes Format:
`Filename,Abschnitt,StringToAdd`

Filename | der Dateiname, dem eine Zeile angefügt werden soll.
Abschnitt | der Abschnittname.
LineToAdd | die anzufügende Zeile.

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

## DelLine Abschnitt

`DelLine[.build]`
Entfernt Zeilen aus einer Datei. Die Zeilen im DelLine Abschnitt haben das Format:
`Filename,Abschnitt,StringToDel`

Filename | der Dateinamen, dem eine Zeile entfernt werden soll.
Abschnitt | der Abschnittname.
StringToDel | die Zeile, die entfernt werden soll. Muss nicht exakt angegeben werden, jede Zeile die mit "StringToDel" beginnt wird gelöscht.

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

## SetValue Abschnitt

`SetValue[.build]`
Schreibt einen WErt in die Datei. Die Zeilen im SetValue Abschnitt haben das Format:
`Filename,Abschnitt,Key,Value`
where...

Filename | ist der Dateiname wo ein Wert gesetzt werden soll.
Abschnitt | der Abschnittname.
Key | ist der Schlüssel, dem ein Wert zugeordnet werden soll.
Value | der Wert.

Beispiel:
"netmscli.inf", "Alerter_Service_Inst", "StartType", "3"
Verwenden Sie `Filename,Abschnitt,Key` um einen Schlüsel zu entfernen
Verwenden Sie `Filename,Abschnitt` um einen ganzen Abschnitt zu entfernen

## Append Abschnitt

`Append[.build]`
Datei an eine andere Datei anfügen. Die Zeilen im Append Abschnitt haben das Format:
`Filename,FilenameToAppend`
where...

Filename | Datei an die Daten angehängt werden soll.
FilenameToAppend | Datei, welche die Daten enthält, die angehängt werden sollen.

Beispiel:
`nu2menu.xml, penero_nu2menu.xml`

## Variablen

Die meisten strings in einem plugin file können besondere PE-Builder Variablen sein:
Syntax: `@variable@`

variable | definiert
--- | ---
Program | Den Namen des builder (Standardwert: PE-Builder)
Version | Die Version des builder
IsoFile | Voller Pfad und Dateiname des ISO Abbildes
OutDir | Voller Pfad des Ausgabeverzeichnisses
SourcePath | Voller Pfad des Quellverzeichnisses
PluginDir | Voller Pfad des aktuellen plugin Verzeichnisses
PluginFile | Voller Pfad und Dateiname der aktuellen plugin-Datei
Language | Aktuelle Sprache
Verbose | "Verbose" Modus (0 aus, 1 an)
Build | Die Windows build Nummer (2600 bedeutet XP, 3790 bei server 2003)

Beispiel:
`[SourceDisksFiles]`
`program.exe=2,,3`
`lang\@language@.lng=2,,3`
aus `lang\@language@.lng` wird `lang\german.lng` (wenn deutsche Sprache ausgewählt ist).
Inhaltübersicht

PE Builder Copyright (c) 2002-2006 Bart Lagerweij. All rights reserved / Alle Rechte vorbehalten.