
  Readme zur Version 01.2016
==============================

Das Programm JoyKey.exe scannt die aktuelle Kommandobelegungsdatei Standard.xml nach Eintrgen von USB-Steuergerten wie Joysticks, liest deren Tastenbelegung aus und schreibt sie in eine HTM-Datei, die dann bei ausgewhlten Flugzeugvarianten im Kneeboard anstelle der Flugzeugreferenz angezeigt wird.

  Installieren
================
Das Zip-Archiv in ein beliebiges Verzeichnis entpacken und darin InstallJoyKey.exe starten. Sofern Sie unter einem Windows ab Vista aufwrts arbeiten, mssen Sie den Installer mit Administratorrechten starten (Kontextmen rechte Maustaste). Falls Windows flschlicherweise vermutet, das Programm sei mglicherweise nicht richtig installiert, dann klicken Sie auf "...ist richtig installiert", dann ist Ruhe.

Der Installer legt im Programmverzeichnis die Ordner "\KneeboardTools\JoystickKeys" oder auf Wunsch einen selbst gewhlten Ordner fr die Programmdateien an und kopiert die *.exes hinein. Er erzeugt im Startmen den Ordner "KneeboardTools\JoystickKeys" und erzeugt die Programmverknpfungen. Desweiteren entsteht in "Eigene Dokumente" der Ordner "\KneeboardTools\JoyKeyData". Zum Start des Hauptprogramms wird das Programm-Icon "MakeJoystickKeyTab" angelegt.

Es wird nichts in die Registry geschrieben. Es ist jederzeit mglich, JoystickKeys ein weiteres Mal zu installieren. Es werden dann nur alle Dateien berschrieben.

Die Dateien von JoystickKeys im einzelnen:
------------------------------------------
Liesmich.txt               - diese Datei
InstallJoyKey.ahk          - installiert Programmverzeichnis und 
                             Verknpfungen
JoyKeys.exe                - der Skriptinterpreter (= AutohotkeyU64)

Scr\
JoyUninstall.ahk           - entfernt Programm, Verknpfungen und Datenordner
JoyKeys.ahk                - das Skript des Hauptprogramms
JoyClean.ahk               - nimmt die nderungen in Aircraft.cfg's zurck 
                             und lscht die in \Airplanes\ hinzugefgten Daten

Data\                      - Daten-Ordner, enthlt:
All-DescrAxmlnames_DE.txt  - jeweils eine Tabelle mit Kommandobeschreibung 
All-DescrAxmlnames_EN.txt  -   plus XML-Namen in einer Tabelle, mit deren Hilfe
                               JoyKey die HTM-Tabelle erzeugt
JoyX52Allin1.jpg           - ein Beispielbild zum Joystick Saitek X52 Flight 
                             Controller
SYokeMitQuad.jpg           - ein Beispielbild zum Saitek Pro Flight Yoke


  Programm-Doku
=================
Die Programme greifen auf das Programmverzeichnis des FSX zu, und zwar auf SimObjects\Airplanes. Unter einem Windows ab Vista aufwrts mssen sie die Programme daher mit Admin-Rechten starten. Doch auch dann erfolgt jedesmal die Systemfrage, ob man den Zugriff zulassen mchte. Einfacher ist es, das Programmverzeichnis des FSX oder wenigstens \Airplanes fr SchreibZugriffe zu "entsichern" (im Kontextmen rechte Maustaste: Eigenschaften/Sicherheit).

Bei der ersten Nutzung erzeugt JoyKeys in SimObjects\Airplanes den Ordner "Zoystick", in den eventuelle Bilder abgelegt werden. Ansonsten verndert JoyKeys nur die Zeilen 

"kb_reference=Flugzeug_ref" 

zu 

"kb_reference=Joysticktasten     //Ref:Flugzeug_ref" 

und zwar nur bei den Flugzeugen und Varianten, die Sie ausgewhlt haben. Es ist nicht sinnvoll, alle Flieger zu patchen, sondern nur die, mit denen man auch fliegt. Deshalb habe ich bewusst auf eine Schaltflche "alle auswhlen" verzichtet. Zudem kopiert das Programm die Tastenbelegung als htm-Datei in den Flugzeugordner. Diese nderungen werden vom JoyClean.exe wieder zurckgenommen, sodass die Ordner und die Aircraft.cfg's wieder im Ausgangszustand sind.

Bei der Auswahl der Joysticks in der von JoyKeys angezeigten Liste entscheidet die Reihenfolge, in der Sie die Joystickeintrge auswhlen, darber, in welcher Spalte der Joystick in der spteren Tabelle angezeigt wird. In der Standard.xml steht jedes Steuergert zweimal, einmal fr normale Verwendung und einmal fr den Betrieb im "Versetzen"-Modus bzw. "Slew Mode". 

Damit JoyKeys arbeiten kann, mssen in allen aircraft.cfg's mindestens die beiden Zeilen

"title = ..."
und
"kb_reference = ..."
existieren. Sollte das einmal nicht der Fall sein, berspringt JoyKeys diese(s) Flugzeug(Variante). Es knnte ja einen Grund haben, dass eine der beiden oder beide Eintrge fehlen, und dass der JoyKeys-Mechanismus deshalb nicht korrekt arbeiten kann. Wer diese Flugzeugvarianten dennoch nutzen will, msste diese Eintrge in der jeweiligen aircraft.cfg berprfen und ggbf. ergnzen bzw. anpassen. Bei jedem Start scannt JoyKeys diese Eintrge und zeigt in der Liste durch aktives Hkchen an, welche Flugzeuge bzw. Varianten schon fr JoyKey aktiviert sind.

