AKInstaller      
Erste Schritte - Teil2: Eigenschaften und Bedingungen

Wie schon in Teil 1 erwähnt, kann das normale Windows-Startmenü ab Windows 8 keine Untermenüs/ordner mehr darstellen. Da dort statt vernünftig in Hierarchien sortiert <STARMENU>\Sonstiges\Lizenz.txt jetzt z. B. 10 Mal Lizent.txt auftauchen kann, gibt es die Möglichkeit bestimmte Verknüpfungen unter Windows 8+ nicht zu erstellen, namens Anheften.

B

Oder aber man regelt dieses über Bedingungen. Und dieses bringt uns direkt zu einer weiteren sehr mächtigen Funktion des AKInstallers.

Bedingungen werden an vielen Stellen als Einstellung angeboten. Sei es hier als Startbedingungen des Setups oder eben als Bedingung zur Erstellung einer Verknüpfung.

Eine Bedingung liefert immer TRUE wenn alle Angaben zutreffen oder FALSE wenn die Angaben eben nicht zutreffen. Eine leere Bedingung ergibt immer TRUE. So als hätten Sie TRUE oder 1 direkt eingegeben.

Eine Angabe von 0 (die Zahl Null) ist FALSE.

Bedingungen vergleichen Eigenschaften mit bestimmten Werten oder anderen Eigenschaften.

Eigenschaften sind wiederum Platzhalter für deren Werte.

Es gibt feste Eigenschaften die beim Start des Setup vom Setup gesetzt werden, oder solche die durch Benutzer definierte Aktionen wie Erweiterungs-Dlls oder Skripte (dazu mehr in anderen Teilen) oder andere Aktionen gesetzt werden.


 

Im Bild sind die grünen Eigenschaften feste Eigenschaften, dunkel blaue sind Benutzer-Eigenschaften hier auf der Seite Eigenschaften definiert. MyVar ist zur Zeit unbekannt und einfach schwarz.

Diese Bedingung testet, ob MyString der Zeichenkette Hallo entspricht, durch ~ wird auch ein HaLLo oder hallo akzeptiert und sie testet ob MyVar den Wert 100 hat. Trifft beides zu, ist der linke Teilausdruck (weil er in Klammern steht) Wahr/TRUE. Der rechte Teilausdruck testet ob VersionNT kleiner ist als 600, das System also vor Windows Vista datiert ist.

Nehmen wir an, das der rechte Ausdruck auch TRUE ist, nun werden links und rechts per UND getestet. Und das Gesamtergebnis ergibt ebenfalls TRUE. Bedingung erfüllt.

Klammern sind ein sehr wichtiger Faktor, da diese mehrer Ergebnis zu einem bündelt können.

Das Beispiel aus dem Bild oben aufgeschlüsselt:

(NTProductType >= 10 AND VersionNT) Ist es Windows NT Server (Teilausdruck 1)
OR ( Beginn von Teilausdruck 2
NTProductType < 10 VersionNT Workstation
AND ( Beginn von Teilausdruck 3
(VersionNT = 501 OR VersionNT = 502) AND
ServicePack >= 3)
Windows XP ODER Windows XP64 mit (AND) Sericvepack 3+
Teilausdruck 3.1)
OR (VersionNT = 600 AND ServicePack >= 2) Vista mit Service Pack 2+ Teilausdruck 2.2)
OR (VersionNT = 601) Windows 7 (Teilausdruck 3.3)
OR (VersionNT = 602) Windows 8 (Teilausdruck 3.4)
OR (VersionNT = 603) Windows 8.1 (Teilausdruck 3.5)
OR (VersionNT = 1000) Windows 10 (Teilausdruck 3.6)


Die Bedingung sagt also, sei TRUE auf Windows Servern, Windows XP/64 SP3, Vista SP2 und höher. Da die Bedinung über die GUI zusammengeklickt wurde, ist sie etwas umständlicher als unbedingt nötig.

Die Kurzform: VersionNT>= 601 OR (VersionNT = 501 OR VersionNT = 502 AND ServicePack >= 3) OR (VersionNT = 600 AND ServicePack >= 2)

VersionNT>= 601 Win 7 oder höher (Teilausdruck 1)
OR (VersionNT = 501 OR VersionNT = 502
AND
ServicePack >= 3)
WindowXP (Teilausdruck 2)
Hier wäre auch ein VersionNT64=502 möglich.
OR (VersionNT = 600 AND ServicePack >= 2) Vista (Teilausdruck 3)

Mit Eigenschaften und Bedingungen können also recht einfach sehr komplexe Installations- oder Ausführungsvorraussetzungen getestet werden.

Ein häufiges Beispiel:
Nur auf 32 Bit-Systemen: NOT VersionNT64
Nur auf 64 Bit-Systemen: VersionNT64
Verwendung von Eigenschaften als Datenquelle:
In bestimmten Einträgen wie z. B. der Registry möchte man vielleicht den Wert einer Eigenschaft ablegen.

Dies ist denkbar einfach. [MeineEigenschaft] wird zur Laufzeit durch den aktuellen Wert von MeineEigenschaft ersetzt.

Beispiel:
Vorgabe: Die Daten wurden gefunden in [SuchPfad].
Eigenschaft: SuchPfad = C:\Test1\Test2
Ergebnis: Die Daten wurden gefunden in C:\Test1\Test2.