Zusi-Verzeichnisse: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 1: | Zeile 1: | ||
= Hinweis zu Registry-Einträgen = | == Hinweis zu Registry-Einträgen == | ||
Sämtliche Einträge befinden sich im Schlüssel <code>HKEY_LOCAL_MACHINE\Software\Zusi3</code>. | Sämtliche Einträge befinden sich im Schlüssel <code>HKEY_LOCAL_MACHINE\Software\Zusi3</code>. | ||
Zeile 9: | Zeile 9: | ||
Die Steam-Version legt bei der Installation keine Registry-Einträge zu den Datenverzeichnissen an. Die Einträge werden erst dann geschrieben, wenn der Benutzer einmal die Zusi-Dateiverwaltung als Administrator gestartet und dort das Fenster "Generelle Zusi-Einstellungen" mit "OK" verlassen hat. Deshalb gibt es hardkodierte Standardpfade als Rückfallebene. | Die Steam-Version legt bei der Installation keine Registry-Einträge zu den Datenverzeichnissen an. Die Einträge werden erst dann geschrieben, wenn der Benutzer einmal die Zusi-Dateiverwaltung als Administrator gestartet und dort das Fenster "Generelle Zusi-Einstellungen" mit "OK" verlassen hat. Deshalb gibt es hardkodierte Standardpfade als Rückfallebene. | ||
= Programmverzeichnis = | == Programmverzeichnis == | ||
* Demo-Version: Wert <code>ZusiVerzeichnisDemo</code> | * Demo-Version: Wert <code>ZusiVerzeichnisDemo</code> | ||
Zeile 15: | Zeile 15: | ||
* Steam-Version: Wert <code>ZusiVerzeichnisSteam</code> | * Steam-Version: Wert <code>ZusiVerzeichnisSteam</code> | ||
** In der Steam-Version wird Zusi in die Steam-Datenbank in einen dafür vorgesehenen Ordner gelegt. Vermutlich meistens <code>steamapps\common\ZUSI 3 - Aerosoft Edition\</code>. In diesem Ordner befinden sich dann die Unterordner <code>_ZusiData; 32bit; 64bit</code> | ** In der Steam-Version wird Zusi in die Steam-Datenbank in einen dafür vorgesehenen Ordner gelegt. Vermutlich meistens <code>steamapps\common\ZUSI 3 - Aerosoft Edition\</code>. In diesem Ordner befinden sich dann die Unterordner <code>_ZusiData; 32bit; 64bit</code> | ||
** Standardmäßig sind die Registry-Einträge in der Steam-Version nicht gesetzt. Für weitere Informationen siehe der Abschnitt [[#Erkennen des Zusi-Steam-Verzeichnis]]. | |||
= Datenverzeichnis eigene Daten = | == Datenverzeichnis eigene Daten == | ||
* Stick-Version: Wert <code>DatenVerzeichnis</code> | * Stick-Version: Wert <code>DatenVerzeichnis</code> | ||
Zeile 23: | Zeile 24: | ||
** Der Ordner "Öffentliche Dokumente" ist der Ordner <code>CSIDL_COMMON_DOCUMENTS</code> ([https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetfolderpatha SHGetFolderPath], kompatibel mit Windows XP) bzw. <code>FOLDERID_PublicDocuments</code> ([https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetknownfolderpath SHGetKnownFolderPath], ab Windows Vista). | ** Der Ordner "Öffentliche Dokumente" ist der Ordner <code>CSIDL_COMMON_DOCUMENTS</code> ([https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetfolderpatha SHGetFolderPath], kompatibel mit Windows XP) bzw. <code>FOLDERID_PublicDocuments</code> ([https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetknownfolderpath SHGetKnownFolderPath], ab Windows Vista). | ||
= Datenverzeichnis offizielle Daten (ab 3.3.0.0) = | == Datenverzeichnis offizielle Daten (ab 3.3.0.0) == | ||
* Demo-Version: Wert <code>DatenVerzeichnisDemo</code> | * Demo-Version: Wert <code>DatenVerzeichnisDemo</code> | ||
Zeile 30: | Zeile 31: | ||
* Fallback (wenn kein Wert existiert): <code><ZusiVerzeichnis>\_zusidata</code> oder <code><Zusi-Steam-Verzeichnis>\..\_zusidata</code> | * Fallback (wenn kein Wert existiert): <code><ZusiVerzeichnis>\_zusidata</code> oder <code><Zusi-Steam-Verzeichnis>\..\_zusidata</code> | ||
= Erkennen der Stick-Version = | == Erkennen der Stick-Version == | ||
Ist relativ zur Exe-Datei die Datei <code>_InstSetup\usb.dat</code> vorhanden, handelt es sich um die Stick-Version, ansonsten um die Steam-Version. | Ist relativ zur Exe-Datei die Datei <code>_InstSetup\usb.dat</code> vorhanden, handelt es sich um die Stick-Version, ansonsten um die Steam-Version. | ||
== Erkennen des Zusi-Steam-Verzeichnis == | |||
Wer für sein Programm den ZusiSteam-Ordner erkennen muss, hat etwas mehr Aufwand. Es empfiehlt sich folgende Strategie: | |||
# Bevorzugte Lösung: Das Programm im Zusi-Programme-Ordner im Unterordner _Tools\MeinProgramm ablegen. In diesem Fall kann man prüfen, ob es in den Ordnern <code>..</code>, <code>..\..</code> oder <code>..\..\..</code> folgende Dateien oder folgende Unterordner mit folgenden Dateien gibt: <code>ZusiSim.exe</code>, <code>ZusiSim.64.exe</code>, <code>32bit\ZusiSim.exe</code> oder <code>64bit\ZusiSim.64.exe</code> | |||
# Falls man dies nicht so umsetzen möchte gäbe es folgende einfachere Lösung: Eine Fehlermeldung, in der man beschreibt, wie man in der Steam-Version die Dateiverwaltung als Admin öffnet, und den Einstellungsdialog mit OK verlässt, damit die Verwaltung die Pfade in die Registry schreibt. | |||
# Im Grundsatz wäre es auch möglich, über die Registry den Haupt-Steam-Ordner zu finden, von dort aus über die Steam-JSON-Dateien alle anderen Steam-Ordner zu finden, und dann von dort aus die Zusi-Konfig-JSON-Datei zur App-ID 1040730 zu finden. Aufgrund der Komplexität, der impliziten Abhängigkeit von Standards, die Steam nicht garantiert, und Aufgrund schwer überschaubarer Testfälle und Randbedingungen ist diese Vorgehensweise nicht zu empfehlen. |
Version vom 12. Juli 2025, 17:18 Uhr
Hinweis zu Registry-Einträgen
Sämtliche Einträge befinden sich im Schlüssel HKEY_LOCAL_MACHINE\Software\Zusi3
.
Wenn auf einem 64-Bit-Rechner Zusi in der 32-Bit-Version installiert wurde liegt der Schlüssel unter HKEY_LOCAL_MACHINE\Wow6432Node\Software\Zusi3
. Diese Umleitung erledigt Windows automatisch, wenn man den Schlüssel mit dem KEY_WOW64_32KEY
-Flag öffnet:
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Zusi3", 0, KEY_READ | KEY_WOW64_32KEY, &key)
Die Steam-Version legt bei der Installation keine Registry-Einträge zu den Datenverzeichnissen an. Die Einträge werden erst dann geschrieben, wenn der Benutzer einmal die Zusi-Dateiverwaltung als Administrator gestartet und dort das Fenster "Generelle Zusi-Einstellungen" mit "OK" verlassen hat. Deshalb gibt es hardkodierte Standardpfade als Rückfallebene.
Programmverzeichnis
- Demo-Version: Wert
ZusiVerzeichnisDemo
- Stick-Version: Wert
ZusiVerzeichnis
- Steam-Version: Wert
ZusiVerzeichnisSteam
- In der Steam-Version wird Zusi in die Steam-Datenbank in einen dafür vorgesehenen Ordner gelegt. Vermutlich meistens
steamapps\common\ZUSI 3 - Aerosoft Edition\
. In diesem Ordner befinden sich dann die Unterordner_ZusiData; 32bit; 64bit
- Standardmäßig sind die Registry-Einträge in der Steam-Version nicht gesetzt. Für weitere Informationen siehe der Abschnitt #Erkennen des Zusi-Steam-Verzeichnis.
- In der Steam-Version wird Zusi in die Steam-Datenbank in einen dafür vorgesehenen Ordner gelegt. Vermutlich meistens
Datenverzeichnis eigene Daten
- Stick-Version: Wert
DatenVerzeichnis
- Steam-Version: Wert
DatenVerzeichnisSteam
- Fallback (wenn kein Wert existiert):
<Öffentliche Dokumente>\Zusi3
bzw.<Öffentliche Dokumente>\Zusi3Steam
; wenn beide Verzeichnisse existieren, ist dasZusi3Steam
-Verzeichnis zu nehmen.- Der Ordner "Öffentliche Dokumente" ist der Ordner
CSIDL_COMMON_DOCUMENTS
(SHGetFolderPath, kompatibel mit Windows XP) bzw.FOLDERID_PublicDocuments
(SHGetKnownFolderPath, ab Windows Vista).
- Der Ordner "Öffentliche Dokumente" ist der Ordner
Datenverzeichnis offizielle Daten (ab 3.3.0.0)
- Demo-Version: Wert
DatenVerzeichnisDemo
- Stick-Version: Wert
DatenVerzeichnisOffiziell
- Steam-Version: Wert
DatenVerzeichnisOffiziellSteam
- Fallback (wenn kein Wert existiert):
<ZusiVerzeichnis>\_zusidata
oder<Zusi-Steam-Verzeichnis>\..\_zusidata
Erkennen der Stick-Version
Ist relativ zur Exe-Datei die Datei _InstSetup\usb.dat
vorhanden, handelt es sich um die Stick-Version, ansonsten um die Steam-Version.
Erkennen des Zusi-Steam-Verzeichnis
Wer für sein Programm den ZusiSteam-Ordner erkennen muss, hat etwas mehr Aufwand. Es empfiehlt sich folgende Strategie:
- Bevorzugte Lösung: Das Programm im Zusi-Programme-Ordner im Unterordner _Tools\MeinProgramm ablegen. In diesem Fall kann man prüfen, ob es in den Ordnern
..
,..\..
oder..\..\..
folgende Dateien oder folgende Unterordner mit folgenden Dateien gibt:ZusiSim.exe
,ZusiSim.64.exe
,32bit\ZusiSim.exe
oder64bit\ZusiSim.64.exe
- Falls man dies nicht so umsetzen möchte gäbe es folgende einfachere Lösung: Eine Fehlermeldung, in der man beschreibt, wie man in der Steam-Version die Dateiverwaltung als Admin öffnet, und den Einstellungsdialog mit OK verlässt, damit die Verwaltung die Pfade in die Registry schreibt.
- Im Grundsatz wäre es auch möglich, über die Registry den Haupt-Steam-Ordner zu finden, von dort aus über die Steam-JSON-Dateien alle anderen Steam-Ordner zu finden, und dann von dort aus die Zusi-Konfig-JSON-Datei zur App-ID 1040730 zu finden. Aufgrund der Komplexität, der impliziten Abhängigkeit von Standards, die Steam nicht garantiert, und Aufgrund schwer überschaubarer Testfälle und Randbedingungen ist diese Vorgehensweise nicht zu empfehlen.