Zusi-Verzeichnisse: Unterschied zwischen den Versionen

Aus ZusiWiki
Zur Navigation springen Zur Suche springen
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.

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 das Zusi3Steam-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).

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:

  1. 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 oder 64bit\ZusiSim.64.exe
  2. 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.
  3. 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.