Erste Schritte - Teil2: Eigenschaften und Bedingungen

Antworten
Volker
Beiträge: 37
Registriert: 08.07.2022, 09:25

Erste Schritte - Teil2: Eigenschaften und Bedingungen

Beitrag von Volker »

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.

Bild

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

Was sind Bedingungen?

Bild

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.

Bild

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 mehrere Ergebnis zu einem bündelt können.

(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
Bedingung über die GUI zusammen geklickt 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 = 600AND ServicePack >= 2)
VersionNT[/font]>= 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[/font]=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ührungsvoraussetzungen 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.
Mit freundlichen Grüßen,
AKApplications, Volker J.
Antworten