home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1997 July
/
Chip_1997-07_cd.bin
/
sharewar
/
95rar
/
dos
/
rar155d.exe
/
rar
/
SFX.DOC
< prev
next >
Wrap
Text File
|
1995-10-25
|
24KB
|
650 lines
██████╗ █████╗ ██████╗ RAR Version 1.55
██╔══██╗ ██╔══██╗ ██╔══██╗ ~~~~~~~~~~~~~~~~
██████╔╝ ███████║ ██████╔╝ Multifunktioneller integrierter Archivierer
██╔══██╗ ██╔══██║ ██╔══██╗ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
██║ ██║ ██║ ██║ ██║ ██║ Handbuch für "The Installation SFX for DOS"
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Überblick über die Funktionen
Das SFX (SelF-eXtracting Modul) ist ein Archivmodul, das Dateien
in der üblichen ausführbaren Form bei deren Aufruf entpackt.
RAR bietet SFX-Funktionen, die über das normaler Maß anderer SFX
weit hinausgehen, sowie die Möglichkeit, SFX-Archive mit externen
SFX-Modulen zu erstellen.
Ein alternierendes SFX-Modul kann mit dem Schalter '-sfx[<sfxdatei>]'
oder dem Befehl 's[<sfxdatei>]' erstellt werden, wenn Sie mit dem
optionalen Parameter <sfxdatei> das erforderliche SFX-Modul angeben.
Verschiedene RAR SFX-Module sind zur Zeit verfügbar:
- das gebräuchliche SFX für DOS (Standard in der DOS-Version,
Datei DOS.SFX)
- das Installations-SFX für DOS (Datei IDOS.SFX)
- das gebräuchliche SFX für OS/2 (Standard in der OS/2-Version,
Datei OS/2.SFX).
Sie können eigene RAR SFX ausführbare Module mit den unRAR-Sources
dieser Liste zufügen (z.B. für ein anderes Betriebssystem oder
angepaßt an Ihre persönlichen Erfordernisse).
2. Das Installations-SFX
Als Alternative zum Standard-SFX möchten Sie vielleicht ein Instal-
lations-SFX erstellen, das eine mächtige Scriptsprache benutzt und
weitere Merkmale aufweist:
- komplett konfigurierbar, mit einem benutzerfreundlichen Interface
- Überprüfung des freien Laufwerkspeichers vor der Installation
- Frage nach dem Zielpfad
- Status der Installation: Anzeige des Entpackfortgangs mittels
Balkengrafik, Prozentanzeige etc.
Das Installations-Script besteht aus reinem ASCII-Test, den Sie mit
Ihrem bevorzugten Editor erstellen können. Das Script wird in den
SFX-Archiv-Kommentar geschrieben und vom SFX-Modul bei der Ausführung
abgearbeitet.
Mit der folgenden Kommandozeile erstellen Sie z.B. ein solches
SFX-Archiv:
rar a -sfxidos.sfx -zmyinst.s minstall
IDOS.SFX ist der Pfad zum Installations-SFX-Modul und die Datei
'myinst.s' ist die Textdatei, die Ihr Installations-Script enthält.
Das Installations-SFX besitzt einen eingebauten Übersetzer für die
Scriptsprache.
2.1 Installations-Scriptsprache
Wie eine Programmiersprache enthält ein Script folgende Objekte:
Befehl Ausdruck, der eine Aktion bewirkt;
Prozedur Befehle, die aus dem main script code aufgerufen werden
Funktion eingebaute Prozedur, die einen Wert zurückgibt;
Konstante Zeichenfolge oder numerischer Werte (4 bytes lang);
Variable Name, der die Speicherstelle für einen Wert definiert.
Variablen können einem numerischen Wert oder einer Zeichenfolge
zugeordnet werden.
Variablen sind global, d.h. sie behalten ihre Definition im Haupt-
code und allen Prozeduren.
Bei den Namen von Variablen und Prozeduren wird die Groß- / Klein-
schreibung berücksichtigt; bei Befehlsangaben dagegen nicht.
Befehle und eingebaute Prozeduren können mit Parametern aufgerufen
werden - Konstanten und Variablen. Ausdrücke können nicht als Para-
meter benutzt werden.
2.1.1. Steuerungsbefehle
CALL eine Prozedur einleiten:
CALL <ProzName>
<ProzName> ist der Name der Prozedure (mit PROC definiert)
DELAY Skriptausführung unterbrechen:
DELAY [<ms>]
<ms> ist der Verzögerungsinterval (Millisekunden).
Der Interval wird auf unendlich gesetzt, wenn kein Wert
für ms genannt wird. Die Ausführung wird dann nach Tasten-
druck oder Mouseklick fortgesetzt.
EXCLUDE definiert eine Liste von Dateien, die beim Installieren
NICHT aus dem Archiv entpackt werden:
EXCLUDE [ <Datei1> [, <Datei2>..] ]
<Datei1>, <Datei2>.. sind Variablen oder Zeichenfolgen
mit den Namen der Dateien, die ausgeschlossen werden sollen.
Wildcards sind gestattet.
Der Anfangswert dieser Dateiliste ist "", d.h. keine Datei
ist ausgeschlossen. EXCLUDE ohne Parameter stellt den Ein-
gangswert der Dateiliste wieder her.
EXIT Installations-SFX beenden:
EXIT <Code>
SFX bricht mit Errorlevel ab = <Code>.
GOTO Kontrolle wird an einen string im Script übergeben, der
durch ein Label gekennzeichnet ist:
GOTO <Label>
<Label> ist der Name im Script, gefolgt durch einen Doppel-
punkt (:). Beispiel:
GOTO Menu
...
Menu:
IF Befehle bedingt ausführen:
IF <Var> <?> <Wert>
<Befehl>
...
ENDIF
Ausdruck, der die bedingte Ausführung des Ausdrucks innerhalb
des IF...ENDIF-Blocks definiert.
Die Variable <Var> wird mit <Wert> verglichen; ist das Re-
sultat des Vergleichs WAHR, werden die Ausdrücke zwischen
IF...ENDIF ausgeführt.
Vergleichsoperatoren sind:
'==' .. GLEICH
'!=' .. UNGLEICH
'>' .. GRÖßER ALS
'>=' .. GRÖßer ALS ODER GLEICH
'<' .. KLEINER ALS
'<=' .. KLEINER ALS ODER GLEICH
<Wert> ist eine Konstante oder eine Variable.
Buchstabenwerte können nur mit den Operatoren '==' oder
'!=' verglichen werden.
INCLUDE definiert eine Liste von Dateien, die beim Installieren
aus dem Archiv entpackt werden:
INCLUDE [ <Datei1> [, <Datei2>..] ]
<Datei1>, <Datei2>.. sind Variablen oder Zeichenfolgen
mit den Namen der zu entpackenden Dateien.
Wildcards sind gestattet.
Anfangswert der Dateiliste ist "*.*", d.h. "alle Dateien
im Archiv". das erste definierte INCLUDE ersetzt den
Standardwert. Alle weiteren INCLUDEs erweitern die Datei-
liste ohne vorherige Werte zu ersetzen.
INCLUDE ohne Parameter löscht die Dateiliste.
INSTALL startet die Installation. Ist kein INSTALL-Ausdruck ange-
geben, beginnt die Installation mit Erreichen des Endes
des Haupt-Script-Codes.
OVERWRITE Überschreibmodus beim Extrahieren einschalten:
OVERWRITE { ON | OFF | FRESH | UPDATE }
ON vorhandene Dateien immer überschreiben
OFF vorhandene Dateien nie überschreiben
FRESH nur Dateien überschreiben, die im Zielpfad vorhanden
sind und älter sind als im Archiv
UPDATE wie FRESH, aber es werden auch Dateien entpackt, die
im Zielpfad noch nicht vorhanden sind
PROC eine Prozedur definieren:
PROC <ProzName>
<Befehle>
...
ENDP
<ProzName> ist der Name der Prozedur.
Kann mit dem CALL-Ausdruck aufgerufen werden.
Befehle zwischen PROC und ENDP würden dann ausgeführt
werden.
SOUND erzeugt Klänge auf dem PC-Lautsprecher:
SOUND <F1>, <D1> [, <F2>, <D2>...]
<F1> ist die Frequenz und <D1> die Dauer des Tons in Milli-
sekunden. Die ANzahl der Noten ist unbegrenzt.
SYSTEM DOS-Befehl ausgeben::
SYSTEM <Arg1> [, <Arg2>..]
Die Kommandozeile mit den Parametern <Arg1>, <Arg2>...
wird ausgeführt.
; Zeilen, die mit einem Semikolon beginnen, dienen zur
Kommentierung und werden nicht ausgeführt.
= Um den Wert einer Variable zu bestimmen, können Sie den
folgenden Befehl benutzen:
<Var>=<Ausdruck>
<Var> ist der Name der Variable und <Ausdruck> kann eine
Konstante, ein numerischer Ausdruck oder ein Funktions-
befehl sein.
Ein numerischer Ausdruck ist eine Kombination von Zeichen
nach dem Muster "A # B", wobei 'A' und 'B' numerische Kon-
stanten und/oder Variablen sind und '#' für einen der
mathematischen Operatoren '+', '-', '*', '/' und '%' steht.
2.1.2. Bildschirmbefehle
Jegliche Ausgabe wird in das aktuelle Textfenster geleitet (vgl. die
Beschreibung zum WINDOW-Befehl).
Vorder- und Hintergrundfarben haben in allen verwandten Befehlen die
nachfolgenden Bezeichnungen:
BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY,
LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE.
Sie können auch statt dessen auch die Werte 0 bis 15 als Farbcode ver-
wenden.
Wenn in einem Befehl kein Parameter-Paar für Vorder- und Hintergrund
angegeben ist, wird die aktuelle Farbkombination für die Ausgabe
benutzt (vgl. SETCOLOR-Befehl).
BOX eine Box zeichnen:
BOX <X1>, <Y1>, <X2>, <Y2>, <Col>, <Bck>, SINGLE | DOUBLE
<X1>, <Y1> - Eckpunkt links oben;
<X2>, <Y2> - Eckpunkt rechts unten;
<Col>, <Bck> - Vorder- / Hintergrundfarbe;
SINGLE oder DOUBLE - einfacher oder doppelter Rahmen.
CLRSCR Das aktuelle Fenster wird gelöscht (optional mit Symbol):
CLRSCR [ <Symbol> ]
Es wird die aktuelle Farbe zum Löschen benutzt. Es kann
ein Symbol angegeben werden, mit dem das Fenster gefüllt
werden soll. Das Symbol kann als Zeichen in Anführungs-
zeichen ("") oder als numerischer Code definiert werden.
CTEXT Text in die Mitte der aktuellen Zeile schreiben:
CTEXT <P1> [, <P2>..]
<P1>, <P2>.. sind Variablen oder Zeichenkonstanten.
GOTOXY Position des Cursors im aktuellen Fenster:
GOTOXY <X>, <Y>
<X>, <Y> - Punkt, auf dem der Cursor positioniert werden
soll
DEFBAR Definition des Balkens für den Entpackfortgang:
DEFBAR <Col>, <Bck>, <BarCol1>, <BarCol2>, <X>, <Y>, <Length>
<Col>, <Bck> - Vorder- / Hintergrundfarbe;
<BarCol1>, <BarCol2> - Farben für nicht ausgefüllte und aus-
gefüllte Bereiche des Balkens;
<X>, <Y> - Eckpunkt links oben des Balkenfensters;
<Length> - Länge des Balkens.
Mit dem Befehl
DEFBAR OFF
kann die Anzeige des Balkens unterdrückt werden.
MESSAGE Text in eine Box schreiben:
MESSAGE <Col>, <Bck>, <Title>, <Str1> [, <Str2>..]
<Col>, <Bck> - Vorder- / Hintergrundfarbe;
<Title> - Überschrift;
<Str1>, <Str2>.. Text, der angezeigt werden soll
OUTTEXT Beginn / Ende eines reinen / ANSI-Textes:
OUTTEXT [ANSI] ON | OFF
kennzeichnet den Beginn (ON) und das Ende (OFF) eines Text-
abschnittes. Das optionale Schlüsselwort ANSI gibt an, daß
der Text ANSI esc-Sequenzen beinhaltet, die bei der Ausgabe
auf den Schirm abgearbeitet werden müssen.
Beispiel:
OUTTEXT ON
Installation instruction.
You should install this program according to
the following procedure:
...
OUTTEXT OFF
RESTSCR Bildschirm wieder herstellen (s. SAVESCR):
RESTSCR <NumScr>
<NumScr> ist der Wert des wieder herzustellenden Bildschirms,
der vorher mit dem SAVESCR-Ausdruck gespeichert worden sein
muß. Cursorposition, Fenstereinstellungen und die Farben
werden übernommen.
SAVESCR Bildschirm speichern:
SAVESCR <NumScr>
<NumScr> - numerischer Wert zwischen 1 und 16, der die
Speicherstelle der Bildschirmdaten benennt.
Gespeicherte Bildschirme werden mit dem RESTSCR-Ausdruck
abgerufen.
SETCOLOR Standard-Vorder- und Hintergrundfarbe einstellen:
SETCOLOR <Col>, <Bck>
<Col> ist die Vordergrund und <Bck> ist die Hintergrundfarbe.
TEXT Text schreiben:
TEXT <P1> [, <P2>..]
<P1>, <P2>.. sind Variablen oder Buchstabenkonstanten, die
den Text, der ausgegeben werden soll, beinhalten.
WINDOW Standard-Einstellungen für Fenster:
WINDOW <X1>, <Y1>, <X2>, <Y2>
<X1>, <Y1> - linker oberer Eckpunkt des Fensters;
<X2>, <Y2> - rechter unterer Eckpunkt.
Alle Bildschirmausgaben, die nach diesem Befehl angewiesen
werden, erscheinen innerhalb der hier definierten Punkte,
soweit keine anderen Anweisungen gegeben werden.
2.1.3. Funktionen
Funktionen bieten einen eingebauten Prozeduren-Aufruf, der einen Wert
zurückgibt.
EXEC führt einen DOS-Befehl aus und gibt einen Exit-Code zurück:
<Var>=EXEC <Arg1> [, Arg2.. ]
<Arg1>, <Arg2>.. - Kommandozeilenparameter; Leerzeichen
bitte nach dem Komma einfügen (<Arg1>, <Arg2>..);
<Var> - bezeichnet die Variable, die den Errorlevel nach
der Ausführung der Kommandozeile empfängt.
GETDFREE freien Plattenspeicher abfragen:
<Var>=GETDFREE [<DiskNo>]
<Var> - Variable, die den ausgegebenen Wert empfängt.
<DiskNo> - optional: Nummer des Laufwerks, von dem der
freie Speicher abgefragt wird (0 bedeutet A:, 1 - B:,
2 - C: etc). Wird dieser Parameter nicht angegeben,
wird der freie Speicher des Ziellaufwerks abgefragt.
Existiert das angegebene Laufwerk nicht, wird der Wert
-1 zurückgegeben.
GETKEY Code der gedrückten Taste zurückgeben:
<Var>=GETKEY
Diese Funktion wartet auf das Drücken einer Taste und gibt
deren Code zurück an <Var>. Manche Tasten produzieren er-
weiterte Codes, bei denen das erste byte 0 und das zweite
den erwiterten Code beinhaltet. In diesen Fällen wird der
Tastencode als der Wert des zweiten bytes plus 256 zurück-
gegeben.
INPUT Eingabe durchführen:
<Res>=INPUT <Col>, <Bck>, <Var>, <IniValue>, <MaxLen>
<Col>, <Bck> - Vorder- und Hintergrundfarbe des Eingabe-
feldes;
<Var> - Variable, die den Eingabewert empfängt;
<IniValue> - Eingangswert (Variable oder eine Konstante);
<MaxLen> - Länge des Eingangsfeldes (maximal).
<Res> - Indikator, der den Erfolg der Transaktion anzeigt.
Wird die <Esc>-Taste während einer Eingabe gedrückt, wird
ein Wert von 0 an <Res> zurückgegeben und <Var> bleibt un-
definiert. Wird ein Wert erfolgreich eingegeben, erhält
<Res> den Wert 1 und <Var> den Wert der Eingabe.
MENU ein Menü beginnen:
<Var>=MENU <X>, <Y>, <Col>, <Bck>, <Position>, <Title>,
<Item1> [, <Item2>..]
<X>, <Y> - linker oberer Punkt des Menüs;
<Col>, <Bck> - Vorder- / Hintergrundfarbe;
<Position> - anfängliche Menü-Zeigerposition (Nummer);
<Title> - Überschrift;
<Item1>, <Item2>.. - Zeichenfolgen - Menüpunkte;
<Var> - Variable, die den zurückgegebenen Wert empfängt.
Bei erfolgter Wahl gibt die Funktion die Nummer des Menü-
punktes zurück (1-n). Wird die <Esc>-Taste gedrückt, ist
der Wert 0.
2.1.4. Vordefinierte Prozeduren
Vordefinierte Prozeduren sind Prozeduren mit reservierten Namen, die
in speziellen Situationen vom internen SFX-Code aufgerufen werden.
Vor dem Aufruf setzt SFX die Parametervariablen Par1 und Par2.
Vordefinierte Prozeduren sind optional und sollten vom Script-Program-
mierer für besondere Anforderungen mit dem PROC-Statement eingesetzt
werden.
ArcDone wird beim erfolgreichen Abschluß des Entpackvorgangs
aufgerufen
Es wird kein Parameter eingesetzt. Wenn ArcDone ausgeführt
wurde, wird die Archivdatei geschlossen; sie kann dann mit
dem Befehl SYSTEM "DEL ",ArcName gelöscht werden.
ChangeVol wird aufgerufen, wenn das Archiv-Volumen gewechselt wer-
den muß
Par1 ist die Volumennummer zugewiesen (0 für den ersten
Volumenwechsel), Par 2 ist der Status des Volumens zu-
gewiesen: Wenn Par2 0 ist, muß das Volumen installiert
werden (der Anwender sollte nun gebeten werden, es zu laden).
Diese Prozedur wird mit Par2==0 benannt, solange bis das ange-
forderte Volumen nicht gefunden wird. Sie können den Namen
des angeforderten Volumens durch eine Zuweisung an die Va-
riable ArcName ändern. Im Fall eines Nicht-0-Wertes von
Par2 ist das Volumen erfogreich installiert und kein
weiteres Vorgehen des Anwenders erforderlich.
Wird die ChangeVol-Prozedur nicht definiert, erscheint
"Insert disk with <volume name>", wenn das nächste Volumen
erwartet wird.
Error wird aufgerufen, wenn ein Fehler auftaucht
Par1 ist folgenden Fehlercodes zugewiesen:
1 - fataler Fehler
2 - CRC-Fehler, beschädigtes Archiv
3 - Schreibfehler
4 - Fehler bei Dateierstellung
5 - Fehler beim Lesen
6 - Fehler beim Dateischließen
7 - Fehler beim Dateiöffnen
8 - nicht genug Memory
Ist die Fehlerprozedur abgeschlossen, bricht SFX ab.
Diese Prozedur wird nicht aufgerufen, wenn ein ungültiger
AV-Code entdeckt wird.
Ist keine Fehlerprozedur definiert, gibt SFX eine Standard-
Fehlermeldung aus und bricht ab.
FileDone Wird aufgerufen bei erfolgreichem Entpacken einer Datei
oder eines Verzeichnisses
Der Variable Par1 ist die Nummer der Datei im Archiv
zugewiesen.
OnKey wird bei Tastendruck aufgerufen
OnKey kann zum Einbauen einer kontextsensitiven Hilfes-
meldung benutzt werden oder zum Abarbeiten eines Abbruchs.
Par1 wird der Tastencode zugewiesen.
Wird die Tastenoperation innerhalb der OnKey-Prozedur
ausgeführt, sollten Sie Par1 auf -1 setzen, um ein zwei-
faches Abaebeiten durch SFX zu verhindern.
Wiederkehrende Aufrufe von OnKey verhindert SFX selbst.
Wenn OnKey aufgerufen wird, werden die Werte für das ak-
tuelle Fenster, die Farben und die Cursorposition auto-
matisch gespeichert und bei Beenden der Prozedur wieder
hergestellt. Ein Speichern des Bildschirms wird allerdings
nicht durchgeführt. Verwenden Sie ggf. hierzu die Befehle
SAVESCR und RESTSCR, aber achten Sie darauf, hier keinen
Markierer zu benutzen, der im Script verwendet wird.
2.1.5. Vordefinierte Variablen
Archiv-Variablen:
ArcName Name des Archivs
AVPresent Liegt eine Siegelüberprüfung vor, ist der Wert der Variable
1, sondt 0. Bei einer ungültigen AV-Information beträgt er
-1.
AVArcName Name des Archivs, wie er in der AV gespeichert ist
AVDate Archivdaten, gespeichert in der AV
AVUserName Ersteller des Archivs (AV registration string)
Extraktionsabhängige Variablen:
FileName Name der entpackten Dateie (kein Zielpfad)
DestFileName Name der entpackten Datei mit Angabe des Zielpfades
Benutzerdefinierte Variablen (zugewiesen durch INPUT oder = Operation):
DestDir Zielverzeichnis, in das die Dateien entpackt werden sollen.
Existiert das Verzeichnis nicht, wird es erstellt.
Enthält die Eingabe kein nachgestelltes '\' oder ':', wird
dieses Zeichen automatisch zugefügt.
Password Paßwort für die Archivdateien
2.1.6. Anmerkungen zum Script
Zeichenfolgen sollten nach den C-Sprachen-Regeln eingegeben werden.
Geben Sie z.B. "\\" für das einfache Symbol "\" ein.
Spezielle Zeichen wie "\n" und "\r" (Formatoperatoren) können benutzt
werden.
Das Script wird als Archivkommentar im SFX-Modul gespeichert. Sie sollten
ein <EOF>-Zeichen (ANSII-Code 26) an den Beginn des Scripts stellen,
damit das Script nicht als Archivkommentar ausgegeben wird, wenn das
SFX mit RAR selbst bearbeitet wird.
Beachten Sie bitte das beispielhafte Installationsskript in der Datei
Standard.S. Damit können Sie selbst Installationspakete erstellen.
Sie können auch das RAR-Installationsscript aus dem RAR-Paket entpacken.
Dazu rufen Sie den "Extract Comment"-Befehl auf:
rar cw rar155.exe rarinst.s
Dadurch erstellen Sie sich das RAR-Installationsscript in der Datei
rarinst.s.
Sie können ein externes Installationsprogramm in ein SFX-Archiv ein-
setzen, das nach erfolgreichem Entpacken (z.B. von PROC ArcDone) mit
einer EXEC-Funktion aufgerufen wird:
PROC ArcDone
EXEC DestDir, "Install.Exe"
ENDP
2.1.7. Technische Beschränkungen:
Maximale Scriptzeilenlänge.............1023 bytes
Maximale Scriptlänge.....................62 Kb
Anzahl der Parameter im Befehl (max.)....16
Maximale Parameterlänge.................255 bytes
Maximale Länge der Markierer
(Variablenname, Label)...................31 bytes
Maximale Länge der Variablenwerte.......127 bytes
Grundsätzlich können Variablen numerische (4 bytes Länge) Werte oder
Zeichenfolgen von bis zu 127 Zeichen Länge beinhalten.