Eigenschaften und Bedingungen

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

Eigenschaften und Bedingungen

Beitrag von Volker »

Was sind Eigenschaften?

Eigenschaften oder Properties sind Variablen, welche teilweise von außen
unveränderlich sind (weil diese beim Start fest definiert werden) oder aber
während der Laufzeit änderbar sind.

Prominente Beispiele sind dafür VersionNT welches eine Zahl von 400 bis
aktuell 1100 beinhalten kann.

Eigenschaften können neben Zahlen auch Strings oder Versionen enthalten.

Beispiel:
VarTest="C:\Programme\Test"
VarVersion="123.456.789.0"

Eigenschaften können in Bedingungen (siehe unten) geprüft, aber auch beim
Erstellen von Registry- und Datei-Einträgen oder Texten verwendet werden.

IDC_CTRL_Dlg_InstallWelcome2="Willkommen zur Installation von\n[ProductName] V[ProductVersion]."

Eine weitere Besonderheit ist die Schreibweise. Komplett Großgeschrieben Eigenschaften
Z. VAR_MEIN_TEST lässt sich beim Start des Setups übergeben.

Beispiel:
Setup.exe VAR_MEIN_TEST="Das ist ein Test"

Mit Var_Mein_Test würde dieses nicht funktionieren. Dieses ist speziell in unbeauchfichtigeten
Installationen sehr wichtig, da hiermit komplexe Einstellungen mit übergeben werden können.


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>= 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ü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