PMB ist eigentlich nichts anderes als eine Ansammlung nützlicher Tools, die, in bestimmter Reihenfolge aufgerufen, das "eine" oder "andere" machen und/oder automatisieren.
Es gibt eigentlich zwei Modifikationsmöglichkeiten am 7934:Die erste Möglichkeit wäre natürlich die optimalste und wurde auch von mir ursprünglich angestrebt bzw. lief auch schon einwandfrei. Diese Variation hat allerdings einen entscheidenden Knackpunkt: Tauscht man die Original-Software aus, hat man keine Möglichkeit mehr, die Moodlights des 7934 an den Seiten zu steuern, was bedeutet, das diese immer an sind und rot leuchten. Die meisten wird das nicht stören, mich eingenommen, allerdings gibt es gewisse Leute in grün, die damit ganz und gar nicht einverstanden sind, insbesondere, wenn das Navi per Saugnapf nachts an der Windschutzscheibe hängend betrieben wird.
Also bleibt (erstmal) nur die Erweiterung der Original-Oberfläche! Dies wird realisiert, indem der unwichtigere Bilder-Viewer gegen eine andere Applikation ausgetauscht wird. Dies macht PMB.
Mit einem reinen Austausch ist es allerdings nicht ganz getan, weil dann die eingangs des Workshops genannten Probleme mit einer eventuell fehlenden, aber benötigten Taskbar wie auch die fehlende Vollbilddarstellung zum Tragen kommen. Hier musste Abhilfe geschaffen werden.
Beim Start des 7934 wird nach erfolgreichem "Hochfahren" des Betriebssystems Windows CE automatisch die Datei /My Flash Disk/Shell.exe ausgeführt, die wiederum noch die BatteryMonitor.exe nachlädt. Hierbei wird dann ebenfalls automatisch von der Shell.exe die Sprache des "Windows-Users" (nicht des Windows CEs selbst!) auf Deutsch umgestellt (bzw. je nach gemachter Einstellung auch andere Sprachen). Diese Spracheinstellung wird zum einen von der Shell.exe selbst zur Anzeige der Menüs benutzt wie auch von der Navigationssoftware.
Um nun den Start etwas umgestalten zu können, hat zuerst Daniel Schumann ein Programm namens MultiRun programmiert, welches später allerdings durch RunIni von Torsten Kubinski ersetzt wurde. Beide Programme machen aber eigentlich das gleiche: Man kann über eine dazugehörige INI-Datei mehrere Programme starten. RunIni wird bei der Installation von PMB als Shell.exe im Verzeichnis /My Flash Disk installiert und die Original-Datei wird in ShellOriginal.exe umbenannt. RunIni wurde so programmiert, das beim Programmaufruf zuerst eine eventuell beim Start mit übergebene INI-Datei ausgewertet wird, wurde keine angegeben, wird nach einer mit dem gleichen Namen wie die ausführbare Datei gesucht (in unserem Fall heißt RunIni auf dem 7934 ja Shell.exe, also wird nach einer Shell.ini gesucht), ist eine solche ebenfalls nicht vorhanden, wird eine RunIni.ini gesucht und ggf. ausgeführt.
Der Aufbau der INI für RunIni ist recht einfach:
Nachdem die Original-Oberfläche nun sichtbar ist, erkennt man, das der Menüpunkt "Bilder" gegen "Extras" ausgetauscht wurde. Hierbei hat sich allerdings nur die Beschriftung geändert (zu finden in der Datei /My Flash Disk/resources/localization/strings_Shell_Default_German.txt), die eigentliche Funktion, nämlich der Aufruf der PictureViewer.exe bleibt der gleiche.
PMB hat diese allerdings ebenfalls ausgetauscht gegen eine für PMB modifizierte Version von SystemInformation, einem Programm von Daniel Schumann. Dieses Programm wurde ursprünglich für den Desktop von Windows CE programmiert und stellt dort z.B. Informationen wie Speicherplatz, Batterieladezustand etc. zur Verfügung. Die Software kann aber zusätzlich auch Buttons in Form von quadratischen 32 Bit-Icons anzeigen und darüber dann Programme starten. Hierzu benötigt das Programm beim Start ebenfalls eine INI-Datei, in der wiederum weitere INI-Dateien angegeben werden, die dann für die Darstellung der einzelnen Informationen oder in unserem Fall Buttons zuständig sind.
Beim Klick auf "Extras" wird also nun die PictureViewer.exe respektive umbenannte SystemInformation.exe ausgeführt und verarbeitet die Default-INI namens SysInfoSettings.ini:
Im neuen Menü werden aber neben Programmen selbst, wie hier SpeedLimit, von anderen Buttons auch Skripte gestartet, z.B. zum Start von GPS-Tacho und auch Total Commander:
Etwas kniffliger ist die Darstellung des zweiten Menüs "System". Hier habe ich mir überlegt, das man den aktuellen Zustand der 3 Einstellungsmöglichkeiten
Richtig knifflig ist die Anzeige der verfügbaren Film- und Video-Dateien auf der /Storage Card. Hier werden anhand der Dateiendungen (siehe Datei /My Flash Disk/Tools/nsscript/avisearch.ns, Erweiterung des Suchmusters ohne weiteres möglich über die Variable var m[] in der Funktion "main") wie z.B. *.avi alle Dateinamen und Pfade in einem Array gespeichert, anschließend aufgrund der Anzahl an Einträgen in diesem Array Menüs für SystemInformation erzeugt, für die Anzeige der Dateien auf auf einem Bildschirm werden dynamisch 4 INI-Dateien per Skript generiert, bei 20 Film- und Videodateien somit dann schon 16 Dateien. Je nach Anzahl konfigurierter Dateiendungen und gefundener Dateien kann der Aufbau des Menüs schonmal ein paar Sekunden dauern. Weil SystemInformation sich selbst bei Ausführung des Skriptes beendet, sieht man während der Ausführung des Suchskriptes die Original-Oberfläche. Um dort vorschnelle Tipperei zu vermeiden, hat Daniel Schumann ein weiteres kleines Tool beigesteuert, nämlich ShowCursor.exe, was nichts anderes macht, als die bekannte Windows-Sanduhr in Form der 4 kleinen Quadrate anzuzeigen.
Die Generierung von INI-Dateien oder auch Änderung innerhalb einer solchen per Skript ist eigentlich recht einfach, allerdings stößt man hier auf das nächste Problem, die Dateien werden ganz normal als Text generiert, speziell SystemInformation erwartet aber INI-Dateien im Unicode-Format. Hier hat dann wiederum Torsten Kubinski mit einem eigens dafür programmierten Tool namens Unicode.exe ausgeholfen, welches genau das macht, eine vorhandene Textdatei in eine umzuwandeln, die dem Unicode-Format entspricht.
Die Bedienung des Media Players wird beim "Hochfahren" des 7934 durch das Setzen diverser Registry-Einträge wesentlich komfortabler. Bei Auswahl einer Video-Datei oder auch Playliste über das Menü wird diese an den Media Player übergeben, der startet, sofern möglich (= Video nicht zu klein), direkt im Vollbildmodus und spielt die Datei ab. Nach kompletter Wiedergabe beendet sich der Media Player von selbst und man landet wieder im Menü. Möchte man die Wiedergabe vorzeitig abbrechen, braucht man nur die rote Taste drücken und landet ebenfalls wieder im Auswahlmenü!
Die ganze Oberfläche und auch der Funktionsumfang von PMB ist natürlich erweiterbar ... viel Spaß und Erfolg beim Ausprobieren!