Die benötigten Skript Tools
Wie wir bereits wissen können wir mit jedem Editor dieses Skript erstellen. Es gibt aber auch Programme die dieses erstellen des Skriptes unterstützen sodass man nicht unnötig. Alle benötigen Zeilen selbst ein zutippen braucht.
Inno ist ein Skriptgenerator zum erstellen einer Setup.exe zum verteilen unserer erstellten Software auf einem Zielrechner.
Dieser ist anders als bei InstallShield, da die gesamten ausführbaren Befehle hierfür in einer ASCII Text Datei, und damit schneller und übersichtlicher zu kontrollieren sind.
Die Textdatei kann von jedem x beliebigen ASCII Editor erstellt werden oder direkt in Inno selbst bzw. ScriptMaker und IsTools oder auch ISX.
Die erforderlichen Einträge werden hierin in Sektionen eingeteilt die jeweilig die Einträge zu dieser Sektion beinhalten. Diese sind:
Wir starten unser zu erstellendes Skript mit der [Setup] Section.
Hier werden alle Schalter (true, 1, yes - false, 0, no) gesetzt für unser zu erstellendes Installation Programm.
In Abhängigkeit der verschiedenen Inno Versionen stehen diverse Einträge zur Verfügung. Manche wurden aus ältere entfernt andere neue hinzugefügt.
Es stehen in dieser Sektion 93 verschiedene Direktiven (Schalter) zur Verfügung die individuell von Ihrer Anwendung benötigt werden oder auch nicht. Deshalb ist es nicht einfach hierzu immer die passenden Tipps bereitzustellen, da jede Anwendung verschieden ist und andere Vorraussetzungen erfordert.
Es gibt allerdings drei von diesen welche immer ( unbedingt erforderlich ) benötigt werden diese sind:
Dieser identifiziert Ihr Applikationsname, also meist der Name Ihrer Anwendung.
AppVerName (erforderlich)
Dieser setzt sich aus dem Applikationsnamen und der zu installierenden Version zusammen.
DefaultDirName (erforderlich)
Dieses ist das Vorgabe Verzeichnis wohin unsere Anwendung auf dem Zielrechner kopiert werden soll (Hauptverzeichnis). Dieser setzt sich aus einer Konstante und dem dazugehörigen Verzeichnisnamen zusammen.
Beispiel:
{pf}\Meine Applikation |
|
Die Konstante ist ein fester Wert eines Verzeichnisnamen, welches individuell sein kann auf verschiedenen Zielrechnern. Diese Konstante als Beispiel {pf} bezeichnet den Verzeichnisnamen C:\Programme wenn sich Windows auf dem Zielrechner auch auf dem Laufwerk C:\ befindet. Ist dieser auf E:\ so ist {pf} auch E:\Programme auf deutsche Zielrechner oder E:\Progam files auf Zielrechner mit einer installierten englischen Version von Windows.
Wie wir sehen brauchen wir uns also keine Gedanken zu machen wo sich dieser Ordner auf dem Zielrechner befindet, da Inno oder auch ISX dieses selbst erledigt, und unsere Anwendung immer richtig installiert wird.
Diese Konstanten sind theoretisch gleich zu setzen mit einem Alias in einer BDE Umgebung.
In der [Setup] Sektion sind weiterhin Direktiven, welche zwar nicht unbedingt erforderlich, aber trotzdem immer wieder verwendet werden, bei jedem zu erstellenden Setup.
Diese sind:
AppId
Diese Direktive, wird wenn sie nicht deklariert wurde, in der [Setup] Sektion den gleichen Wert zugewiesen wie AppName. Sie wird mittels Inno benötigt um eine Uninstall Registrierungseintrag zu erstellen um unser Setup auch korrekt wieder vom Zielrechner zu entfernen. Des Weiteren wird dieser auch herangezogen zum identifizieren bei nachfolgenden Updates unserer Anwendung, um alle in der Hauptinstallation getätigten Einstellungen seitens des Anwenders wieder zu aktivieren und somit alle vorherigen Einstellungen wieder zur Verfügung zu haben. Also ist es ratsam diese Direktive einen Wert zuzuweisen um auch bei Updates alle Einstellungen zu gewährleisten.
Beachte: Dieser Eintrag muss aber IMMER gleich sein, bei jedem Update unserer Anwendung und darf nicht verändert werden.
AdminPrivilegesRequired (Version < 3.0.4) PrivilegesRequired (ab Version 3.0.4)
Diese Direktive wird benötigt, wenn auch Registrierungseinträge zu unserer Anwendung benötigt werden. Dieses ist immer der Fall, sobald wir die BDE oder auch die dBASE Runtime Dateien mit installieren.
AdminPrivilegesRequired kann den Wert false oder auch true annehmen.
Diese Direktive wurde ab der Version 3.0.4 von Inno und ISX geändert zu PrivilegesRequired wird zwar nicht als Fehler angezeigt sondern nur als Warnung.
Diese neue Direktive ab Version 3.0.4 kann folgende Einträge enthalten: No, poweruser, admin.
Diese gibt den minimalen Wert des Anwenders an, welcher in seinem System eingeloggt sein muss, um unsere Anwendung installieren zu können.
SourceDir
Hier können wir unser Source Verzeichnis unserer Anwendung angeben.
Beispiel:
SourceDir=C:\MeineAnwendung |
|
Hierbei handelt es sich um das Hauptverzeichnis in dem sich unsere Anwendung mit allen Unterordnern befindet. Vorteil hierbei ist das man dann in der [Files] Sektion diesen nicht immer anzugeben braucht und nur noch den Unterordner inklusive des Dateinamens um diese Datei zu integrieren.
OutputDir
Hier können wir das Verzeichnis eingeben, in dem unser kompiliertes Setup abgespeichert werden soll.
Beispiel:
OutputDir=C:\MeineAnwendung\Setup |
|
OutputBaseFilename
Hier können wir den Namen des kompilierten Setups eingeben ohne Eingabe des Extension EXE.
Beispiel:
OutputBaseFilename=MeineAnwendung_Setup |
|
UseSetupLdr
Wenn diese Direktive auf true/1/yes gesetzt wird generiert Inno eine Setup.exe Datei wenn diese nicht angegeben wird oder auf false/0/no gesetzt wurde wird die Setup.exe Datei in mehrere Dateien gesplittert (aufgeteilt). Dieses hat aber nichts mit einer Aufteilung für Disketten zu tun, sondern es werden BIN Dateien generiert, um somit die einzelnen Dateien kleiner zu halten.
Beispiel:
UseSetupLdr=YES |
|
Compression
Hier wird angegeben wie das zu erstellende Setup komprimiert werden soll. Die höchste Komprimierung wird mit der Einstellung von bzip/9 erreicht. Somit wird dann auch unsere Setup.exe am kleinsten.
Beispiel:
Compression=bzip/9 |
|
AppCopyright
Hier können wir unser Copyright einfügen. Dieser wird dann auch in dem Setup unten rechts angezeigt, wenn wir die maximale Fenstergröße einstellen mit WindowVisible=true.
Beispiel:
AppCopyright=HiSoft2000 Jonny Kwekkeboom © 2002 WindowVisible=true |
|
DefaultGroupName
Hier wird der Gruppen Name unserer Anwendung angegeben, welcher in der Programmgruppe von Windows angelegt werden soll. Dieser kann, wenn nicht die dazugehörige Seite abgeschaltet ist, vom Anwender frei gewählt und geändert werden.
Wir greifen nicht mehr auf diesen Namen zurück, sondern nur auf die in Inno festgelegten Konstanten die hierfür die {group} Konstante ist. Hierin befindet sich immer der korrekte Verzeichnisname ob er vom Benutzer geändert wurde oder auch nicht.
UserInfoPage
Diese Direktive in der [Setup] Sektion gibt an ob eine zusätzliche Anwender Seite innerhalb des Installationsprozesses angezeigt werden soll. Diese fordert die Eingabe des Anwendernamens und der Organisation des Anwenders.
Sie ist auch unbedingt erforderlich bei einer Abfrage eines Seriencode um unsere Anwendung installieren zu können.
Zur weiteren Verwendung der Eingabedaten können wir diese in der Registrierungsdatei oder auch in einer INI Datei abspeichern, um direkt aus unserer Anwendung heraus auf diese zurückgreifen zu können.
Diese werden in feste Konstanten abgelegt die dann zur Speicherung herangezogen werden können.
Der eingegebene Anwendername wird hierbei in der Konstante {userinfoname} die eingegebene Anwender Organisation in {userinfoorg} und der eingegebene Seriencode in {userinfoserial} abgelegt (nur ab Version 3.0.4).
Es stehen ebenso die eingegebenen Windows Installationsdaten zur Verfügung, welche sich in den Konstanten {sysuserinfoname} und {sysuserinfoorg} befinden.
Dies waren eigentlich die wichtigsten Einträge, welche man fast immer benötigt. Wie bereits vorher beschrieben, gibt es viel mehr von diesen Setup Direktiven, um unser zu erstellendes Installation Programm individuell einzustellen wie eigene Grafiken anzuzeigen innerhalb des Setups, die Farbumgebung anzupassen etc.
Sehen Sie hierzu in der Inno Hilfedatei nach, welche Möglichkeiten weiterhin zur Verfügung stehen oder mittels der F1 Taste innerhalb von ScriptMaker.
Hier sehen wir nun ein Beispiel der
Setup Section aus der ScriptMaker
original Installation Skript Datei.
[Setup] Compression=bzip/9 OutPutDir=C:\ScriptMakerV3\Setup OutputBaseFilename=Setup_ScriptMaker SourceDir=C:\ScriptMakerV3 UseSetupLdr=YES PrivilegesRequired=admin AppName=ScriptMaker AppId=SM_Plus AppVersion=3.2.0.4 AppVerName=ScriptMaker version 3.2.0.4 AppMutex=ScriptMaker_Mutex ChangesAssociations=YES DefaultDirName={pf}\ScriptMaker DefaultGroupName=ScriptMaker DisableStartupPrompt=YES ;MessagesFile=C:\Inno Setup 3\Default.isl AppCopyright=HiSoft2000 Jonny Kwekkeboom © 2002 BackColor=$FCF9DC BackColor2=$B05757 WindowVisible=YES WizardImageFile=C:\ScriptMakerV3\Setup\WizModernImage3.bmp WizardSmallImageFile=C:\ScriptMakerV3\Setup\WizModernSmallImage3.bmp UserInfoPage=YES DisableDirPage=YES DisableReadyPage=YES UsePreviousAppDir=YES UninstallFilesDir={pf}\ScriptMaker\Uninstall Information ShowTasksTreeLines=YES |
|
Die [Dirs] Sektion ist zum erstellen von Verzeichnisse für unsere Anwendung. Hier können wir benötigte leere Verzeichnisse erstellen und spezielle Ordner anlegen mit z.B. einem gewünschtes anderes Icon als das Standart Icon.
Beachte: Alle Verzeichnisse welche in der Files Sektion integriert sind, können auch hier angegeben werden, braucht man aber nicht da diese dann automatisch angelegt werden.
Beispiel aus der
[Files] Sektion:
Source: \Bin\MeinApp.exe; DestDir: {app}\Meine Applikation |
|
In diesem Beispiel wird das Verzeichnis Meine Applikation automatisch angelegt in dem Root Verzeichnis aus der Konstante {app}. Die Konstante {app} hat beim starten unseres kompilierten Setups den Wert aus der Setup Direktive DefaultDirName diese kann aber auf der Dirs Seite unseres Setups vom Benutzer geändert werden, nur wenn diese Seite nicht deaktiviert wurde. Ist dieses Root Verzeichnis vom Benutzer geändert, dann wird dieses Verzeichnis in der Konstanten {app} abgelegt und dann in allen Sektionen verwendet.
Der Eintrag für diese leeren oder auch wenn
gewünscht mit integrierten Dateien sehen folgendermaßen aus:
[Dirs] Name: {app}\Bin Name: {app}\Ole |
|
Um ein spezielles Icon für unser Verzeichnis zu erstellen benötigen wir eine Icon Grafik mit Typ ICO und eine Desktop.ini Datei die in diesem Verzeichnis mit dem gewünschten Icon hineinkopiert werden müssen in der [Files] Sektion.
Die Desktop.ini
Datei
wird folgendermaßen erstellt z.B. für ein BDE Verzeichnis:
[.ShellClassInfo] InfoTip=BDE Utilitys IconFile=BDE.ico IconIndex=0 |
|
Der Eintrag InfoTip ist der gewünschte Anzeigetext des Speedtips, wenn der Benutzer mit dem Mauszeiger auf oder über das Verzeichnis geht.
Der Eintrag IconFile ist die gewünschte Anzeigegrafik welche angezeigt werden soll, anstelle der Standartgrafik für Verzeichnisse.
Der Eintrag IconIndex ist die Grafik welche angezeigt werden soll, wenn diese Icon Datei mehrere Grafiken integriert.
Diese Desktop.ini können wir unter einem anderen Namen abspeichern z.B. in Desktop_BDE.ini. So können wir für verschiedene Verzeichnisse spezielle Ordner anlegen die mittels der jeweiligen dazugehörigen Grafikdatei und der dazugehörigen INI Datei, dann in dem jeweiligen Verzeichnis kopieren werden können.
Die Einträge für die [Dirs] Sektion werden dann für diese speziellen Verzeichnisse so eingetragen.
Beispiel:
[Dirs] Name: {app}\BDE; attribs: system |
|
Der hierfür verwendeten Einträge in der
[Files] Sektion müssen dann so lauten,
wenn diese Dateien in dem Verzeichnis Desk auf unserem Rechner sind:
[Files] Source: Desk\ Desktop_BDE.ini; DestDir: {app}\BDE; DestName: Desktop.ini; Attribs: hidden system Source: Desk\BDE.ico; DestDir: {app}\BDE; DestName: BDE.ico; Attribs: hidden system |
|
Die Source Dateien müssen sich hierbei im Verzeichnis der Setup Direktive SourceDir und dem Unterverzeichnis Desk befinden.
Beispiel:
[Setup] ... SourceDir=C:\Fish |
|
So muss die Datei C:\Fish\Desk\Desktop_BDE.ini auf unserem Rechner zur Verfügung stehen, um diese in das zu kompilierende Setup zu integrieren.
Nun folgend eine Aufstellung der unterstützten Parameter:
Name (erforderlich)
Beschreibung: Der Name des Ordners das hergestellt werden soll, wird normal mit einer Konstanten verwendet.
Beispiel:
Name: {app}\MyDir |
|
Attribs
Beschreibung: Spezifiziert zusätzliche Attribute
für das Verzeichnis. Dieses kann eins oder mehrere von den folgenden
mit einschließen:
readonly,
hidden,
system.
Wenn dieser Parameter nicht spezifiziert wird, weist Setup keine speziellen Attribute dem Verzeichnis zu. Wenn der Ordner bereits existiert, werden die Attribute kombiniert mit den bereits verwendeten des Ordners.
Beispiel:
Attribs: hidden system |
|
Flags
Beschreibung: Dieser Parameter ist als Eingabe eine Extraoption. Mehrfache Optionen können verwendet werden, indem man sie durch Leerzeichen trennt. Folgende Optionen werden unterstützt:
deleteafterinstallDie [Messages] SektionWeist [Setup] an, um das Verzeichnis zu erstellen, wie üblich, aber löscht es, sobald die Installation durchgeführt wurde (oder abgebrochen), wenn es leer ist. Dieses kann nützlich sein, wenn man temporäre Daten extrahiert, benötigte durch ein Programm, das Ausgeführt wird In der Sektion [Run]. Dieses Flag löscht keine Verzeichnisse, die bereits bevor der Installation existierten.
uninsalwaysuninstall
Instruiert den Uninstaller immer das Verzeichnis zu löschen, wenn es leer ist. Normalerweise versucht der Uninstaller nur, das Verzeichnis zu löschen, wenn es nicht bereits vor der Installierung existierte.
uninsneveruninstall
Instruiert dem Uninstaller dieses Verzeichnis nicht zu löschen. Als Standard, löscht der Uninstaller alle Verzeichnisse die in der Sektion [Dirs] angegeben wurden, wenn diese leer sind.
Eine [Messages]
Sektion
definiert die Meldungen die Inno Setup anzeigt, während der Installation
und dem Uninstallieren der Anwendung.
Normal, brauchen wir diese Sektion nicht in unserem
Skript, weil bereits alle Meldungen in der
Default.ISL Datei im Inno Setup Pfad (oder
auch übersetzt von Ihnen mit dem Translator) integriert sind.
Meldungen können überschrieben werden, beim herstellen einer [Messages] Sektion in Ihrer Skript Datei.
Um dieses zu veranlassen benötigen Sie die ID der Meldung welche geändert werden soll.
Dieses kann am besten gefunden werden, beim suchen in der Default.isl.
Als Beispiel, sagen wir Sie möchten den
&Next > Schalter auf der Wizard Seite
in &Forward > ändern.
Die dazugehörige ID dieser Meldung ist
ButtonNext, nun können Sie in der
[Messages] Sektion dieses so herstellen:
[Messages] ButtonNext=&Forward > |
|
Einige Meldungen haben Argumente wie
%1 und
%2.
Sie können die Reihenfolge dieser Argumente
ändern in (z.B.. durch verschieben von
%2 vor
%1) und auch duplizieren wenn Sie möchten
(z.B.. %1 ... %1 %2).
Bei Meldungen mit Argumenten, setzen Sie zwei % Zeichen ein um ein Zeichen % anzeigen zu können. %n stellt einen Zeilenumbruch her.
Wenn Sie die Meldungen übersetzen möchten von Inno Setup Texten in einer anderen Sprache, modifizieren Sie die Default.isl oder überschreiben alle Meldungen in jedem Skript das Sie herstellen möchten, machen Sie Änderungen an der Originaldatei Default.isl, speichern Sie diese mit einem anderen Namen wie z.B. MyTranslation.isl ab.
Um einige Installationen mit dieser geänderten MyTranslation.isl herzustellen geben Sie dies als Eintrag in der Messagefile Setup Direktiven in der [Setup] Sektion an.
Spezial - ID
Die Spezial - ID BeveledLabel Meldung ist ein spezieller Text der der in der linken Ecke von dem Wizard Fenster und im Uninstaller Fenster angezeigt wird. Diese kann belegt werden wie folgt.
Beispiel:
[Messages] BeveledLabel=ScriptMaker version 3.0 © 2002 Jonny Kwekkeboom |
|
Sollten Sie mehre immer wieder zu verwendende Message Änderungen durch führen wollen z.B. wenn ein Update unserer Anwendung ansteht können Sie alle diese Änderungen in einer Datei z.B. Update.ISL schreiben und zusätzlich mit in der [Setup] Sektion angeben. Hierbei werden alle geänderten Texte aus dieser Datei angezeigt anstatt der Standart Einträge.
Beispiel:
MessagesFile=MeinPfad\Translated.isl,MeinPfad\Update.ISL |
|
Dieses Kapitel ist wahlweise freigestellt. Es definiert alle Benutzer - Aufgaben, die Setup während der Installation durchführt. Diese Aufgaben erscheinen als Überprüfungskästen (Checkbox) und Radiotasten (Radiobutton) auf der zusätzlichen Aufgaben Wizard Seite.
Hier ein Beispiel für eine Tasks Sektion in
ISX mit Kindtasks:
[Tasks] Name: desktopicon; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"; Components: main Name: desktopicon\common; Description: "Für alle Anwender"; GroupDescription: "Additional icons:"; Components: main; Flags: exclusive Name: desktopicon\user; Description: "Nur für diesen Anwender"; GroupDescription: "Additional icons:"; Components: main; Flags: exclusive unchecked Name: quicklaunchicon; Description: "Create a &Quick Launch icon"; GroupDescription: "Additional icons:"; Components: main; Flags: unchecked Name: associate; Description: "&Associate files"; GroupDescription: "Other tasks:"; Flags: unchecked |
|
Hier ein Beispiel für eine Tasks Sektion unter
Inno:
[Tasks] Name: desktopicon; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"; Components: main Name: quicklaunchicon; Description: "Create a &Quick Launch icon"; GroupDescription: "Additional icons:"; Components: main; Flags: unchecked Name: associate; Description: "&Associate files"; GroupDescription: "Other tasks:"; Flags: unchecked |
|
Nun folgend eine Liste aller Parameter:
Beachte: Nur in ISX (My Inno Setup Extension) können Tasks mit Kindtasks angezeigt werden. Sichtbar werden diese dann erst wenn auch die Setup Direktive ShowTasksTreeLines=YES in der [Setup] Sektion gesetzt wurde!
Name (erforderlich)
Beschreibung: Der interne Name des Tasks. Die Anzahl von \ oder / Zeichen in dem Namen des Task generiert die Level dieses Tasks. Ein Tasks mit einem Level größer 1 oder mehreren Kind Tasks. Der Tasks wird vorher angezeigt mit dem um eins niedrigeren Kindtasks, dieser ist der Haupttasks. Andere Tasks mit dem gleichen Haupttasks sind untergeordnete Kindtasks des gleichen Levels. Ein Kindtasks kann nur aktiviert werden, wenn auch der Haupttasks aktiv ist. Ein Haupttasks kann nicht aktiviert werden, wenn kein Kindtasks aktiviert ist und es kann nicht verwendet werden beim steuern von Skriptzeilen. Wenn Kindtasks einen exclusive Flag haben (Radiobutton), kann nur einer von diesen aktiviert werden.
Beispiel:
Name: "desktopicon" |
|
Description (erforderlich)
Beschreibung: Die Beschreibung dieser Aufgabe.
Diese wird dem Endbenutzer angezeigt. Beispiel:
Description: "Create a &desktop icon" |
|
GroupDescription
Beschreibung: Dieser Eintrag beschreibt die Gruppenangehörigkeit
der Aufgabe. Alle zu einer Gruppe gehörigen Aufgaben werden gruppiert
mit einer Überschrift angezeigt. Die Überschrift zeigt die Gruppenangehörigkeit
an. Beispiel:
GroupDescription: "Additional icons" |
|
Components
Beschreibung: Ein Platzhalter für Komponenten
zu welchen die Aufgaben hinzugehören. Wenn der Endbenutzer eine Komponente
auswählt werden diese angezeigt. Eine Aufgabe ohne Komponenten wird
immer angezeigt. Beispiel:
Components: main |
|
Flags
Beschreibung: Dieser Parameter ist eine extra Option.
Mehrere Optionen können durch eine Leerstelle getrennt eingegeben
werden.
Die folgenden werden hierbei unterstützt:
checkedonceBeispiel:Gibt Setup an das dieser Eintrag nicht markiert werden soll, wenn Setup eine ältere Version mit gleichen Namen der Anwendung findet. Dieser Schalter kann nicht in Verbindung mit dem unchecked flag kombiniert werden. Wenn der Eintrag in UsePreviousTasks in der [Setup] Sektion mit No belegt wurde, wird dieser Schalter deaktiviert.
exclusive
Weist Setup an, dass diese Aufgabe gegenseitig Exklusives mit anderen Aufgaben ist, die den gleiche (vielleicht leere) Gruppenbeschreibung und einen exklusives Flag besitzen. Dies bedeutet das Setup Radiotasten (Radiobuttons) anstelle von Checkbox anzeigt. Daraus kann man dann nur eine exklusive Aufgabe innerhalb einer Gruppe auswählen. Setup macht sonst automatisch keine exklusiven Aufgaben (eine Checkbox anstelle von Radiobutton).
restart
Veranlasst Setup die Frage zu stellen ob der Endbenutzer sein System am Ende der Installation neu zu starten, unabhängig davon ob es notwendig ist (zum Beispiel bei der [Files] Sektion Einträge mit dem restartreplace Flag). Also genau wie AlwaysRestart aber über einen Tasks gesteuert.
unchecked
Veranlasst Setup das diese Aufgabe nicht markiert werden soll. Dieses Flag kann nicht mit dem checkedonce Flag kombiniert werden.
Flags: unchecked |
|
Diese Sektion ist optional, aber wird wohl von den meisten Installationen benötigt. Sie definiert alle Dateien die Setup auf den Anwender System übertragen soll.
Hier ein Beispiel für die
[Files] Sektion:
[Files] Source: "CTL3DV2.DLL"; DestDir: "{sys}"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstall Source: "MYPROG.EXE"; DestDir: "{app}" Source: "MYPROG.HLP"; DestDir: "{app}" Source: "README.TXT"; DestDir: "{app}"; Flags: isreadme |
|
Wie wir hierbei sehen werden die Dateien nicht in feste verdrahtete Verzeichnisse auf dem Zielrechner kopiert, sondern es werden dafür Konstanten (wie z.B. auch einem BDE Alias) eingesetzt um unsere benötigten Dateien zu installieren.
Da auf dem Zielrechners des jeweiligen Benutzers die Verzeichnisse anders sind wie z.B. in Deutschland C:\Programme wenn Windows auf dem Laufwerk C:\ installiert wurde, so wäre dieses Verzeichnis in England C:\program files. Um jetzt für unser zu erstellende Setup.exe in alle Länder lauffähig zu installieren, verwenden wir für dieses Beispiel die Konstante {pf}.
Die einzelnen Verzeichnis Konstanten die verwendet werden können lauten:
{app}Wie wir nun hierbei sehen ist es nicht von Nöten überhaupt feste Verzeichnisse anzugeben, da mit den Konstanten jeder Ordner auf dem Zielrechner erstellt werden kann (oder auch nicht wenn vorhanden) um unsere Dateien in die richtigen Verzeichnisse zu kopieren.Das Applikation Verzeichnis, welches der Benutzer innerhalb des Setups auf der Verzeichnis Seite auswählt.
Als Beispiel: Wenn Sie einen Eintrag eintragen wie {app}\MYPROG.EXE und der Benutzer wählt als Installationsordner C:\MYPROG für das Applikation Verzeichnis, dann wird Setup dieses umsetzen zu C:\MYPROG\MYPROG.EXE.
{win}
Das System Windows Verzeichnis.
Als Beispiel: Wenn Sie {win}\MYPROG.INI eintragen und Windows auf dem Zielrechner in C:\WINDOWS installiert wurde, dann setzt Setup dieses um zu C:\WINDOWS\MYPROG.INI.
{sys}
Das System Windows System Verzeichnis (System32 bei Windows NT, XP…).
Als Beispiel: Ihr Eintrag lautet {sys}\CTL3D32.DLL und Windows wurde installiert auf dem Zielrechner unter E:\WINDOWS\SYSTEM, Setup wird dieses umsetzen zu E:\WINDOWS\SYSTEM\CTL3D32.DLL (bzw zu E:\WINDOWS\SYSTEM32\CTL3D32.DLL wenn es eine NT Plattform ist.)
{src}
Der komplette Verzeichnisname von dem Setup.exe gestartet wurde.
Als Beispiel: Ihr Eintrag lautet {src}\MYPROG.EXE und der Benutzer installiert von dem Laufwerk S:\, dann setzt Setup dieses um zu S:\MYPROG.EXE.
{sd}
System Laufwerk. Das Laufwerk auf dem Zielrechner auf dem Windows installiert wurde, typisch C:. Auf Windows NT Plattform, die Verzeichnis Konstante ist hierbei equivalent zu der System Laufwerk Environment Variable.
{pf}
Programm Dateien. Der Pfad von dem System Programme Verzeichnis, typisch C:\Programme.
{cf}
Gemeinsame Dateien. Der Pfad von dem System „Gemeinsame Dateien“ Verzeichnis, typisch C:\Programme\Gemeinsame Dateien.
{tmp}
Temporäres Verzeichnis. Dies ist nicht der Eintrag der TEMP Environment Variable des Benutzers. Es ist ein Unterverzeichnis des Benutzer temporären Ordners welches beim starten der Installation erstellt wird (mit einem Namen wie z.B. C:\WINDOWS\TEMP\IS-xxxxx.tmp). Alle Dateien und Unterverzeichnisse werden entfernt wenn das Setup beendet wird. Dies ist auch gut um Dateien zu extrahieren um diese in der Run Sektion zu starten nach der Installtion.
{fonts}
Schriften Verzeichnis. Normalerweise lautet dieser FONTS und befindet sich im Windows Verzeichnis.
{dao}
DAO Verzeichnis. Dieser entspricht und ist gleich dem Eintrag {cf}\Microsoft Shared\DAO.
Nun die Beschreibung aller möglichen Parameter für die Files Sektion Einträge:
Source (erforderlich)
Beschreibung: Der Name der Ursprungsdatei. Der Compiler wird den Pfad aus dem Source Directory nehmen, wenn kein anderer Pfad eingegeben wurde. Es wird auch Wildcards (*) unterstützt für eine Gruppe von Dateien. Wenn eine Wildcard benutzt wird dann werden alle Dateien die gefunden werden übernommen die mit dem Ausdruck gleich sind.
Wenn das Flag external benutzt wird, Source muss dann den vollen Pfadnamen von einer existierenden Datei (oder Wildcard) auf dem vorhandenen Medium oder dem Anwender Rechner gefunden werden (z.B. {src}\license.ini).
Konstanten werden nur berücksichtigt wenn das external Flag spezifiziert wurde, weil der Kompiler keine Konstanten von sich selbst aus definiert.
Beispiel:
Source: "MYPROG.EXE" Source: "Files\*" |
|
DestDir (erforderlich)
Beschreibung: Der Ordner wohin Setup die Dateien bei dem Endbenutzer kopieren soll. Die beginnt normalerweise immer mit einer Verzeichniskonstante. Wenn das Verzeichnis nicht vorhanden ist, wird es automatisch angelegt und wird automatisch gelöscht bei der Deinstallierung der Anwendung wenn es leer ist.
Beispiel:
DestDir: "{app}" DestDir: "{app}\subdir" |
|
DestName
Beschreibung: Dieser Parameter spezifiziert einen neuen Namen für die Datei bei der Installation bei dem Endbenutzer. Als Standardwert benutzt Setup den Namen von dem Source Parameter, also ist es nicht unbedingt notwendig diesen Eintrag vorzunehmen.
Beispiel:
DestName: MYPROG2.EXE |
|
CopyMode (Wurde ersetzt ab Version 3.0.5 durch Flags und wird nicht mehr verwendet)
Standardwert : normal. Beschreibung: Spezifiziert die Exemplarrichtlinie für die Datei. Dieses muss eins von den folgenden sein:
normalBeispiel:Die meist verwendete Option. Wenn die Datei bereits beim Endbenutzer vorhanden ist und es sich um identisch der gleichen Datei handelt (geprüft über der Datei Information), dann wird die Datei nicht kopiert. Wenn die bereits existierende Datei eine neuere Version ist, dann wird gefragt ob diese ersetzt werden soll. Wenn die bereits existierende Datei keine Versionsinformation hat, aber die zu kopierende dann wird diese ohne den Anwender zu fragen kopiert.
onlyifdoesntexist
Die zu kopierende Datei wird nur geschrieben wenn sie nicht vorhanden ist auf dem Ziellaufwerk.
alwaysoverwrite
Die Datei wird immer geschrieben auch wenn sie bereits vorhanden ist, auch wenn die Datei die vielleicht bereits vorhanden ist eine neuere Version ist. Benutzen Sie dieses nicht bei gemeinsam benutzten Systemdateien!
alwaysskipifsameorolder
Das gleiche wie bei normal, mit dem Unterschied das keine Anzeige erscheint ob die Datei ersetzt werden soll. Wenn dieser Modus aktiviert ist, dann werden neuere Versionen beim Endbenutzer niemals überschrieben.
CopyMode: normal |
|
Attribs
Beschreibung: Spezifiziert zusätzliche Attribute
für die Datei. Dieses kann eins oder mehre von den folgenden mit einschließen:
Schreibgeschützt, Versteckt, System. Wenn
dieser Parameter nicht spezifiziert wird, weist Setup keine speziellen
Attribute der Datei zu.
Beispiel:
Attribs: hidden system |
|
FontInstall
Beschreibung: Erklärt, die Datei der Schrift, die installiert werden soll. Der Wert dieses Parameters ist der Name der Schrift, wie im Register oder in der WIN.INI gespeichert. Dieser muss den gleichen Name haben, wie die, die Sie beim Doppeltklicken auf der Schriftdatei im Explorer sehen. Beachten Sie, dass Setup automatisch “(TrueType)” zum Ende des Namens hinzufügt. Wenn die Datei keine TrueType Schrift ist, dann müssen Sie das Flag fontisnttruetype als Flag Parameter.
Es wird empfohlen hierbei als copy mode onlyifdoesntexist und das Flag uninsneveruninstall zu verwenden, wenn Sie die Schrift in dem {fonts} Verzeichnis kopieren. Um erfolgreich eine Schrift unter Windows 2000/XP zu installieren, muss der Endbenutzer administrative Rechte besitzen. Unter Windows NT 4.0 und frühere Versionen, kann jeder eine Schrift installieren.
Beispiel : *** EINE ZEILE!!! ***
Source: "OZHANDIN.TTF"; DestDir: "{fonts}"; FontInstall: "Oz Handicraft BT"; CopyMode: onlyifdoesntexist; Flags: uninsneveruninstall |
|
Flags
Beschreibung: Dieser Parameter ist als Eingabe eine Extraoption. Mehrfache Optionen können verwendet werden, indem man sie durch Leerzeichen trennt. Folgende Optionen werden unterstützt:
allowunsafefilesBeispiel:Sperrt die automatische Überprüfung des Compilers auf unsichere Dateien. Es wird sehr empfohlen, dass Sie NICHT dieses Flag benutzen, nur dann wenn Sie absolut sicher sind, und wissen, was Sie tun.
comparetimestampalso
(Special-purpose) Weist Setup an, wie nach dem vergleich der Zeitstempel fort zufahren, wenn eine Datei, die bereits kopiert war, auf dem System des Benutzers existiert, und die vorhandene Datei die gleiche Versionsinfo hat, wie die Datei, die installiert wird. Normalerweise unter diesem Umstand würde Setup nicht versuchen, die vorhandene Datei zu überschreiben, aber, wenn dieses Flag benutzt wird, wird die vorhandene Datei überschrieben, wenn sie einen älteren Zeitstempel hat, als die Version der Dateiinstallation versucht zu installieren. Dieses Flag wird ignoriert, wenn der Exemplarmodus nicht entweder Normal oder alwaysskipifsameorolder ist.
confirmoverwrite
Immer nachfragen ob die Datei überschrieben werden soll, wenn sie bereits vorhanden ist.
deleteafterinstall
Instruiert Setup die Datei zu kopieren, aber wird beim beenden oder Abbruch des Setups wieder gelöscht. Dieses kann sinnvoll zum extrahieren von Temporären Dateien sein die in der [Run] Sektion verwendet werden.
Bei Verwendung dieses Flag, wird nicht gefragt ob die Datei gelöscht werden soll, auch wenn diese bereits vorhanden war, wird die Datei beim beenden des Setups gelöscht.
Dieses Flag kann nicht kombiniert werden mit isreadme, regserver, regtypelib, restartreplace, sharedfile, oder dem uninsneveruninstall Flags.
external
Dieses Flag weist Inno Setup an, die Datei nicht statisch zu kompilieren, die durch den Quellparameter in die Installationsdateien spezifiziert wird, aber kopiert anstatt von einer vorhandenen Datei auf den Verteilungsmedia oder dem System des Benutzers. Sehen Sie die unter Source Parameter Beschreibung mehr Information hierzu
Fontisnttruetype
Dieses Flag spezifiziert einen Eintrag für non-TrueType Schrift mit den FontInstall Parameter.
isreadme
Datei ist die “LiesMich” Datei. Nur eine Datei kann dieses Flag verwenden. Wenn eine Datei dieses Flaghat, wird dem Endbenutzer gefragt ob er oder sie die LiesMich Datei sehen möchte nach beenden der Installation. Wenn Ja ausgewählt wurde, Setup öffnet dann diese Datei, mit der Standartdatei für diesen Dateityp. Dafür sollte die LiesMich Datei immer enden mit der Extension wie .txt, .wri, .rtf, oder .doc.
Beachten Sie wenn Setup den Rechner neu startet (durch das Flag restartreplace oder wenn AlwaysRestart=YES in der [Setup] Sektion), Der Endbenutzer keine Auswahlmöglichkeit angezeigt bekommt um diese Datei anzusehen.
noregerror
Wenn dieses Flag kombiniert wird mit regserver oder dem regtypelib Flag, dann zeigt Setup keine Fehlermeldungen an, wenn die Registration fehlschlägt.
onlyifdestfileexists
Die Datei nur kopieren wenn bereits eine Datei gleichen Namens auf dem Rechner des Endbenutzers vorhanden ist. Dieses Flag kann behilflich sein wenn diese Installation ein Patch für Ihre Anwendung ist, und Sie nur diese Datei(en) kopieren möchten wenn sie auch vorhanden waren.
overwritereadonly
Immer eine read-only Datei überschreiben. Ohne dieses Flag, fragt Setup dem Endbenutzer ob die schreibgeschützte Datei überschrieben werden soll.
recursesubdirs
Gibt den Compiler an auch die Source Dateinamen/Wildcard in Unterordnern unter dem gerade verwendeten Ordner zu kopieren. Dieses Flag kann nicht mit dem external Flag kombiniert werden.
regserver
Registrierung von OLE Server (a.k.a. ActiveX Control). Mit diesem Flag, Setup wird die DLL/OCX's lokalisieren und ausführen. (DllRegisterServer export). Der Uninstaller ruft DllUnregisterServer auf. Wenn dises in kombination mit dem sharedfile Flag verwendet wird, dann wird diese DLL/OCX nur unregistriert wenn der Zähler den Wert 0 erhält.
Siehe die Bemerkung am Ende dieses Kapitels für mehr Informationen.
regtypelib
Registerierung den Typs (.tlb). Der Uninstaller wird dieses Unregistrieren wenn bei dem Typ (das Flag uninsneveruninstall spezifiziert wurde). Genau wie das regserver Flag, wenn dieses benutzt wird in Kombination mit sharedfile, dann wird die Datei nur unregistriert von dem Uninstaller wenn der Refrenzzähler gleich 0 (zero) ist.
Siehe die Bemerkung am Ende dieses Kapitels für mehr Informationen.
restartreplace
Dieses Flag ist im Allgemeinen nützlich, wenn man Kernsystemdateien ersetzt. Wenn die Datei vorher existierte und gefunden wurde, und vielleicht gesperrt wurde, sodass die Installation, nicht imstande ist, diese zu ersetzen, wird eine Gründung für die Datei registriert (jedes WININIT.INI oder durch das Verwenden von MoveFileEx, für zu ersetzende Windows oder Windows NT Dateien), die beim nächstes Mal, wenn das System hochgefahren wird ersetzt. Wenn dieses notwendig ist, wird dem Endbenutzer dies angezeigt, mit der Meldung den Rechner herunterzufahren oder später.
Um Kompatibilität zu erreichen mit Windows 95/98 und ME, ist es nicht empfohlen lange Dateinamen für die Datei zu verwenden. Nur “8.3” (Zeichen) Dateinamen werden unterstützt. (Windows NT und 2000 haben keine Begrenzung hierfür)
ACHTUNG Wichtig: Das restartreplace Flag wird nur erfolgreich verwendet für eine damit deklarierte Datei unter Windows NT/2000, wenn der Endbenutzer administrative Rechte besitzt. Wenn der Benutzer keine administrative Rechte besitzt wird folgende Meldung angezeigt: RestartReplace failed: MoveFileEx failed; code 5. Deshalb, wenn das restartreplace Flag benutzt wird ist darauf zu achten das der Endbenutzer diese Anwendung nur installieren kann, wenn er administrative Rechte besitzt, also auch AdminPrivilegesRequired=1 bzw. PrivilegesRequired=admin (ab Version 3.0.4) in der [Setup] Sektion benutzen.
sharedfile
(nur für Windows 95/NT 4+) Siehe Windows' shared file Zähler unter (der Registrierung von Windows HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs). Dieses schaltet die shared Datei zwischen Applikationen ein, ohne um sich zu sorgen unbeabsichtigt Dateien zu löschen. Jeder Zeit, welche die Datei, der Bezugszählimpuls für die Datei installiert wird, wird diese erhöht. Wenn eine Anwendung, welche die Datei verwendet, deinstalliert wird, dann wird der Bezugszählimpuls wird verringert. Wenn der Zählimpuls null erreicht, wird die Datei gelöscht (mit der Bestätigung des Benutzers).
Die meisten Dateien, die zum Windowssystemverzeichnis installiert werden, sollten dieses Flag benutzen und verwenden wie OCX und DPL Dateien (Paket Delphis 3). Eine der wenigen Ausnahmen ist MFC DLLs, die dieses Flag nicht benutzen sollte. Stattdessen sollte der onlyifdoesntexist ExemplarModus, in Verbindung mit dem uninsneveruninstall Flag verwendet werden. Oder wenn, die neueste Version einer bestimmten MFC-DLL zu installieren ist, benutzen Sie das Flag alwaysskipifsameorolder, zusammen mit dem Flag uninsneveruninstall und dem restartreplace Flag.
Wenn die Installation unter NT 3.51 System ausgeführt wird, werden Dateien mit diesem Flag niemals gelöscht.
skipifsourcedoesntexist
Dieses Flag hat nur einen Effekt wenn das external Flag auch verwendet wird. Es gibt den Installer an, ob der Eintrag stillschweigend nicht ausgeführt werden soll, wenn die Datei nicht vorhanden ist, anstatt eine Anzeige einer Fehlermeldung.
uninsneveruninstall
Niemals diese Datei deinstallieren. Dieses Flag sollte überlegt eingesetzt werden die normal mit der Kombination mit dem onlyifdoesntexist Kopiermodus verwendet wird. Dieses wird benutzt wenn eine besondere Shareddatei installiert werden soll wie z.B. CTL3DV2.DLL oder eine MFC DLL, und sie möchten diese Datei nicht deinstallieren, weil vielleicht andere Anwendungen diese Datei noch benötigen.
Neu ab Version 3.0.5 und höher anstelle der Copymode Parameter
CopyMode: normal -> Flags: promptifolder
CopyMode: alwaysskipifsameorolder -> Kein neuer Flags (Nun der Standartwert kein Ersatz.)
CopyMode: onlyifdoesntexist -> Flags: onlyifdoesntexist
CopyMode: alwaysoverwrite -> Flags: ignoreversion
CopyMode: dontcopy -> Flags: dontcopyignoreversion
Die Datei Versionsinfo wird nicht verglichen, bestehende Dateien werden
immer überschrieben. Dieses Flag sollte nur bei eigenen Dateien verwendet
werden und NIEMALS bei System Dateien.onlyifdoesntexist
Kopiere die Datei NUR wenn diese NICHT auf dem Zielrechner vorhanden ist.
promptifolder
Wenn eine Datei mit einer kleineren Versionsnummer installiert werden soll
(älteren Datums, wenn auch comparetimestamp Flag verwendet wird) als die
bestehende Datei, dann wird Setup diese NICHT überschreiben. Setup wird dann
den User fragen ob die Datei überschrieben werden soll mit der Standart
Antwort die bestehende zu erhalten.dontcopy (nur in My Inno Setup Extension ISX)
Diese Datei wird niemals kopiert auf dem Zielrechner. Dieses Flag ist
exklusiv für Dateien die in der Code Section gestartet werden bestimmt.
Flags: isreadme |
|
Bemerkung: Setup registriert alle Dateien mit den regserver- oder regtypelib Flag als der letzten Jobstep der Installation. Jedoch wenn in der [Setup] Sektion das richtungweisende AlwaysRestart = YES ist oder wenn es Dateien mit dem restartreplace Flag gibt, erhalten alle Dateien bei dem folgenden Neubooten des Rechners eine Registrierung (durch das Erstellen eines Eintrages in der Registertaste RunOnce in Windows).
Wenn Dateien mit ein
.HLP Extension (Windowshilfe archiviert),
deinstalliert wird, wird auch automatisch die entsprechenden
.GID und
.FTS - Dateien zusätzlich
gelöscht.
Die [Registry]
Sektion
Diese Sektion ist optional, aber wird wohl von vielen Installationen benötigt. Sie definiert alle Registrierungseinträge welche unsere Applikation benötigt.
Hier ein Beispiel für die
[Files] Sektion:
[Registry] Root: HKCU; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty Root: HKCU; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey Root: HKLM; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty Root: HKLM; Subkey: "Software\My Company\My Program"; Flags: uninsdeletekey Root: HKLM; Subkey: "Software\My Company\My Program"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}" |
|
Die folgende Auflistung zeigt die unterstützten Parameter:
Root (erforderlich)
Beschreibung: Der Root Schlüssel. Dies muss ein Eintrag einer dieser unteren sein:
Root: HKCU |
|
Subkey (erforderlich)
Beschreibung: Der Subkey Name, dieser Eintrag darf auch Konstanten ( {app}, {pf} etc.) enthalten kann.
Beispiel:
Subkey: Software\My Company\My Program |
|
ValueType
Beschreibung: Der Datentyp des Eintrages. Es muss eines der folgenden sein:
Wenn string verwendet wird, dann erstellt Setup ein Zeichen (REG_SZ) Eintrag.
Wenn expandsz spezifiziert wurde, Setup generiert dann ein expand-string (REG_EXPAND_SZ) Eintrag. Dieser Datentyp ist primär für Windows NT, aber wird auch unter Windows 95/98 unterstützt.
Wenn multisz verwendet wird, denn stellt Setup ein multi-string (REG_MULTI_SZ) Eintrag her. Wenn dword verwendet wird, denn stellt Setup ein integer (REG_DWORD) Eintrag her.
Wenn binary verwendet wird, denn stellt Setup ein binar (REG_BINARY) Eintrag her.
Beispiel:
ValueType: string |
|
ValueName
Beschreibung: Der Name des Eintrages welcher hergestellt werden soll, dieser kann auch Konstanten erhalten. Wenn der Eintrag leer ist, dann wird zum “Default” Eintrag geschrieben. Wenn ValueType Parameter auf none gesetzt wurde, wird dieser Parameter ignoriert.
Beispiel:
ValueName: Version |
|
ValueData
Beschreibung: Die Daten des Eintrages.
Wenn ValueType Parameter gleich string, expandsz, oder multisz ist, dann kann diese Zeichenfolge auch Konstanten enthalten. Wenn der Datentyp gleich dword ist, dann kann der Eintrag Dezimal (z.B. 123) oder Hexadezimal sein (z.B. $7B). Wenn der Datentyp gleich binary ist, dieses ist eine Sequenz von Hexadezimalen Bytes in Form von: 00 ff 12 34. Wenn der Datentyp gleich none ist, dann wird dieser Eintrag ignoriert.
Bei einer Zeichenfolge vom Typ string, expandsz, oder multisz kann eine spezielle Konstante verwenden Namens {olddata} in diesem Parameter verwendet werden. {olddata} ist eine Konstante die mit dem bisherigen Eintrag gefüllt wird. Die {olddata} Konstante kann gut für Updateversionen der Anwendung verwendet werden, wobei zu dem bestehenden Eintrag etwas hinzugefügt werden soll, zum Beispiel {olddata};{app}. Wenn kein Eintrag oder keine Zeichenfolge vorhanden war dann wird der Inhalt von der {olddata} Konstante „still“ gelöscht. {olddata} wird auch „still“ gelöscht, wenn der Wert, der erstellt wird, ein Datentyp von multisz ist, aber der vorhandene Wert nicht eine Multizeichenkettenart ist (z.B. es ist REG_SZ oder REG_EXPAND_SZ) und umgekehrt.
Bei einem Datentypeintrag von multisz, können Sie die spezielle Konstante Namens {break} in diesem Parameter verwenden für Zeilenumbruch (nulls).
Beispiel:
ValueData: 1.0 |
|
Flags
Beschreibung: Dieser Parameter ist eine extra Option. Mehrere Optionen können verwendet werden getrennt durch ein Leerzeichen. Die folgenden werden hierbei unterstützt:
createvalueifdoesntexistWenn dieses Flag spezifiziert wird, dann wird Setup nur dann einen Eintrag generieren, wenn nicht bereits ein Eintrag hierfür vorhanden ist. Dieses Flag hat keinen Effekt wenn der Datentyp gleich none ist, oder wenn sie das deletevalue Flag verwenden.
deletekey
Wenn Sie dieses Flag verwenden, wird Setup zuerst einen bestehenden Eintrag entfernen wenn er vorhanden ist, mit allen darin vorhandenen subkeys. Wenn ValueType nicht none ist, dann wird eine neuer Schlüssel mit Eintrag erstellt.
deletevalue
Wenn Sie dieses Flag verwenden, wird Setup zuerst den Eintrag löschen wenn der Eintrag vorhanden ist. Wenn ValueType nicht auf none gesetzt wurde, dann wird der Schlüssel (Key) wenn er nicht vorhanden ist generiert und der neue Eintrag erstellt.
dontcreatekey
Wenn Sie dieses Flag verwenden, wird Setup keinen Schlüssel (Key) und Eintrag erstellen wenn nicht bereits einer vorhanden ist auf dem Endbenutzer System. Es wird keine Fehlermeldung erscheinen wenn der Schlüssel nicht existierte. Typisch für dieses Flag ist eine Kombination mit dem uninsdeletekey Flag, für das Löschen der Schlüssel (Keys) während der Uninstallation, aber keinen erstellen bei der Installation.
noerror
Keine Fehlermeldungen anzeigen, wenn Setup keinen Schlüssel oder Eintrag erstellen kann.
preservestringtype
Dieser Flag ist nur akzeptabel, wenn der ValueType Parameter gleich string oder expandsz ist. Wenn dieses Flag verwendet wird, und der Eintrag nicht existiert oder nicht vom Datentyp (REG_SZ oder REG_EXPAND_SZ) ist, dann wird er erstellt mit dem Datentyp des ValueType Parameters. Wenn der Eintrag bereits vorhanden ist und ein Datentyp von string ist, dann wird er überschrieben mit dem gleichen Datentyp wie er bereits hatte.
uninsclearvalue
Wenn die Anwendung deinstalliert wird, wird der Eintrag auf "" (NULL) gesetzt (Datentyp REG_SZ). Dieses Flag kann nicht mit dem uninsdeletekey Flag kombiniert werden.
uninsdeletekey
Wenn das Programm deinstalliert wird, wird der Schlüssel (Key) inklusive alle darin enthaltenen subkeys gelöscht. Es ist also KEINE so gute Idee, wenn sie dieses bei einem Schlüssel verwenden, den auch Windows benutzt. Sie sollten also dieses Flag nur verwenden für die Einträge der privaten Schlüssel Ihrer Anwendung!!!!!
Beispiel FALSCH:
Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "MyApp"; ValueData: {app}\MyApp.exe"; Flags: dontcreatekey uninsdeletekey <<<< FALSCH !!!!
Hierbei würden ALLE Einträge aus dem Schlüssel >> \Microsoft\Windows\CurrentVersion\Run << ENTFERNT!!!!uninsdeletekeyifempty
Wenn das Programm deinstalliert wird, wird der Schlüssel nur entfernt wenn keine subkeys darin enthalten sind. Dieses Flag kann kombiniert werden mit dem uninsdeletevalue Flag.
uninsdeletevalue
Löschen des Eintrages beim deinstallieren der Anwendung. Dieses Flag kann kombiniert werden mit dem uninsdeletekeyifempty Flag.
Bemerke: In Inno Setup Versionen vor 1.1. Sie konnten dieses Flag zusammen mit der Datenart none benutzen und hatte die Funktion von dem DeleteKeyIfEmpty Flag. Diese Technik wird nicht mehr unterstützt. Sie müssen das uninsdeletekeyifempty Flag jetzt benutzen, um dieses zu vollenden.
Beispiel:
Flags: uninsdeletevalue |
|
Diese Sektion ist optional (Programmgruppe), aber wird wohl von den meisten Installationen verwendet. Es definiert ein Shortcut Setup das im Benutzer Startmenü (oder Programm Manager) und/oder anderswo so z.B. auf dem Desktop generiert wird.
Die Uninstall Aufruf - Datei wird erstellt vom Setup, also brauchen sie diese nicht manuell in der [Icons] Sektion hinzufügen. Als Standard, wird keine Uninstall Aufrufdatei hergestellt, wenn die Installation unter Windows 95/NT 4+ läuft - nur wenn diese unter Windows NT 3.51 läuft. Um einen Eintrag zu generieren benutzen Sie AlwaysCreateUninstallIcon in der [Setup] Sektion.
Achtung: Ab Inno Version 3.x wurde dieses geändert! Die Direktive AlwaysCreateUninstallIcon wurde entfernt!
Beispiel ab Version 3.0 für ein Uninstall Gruppeneintrag:
[Icons] Name: {group}\Uninstall MyApp; Filename: {uninstallexe} |
|
Hier ein Beispiel für einer
[Icons] Sektion:
[Icons] Name: {group}\My Program; Filename: {app}\MYPROG.EXE; WorkingDir: {app} |
|
Nun folgend die unterstützten Parameter:
Name (erforderlich)
Beschreibung: Der Name und Standort von dem Shortcut (oder Programm Manager Aufruf) das hergestellt werden soll. Einige der Shell Ordner Konstanten oder Verzeichnis Konstanten dürfen hier verwendet werden. Denken Sie daran das Shortcuts als literale Dateien gespeichert werden die genau wie beim Dateinamen nicht alle Zeichen verwendet werden dürfen. Also, es ist nicht ratsam, wenn Sie zwei Dateien mit dem gleichen Namen haben nicht sinnvoll erscheint zwei Shortcuts zu generieren mit dem gleichen Namen.
Beispiel:
Name: {group}\My Program Name: {group}\Subfolder\My Program Name: {userdesktop}\My Program Name: {commonprograms}\My Program |
|
Filename (erforderlich)
Beschreibung: Der Befehlszeilen Dateiname für diesen Shortcut, der normalerweise mit einer Verzeichnis Konstante beginnt.
Beispiel:
Filename: {app}\MYPROG.EXE |
|
Parameters
Beschreibung: Optionale Befehlszeilen für diesen Shortcut, die auch Konstanten enthalten kann. Anführungszeichen können nur unter Windows 95/NT 4+ verwendet werden.
Beispiel:
Parameters: /play filename.mid |
|
WorkingDir
Beschreibung: Das Arbeits- (oder Start In) Verzeichnis für diesen Shortcut, dieses ist das Verzeichnis von dem aus das Programm gestartet wird. Wenn dieser Parameter nicht enthalten oder Leer ist, dann wird Windows ein Standardpfad verwenden, der wiederum unterschiedlich sein kann bei den diversen Windows Versionen. Dieser Parameter kann auch Konstanten verwenden.
Beispiel:
WorkingDir: {app} |
|
HotKey
Beschreibung: Das hot key (oder “shortcut key”) setzt das Shortcut, welches eine Kombination aus Zeichen bestehen kann mit welchem das Programm gestartet wird.
Beachte: Wenn Sie den shortcut key ändern und die Anwendung deinstallieren, dann wird Windows diesen weiter verwendet bis sie sich ausloggen oder einen Restart des Rechners durchführen.
Beispiel:
HotKey: ctrl+alt+k |
|
Comment
Beschreibung: Spezifiziert das Kommentar- (oder “Beschreibung”) Feld von dem Shortcut, die verwendet werden für das Popup (Speedtip) in Windows 2000/XP and Me. Frühere Windows Versionen ignorieren diesen Kommentar.
Beispiel:
Comment: This is my program |
|
IconFilename
Beschreibung: Der Dateiname des Bildes von einem Anwender Shortcut (lokalisiert auf dem Benutzersystem) der angezeigt wird. Dies kann eine ausführbare Datei (.exe, .dll) sein oder ein .ico Datei. Wenn dieser Parameter nicht spezifiziert ist oder Leer, Windows wird dann das Standardbild anzeigen. Dieser Parameter kann auch Konstanten beinhalten.
Beispiel:
IconFilename: {app}\myicon.ico |
|
IconIndex
Standartwert: 0
Beschreibung: Zero-based Index von dem Icon spezifiziert in dem IconFilename. Wenn IconIndex non-zero ist und IconFilename nicht spezifiziert oder Leer ist, dann ist IconFilename das gleiche Bild wie der Dateiname.
Beispiel:
IconIndex: 0 |
|
Flags
Beschreibung: Diese Parameter sind extra Optionen. Mehrere Optionen können verwendet werden getrennt durch ein Leerzeichen. Die folgenden Optionen werden unterstützt:
closeonexitBeispiel:Wenn dieses Flag gesetzt wird, dann wird Setup das “Schließen beim beenden” Eigenschaft setzen von diesem Shortcut. Dieses Flag hat nur einen Effekt, wenn das Shortcut eine MS-DOS Applikation ist (es endet mit .pif Extension). Wenn weder dieses Flag noch das dontcloseonexit Flag spezifiziert werden, dann wird Setup nicht versuchen diese Eigenschaft des Fensters zu ändern.
createonlyiffileexists
Wenn dieses Flag verwendet wird, dann wird der Installer nur einen Eintrag in der Programmgruppe anlegen wenn die Datei existiert.
dontcloseonexit
Das gleiche wie closeonexit, außer das Setup dann die Eigenschaft des Fensters “Schließen beim beenden” nicht markiert (Fenster wird nicht geschlossen).
runmaximized
Wenn dieses Flag gesetzt wird, dann setzt Setup die Run Einstellungen von diesem Shortcut auf “Maximal” so dass dann das Programm mit maximiertem Fenster startet. Dieses Flag wird ignoriert unter Windows NT 3.51.
runminimized
Wenn dieses Flag gesetzt wird, dann setzt Setup die Run Einstellungen von diesem Shortcut auf “Minimal” so dass dann das Programm mit minimiertem Fenster startet.
uninsneveruninstall
Gibt den Uninstaller an das der Eintrag nicht gelöscht werden soll.
useapppaths
Wenn dieses Flag verwendet wird, spezifiziert dieser Eintrag nur den Dateinamen (ohne Pfad) in dem Filename Parameter, und Setup holt sich den Pfadnamen aus dem Windows Registrierungsschlüssel: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths und setzt diesen automatisch mit ein. (Gut für Update)
Flags: runminimized |
|
Dieses Kapitel ist wahlweise freigestellt.
Es definiert und stellt somit alle Installationsarten
zur Verfügung. Diese werden dann angezeigt auf der Komponenten Seite
des Wizard.
Während der Kompilation wird ein Eintrag
definiert, wenn Sie auch Komponenten in der Sektion
[Components] definiert haben, auch dann
wenn Sie keine Types definiert haben. Wenn Sie die
Default.iss Original Message Datei verwenden
(englische) Meldungen, dann sind diese Types dieselben, wie die Types im
unteren Beispiel.
Hier ein Beispiel der Sektion
[Types]:
[Types] Name: full; Description: Komplett Installation Name: compact; Description: Kompakt Installation Name: custom; Description: Anwender definierte Installation; Flags: iscustom |
|
Die folgende Liste enthält die unterstützenden Parameter:
Name (erforderlich)
Der interne Name des definierten Types. Verwendet wie die Parameter für Komponenten in der [Components] Sektion, welche beschreibt welche Types zu welchen Komponenten gehört.
Beispiel:
Name: full |
|
Description (erforderlich)
Die Beschreibung des definierten Types. Diese Beschreibung wird während der Installation angezeigt.
Beispiel:
Description: Komplett Installation |
|
Flags
Beschreibung: Dieser Parameter ist als Eingabe eine Extraoption. Mehrfache Optionen können verwendet werden, indem man sie durch Leerzeichen trennt.
Die folgenden Optionen werden hierbei unterstützt:
iscustomBeispiel:Weist Setup an, dass die „Types“ ein kundenspezifischer Typ ist. Wann immer der Endbenutzer manuell die Bestandsteilauswahl während der Installation ändert, stellt Setup die Installationsart auf den kundenspezifischen Typ ein. Beachten Sie, dass, wenn Sie nicht einen kundenspezifischen Typen definieren, Setup dem Benutzer nur erlaubt, eine Installationsart und Bestandteile die Sie nicht mehr manuell wählen brauchen (select/unselect).
Flags: iscustom |
|
Dieses Kapitel ist wahlweise freigestellt. Es definiert alle Bestandteile, die Setup auf der Bestandsteilseite des Wizard für kundenspezielle „Types“ zeigt.
Hier ein Beispiel des Sektion
[Components]:
[Components] Name: main; Description: Main Files; Types: full compact custom; Flags: fixed Name: help; Description: Help Files; Types: full |
|
Das obige Beispiel legt zwei Komponenten fest: Die “Main” Komponente, diese enthält, wenn der Endbenutzer ein „Types“ mit Namens- “full”, “compact” oder “custom” auswählt, und eine Komponente “Help” die Setup erhält, wenn der Endbenutzer den Types “full” auswählt.
Dann werden alle Dateien mit den Types “full” und “Help” der Komponentenparameter installiert. “custom”, wenn der Benutzer dies wünscht, obwohl “compact” nicht in der Types Liste der “Help” Komponente ist.
Das folgende ist eine Liste der unterstützten Parameter:
Name (erforderlich)
Beschreibung: Der interne Name der Komponente.
Beispiel:
Name: help |
|
Description (erforderlich)
Beschreibung: Die Beschreibung der Komponente. Dem Endbenutzer dieser Komponenten wird während der Installation angezeigt.
Beispiel:
Name: Help Files |
|
Types
Beschreibung: Liste der Types zu welcher diese Komponente gehört. Wenn der Endbenutzer eine Types von dieser Liste auswählt, wird diese Komponente installiert.
Wenn die örtlich fixed Flags nicht benutzt wird (sehen Sie unten), werden irgendwelche kundenspezifischen Types (Types mit dem iscustomflag) in dieser Liste von Setup ignoriert.
Beispiel:
Types: full compact |
|
ExtraDiskSpaceRequired
Beschreibung: Extra Speicherkapazität durch diese Komponente, ähnlich der Richtlinie ExtraDiskSpaceRequired für die [Setup] Sektion.
Beispiel:
ExtraDiskSpaceRequired: 0 |
|
Flags
Dieser Parameter ist ein Set Extraoptionen. Mehrfache
Optionen können verwendet werden, indem man sie durch ein Leerzeichen
trennt.
Die folgenden Optionen werden unterstützt:
fixedBeispiel:Weist Setup an, dass diese Komponente nicht oder gemischt durch den Benutzer während der Installation manuell bis zum Ende ausgewählt werden kann.
restart
Weist Setup an, den Benutzer zu bitten, das System, wenn diese Komponente installiert wird, unabhängig davon ob dieses notwendig ist neu zu starten (zum Beispiel wegen [Files] Sektionseinträge mit RestartReplaceFlag). Wie AlwaysRestart aber pro Komponente.
Disablenouninstallwarning
Weist Setup an, nicht zu warnen, wenn der Benutzer, diese Komponente nicht auswählt, beim deinstallieren der Anwendung wenn diese bereits auf dem Rechner des Endverbrauchers ist.
Abhängig von der Kompliziertheit Ihrer Komponente, können Sie versuchen, die abgewählten Komponenten in der Sektion [InstallDelete] automatisch zu benutzen um diese zu deinstallieren nach einer Installation.
Flags: fixed |
|