JoyKeys arbeitet nur additiv. Das heit, einmal ausgewhlte FlugzeugVarianten knnen nicht durch abwhlen in JoyKeys in den Normalzustand gebracht werden. Das knnen Sie entweder manuell, also mit einem Texteditor in der Aircraft.cfg selbst tun, oder JoyClean benutzen, das allerdings ALLE in den Normalzustand bringt. Andererseits kann JoyKeys dafr beliebig oft ausgefhrt werden, um z.B. zustzliche Flugzeug-Varianten hinzuzufgen.

Zu beachten ist, dass nach jeder nderung der Joystick-Tastenbelegung das Programm JoyKeys (MakeJoystickKeyTab) aufgerufen wird. Wurden die nderungen im FSX durchgefhrt, muss vor der Ausfhrung von JoyKeys der Flugsimulator beendet werden; denn der FSX schreibt nderungen erst beim Beenden in die Standard.xml.

Wenn Sie fr verschiedene Flugzeuge unterschiedliche Joystickbelegungen haben, mssen Sie JoystickKeys fr jede Belegung einzeln starten und das Hkchen aktivieren. Daraufhin fragt sie eine Dateiauswahlbox nach der jeweiligen XML-Datei, die die Belegung im Format der Standard.xml enthlt. Darauf werden alle Flugzeug-Hkchen deaktiviert und Sie knnen die Flugzeuge auswhlen, fr die diese Joysticktastenbelegung im Kneeboard angezeigt werden soll. Unterschiedliche Tastenbelegungen fr die Varianten eines Flugzeugtyps sind nicht mglich.


  Bilder
==========
Am Ende eines Durchlaufs fragt JoyKeys mit einer Fileselectbox nach einer Bilddatei. Die Auswahl startet im Verzeichnis "JoyKeyData" in "Eigene Dokumente\KneeboardTools". Es kommen alle Bildformate in Frage, die vom HTM-Modul akzeptiert werden. Das Bild sollte in einer im Kneeboard vernnftig darstellbaren Auflsung vorliegen. Als Beispiele sind jeweils eine Bilddatei fr den Joystick Saitek X52 Flight Controller sowie eine fr den Saitek Pro Flight Yoke enthalten.


Zur Zeit ist JoyKeys folgendermaen eingeschrnkt:

1. In der HTM-Tabelle sind nur maximal 4 Spalten fr Joysticks vorgesehen. Und weil alle Joysticks zweimal vorkommen, weist JoyKeys daher bei 8 gefundenen Joystick-Eintrgen darauf hin. 

2. Beim Scannen der einzelnen Aircraft.cfg's SimObjects\Airplanes liest das Programm nur maximal 16 Varianten ein (fltsim.x). Die Zahl der Flugzeugtypen ist im Prinzip nicht beschrnkt, doch konnte ich bisher nicht testen, wie JoystickKeys mit mehr als 30 FlugzeugVerzeichnissen arbeitet.

3. Wenn bei Yokes und Joysticks z.B. von Saitek mit der Saitek-Software die Belegungen fr alle Modes verwaltet werden, kann Joykeys die nicht auslesen, denn sie stehen nicht in der Standard.xml.


Standard.xml
------------
Wenn hier die Standard.xml erwhnt wird, ist immer die in User_AppData (Anwendungsdaten\Microsoft\FSX) gemeint. Denn dies ist die aktuelle, im Programmverzeichnis des FSX liegt nur die von Microsoft mitgelieferte Defaultbelegung, die der FSX beim allerersten Start nach User_AppData kopiert und fortan alle nderungen der Belegung nur dort hineinspeichert. Es empfiehlt sich daher, diese Standard.xml irgendwo als Backup zu hinterlegen. Denn wenn z.B. mal die Fsx.cfg kaputtgeht, die brigens genau wie die Standard.xml nur in User_AppData aktualisiert wird, dann holt der FSX von beiden die Default-Dateien aus dem Programmverzeichnis und legt sie in User_AppData neu an. Ohne ein Backup wre damit die mhsam erstellte Tastenbelegung weg und man msste sie wieder neu definieren.

Es hat wohl selten jemand mehr als 4 Joysticks etc. angeschlossen. Daher deutet die Meldung, dass mehr als 8 Eintrge gefunden worden seien, in den meisten Fllen darauf hin, dass tote/blinde Eintrge in der Standard.xml stehen. Wenn man zum Beispiel einen neuen Treiber fr einen Joystick installiert, gibt es eine neue GUID und der FSX legt in der Standard.xml einen neuen Eintrag fr den Joystick an. Am besten, man versucht an der Belegung herauszufinden, welcher Eintrag eines Joysticks der aktuelle ist, und lscht die alten.


Bernd Behr, Hannover, Januar 2016

Die Programme sind in der Skriptsprache Autohotkey geschrieben. Wer die Tools selbst ndern/erweitern mchte, kann bei mir per Mail die Sourcefiles anfordern.
E-Mail: bb@dreisein.de

Mgliche Updates sind zu finden unter
www.computerkram.de/SoftTools.html
