Workaround Moodlights bei Nutzung "fremder" Oberfläche

  • Moin


    Seit ein paar Tagen wühle ich nun in meinem Becker rum und hab alles ausprobiert und nachvollzogen, was hier für das 7934 beschrieben bzw. entwickelt wurde. Ich bin sehr dankbar für Eure Informationen und Programme.


    Das Ändern der Farben der Becker-Oberfläche geht ja relativ einfach, schnell hatte ich einen blauen Skin zusammengebraten. Das Navigationsmenü des MN5 war auch schnell zerpflückt und angepaßt. Störend natürlich die "roten Flecken" hier und da, z.B. in der Batterieanzeige oder beim MP3-Player. Der Gedanke, eine alternative Oberfläche zu nutzen (Austausch der Shell.exe), liegt nahe, scheitert jedoch an den Moodlights, die dann immer rot leuchten.


    Getestet habe ich Systeminformation von Daniel und PMB von Alhifi. Beides schick und lehrreich! Testweise hatte ich Systeminformation als Shell eingesetzt, das Resultat: Moodlights leuchten rot, MN5 startet englisch...


    Gestern fand ich im Ordner \My Flash Disk\save die Shell.ini mit folgendem Inhalt:


    [General]
    Language=8
    Moodlights=0
    MoodlightsAC=0


    MoodlightsAC ist dabei der Status der Moodlights nach dem Start der Becker-Shell. Der Wert 3 bringt übrigens das sonst nicht anwählbare lila... ;D


    Der Gedanke liegt nahe, einfach vor der alternativen Shell die originale zu starten. Nötig dazu ist die im PMB verwendete RunINI.exe. Diese ermöglicht den Start mehrerer Programme beim Startup, indem sie als Shell.exe auf dem Navi gespeichert wird, während die originale shell.exe umbenannt wird. Legt man dazu eine RunINI.ini mit folgendem Inhalt an:


    [RUN]
    app1= "\My Flash Disk\Becker.exe"
    app2= "\My Flash Disk\SystemInformation.exe"


    startet die in Becker.exe umbenannte originale Oberfläche als erstes, die SystemInformation.exe (welche ich als alternative Oberfläche einsetze) als zweites. Das Problem dabei ist die StVO-Abfrage, dadurch liegt das Becker-Fenster über dem Sysinfo-Fenster. Dieses Problem erledigen wir durch die ebenfalls in PMB verwendete ns.exe. Dies ist ein Programm, das es erlaubt, Scripts auszuführen. Weil ich es ohnehin benötige, setze ich das Script install.ns ein, welches unter anderem einen Befehl enthält, der den StVO-Schirm automatisch wegklickt. Dazu muß die ns.exe im Verzeichnis My Flash Disk\Tools\ und weiterhin die install.ns im Verzeichnis My Flash Disk\Tools\nsscript\ liegen. Die RunINI.ini wird wie folgt erweitert:


    [RUN]
    app1= "\My Flash Disk\Tools\ns.exe /mo '\My Flash Disk\Tools\nsscript\install.ns'",hide
    app2= "\My Flash Disk\Becker.exe"
    app3= "\My Flash Disk\SystemInformation.exe"


    Voilá! Das wars! Die im Verzeichnis My Flash Disk\save\ liegende shell.ini wird von der Becker-Shell mitgeladen, egal welchen Dateinamen diese jetzt trägt. So werden die Moodlights abgeschaltet und die gewählte Sprache geladen. Durch das Wegklicken des StVO-Schirms geht die Becker-Oberfläche in den Hintergrund und im Vordergrund läuft die alternative Oberfläche. Beim Testen kam ab und zu die Becker-Oberfläche trotzdem in den Vordergrund, das lag aber daran, daß das Becker noch am PC hing und der Startvorgang deswegen etwas verzögerte, vom PC getrennt startet zuverlässig die alternative Oberfläche.


    Nutzung ohne Gewähr, is eh klar, oder? ;D

  • Zitat

    Language=8
    Moodlights=0
    MoodlightsAC=0


    MoodlightsAC ist dabei der Status der Moodlights nach dem Start der Becker-Shell. Der Wert 3 bringt übrigens das sonst nicht anwählbare lila


    Gibt es zufällig auch einen Wert für GRÜN ?

    Einmal editiert, zuletzt von andresmanta ()

  • Nö... ;D


    Es gibt rot und blau und die Mischfarbe lila. Hab natürlich rumprobiert, ob mehr geht, geht aber nich...

  • :-D) Mittlerweile habe ich doch noch ein kleines Problem entdeckt: Wenn der PNA durch die Becker-Taste oder selbstständig in den Suspend-Modus versetzt wurde, startet er mit der Becker-Oberfläche. Ist an sich dasselbe wie nach der Navigation, man muß sich dann seine alternative Oberfläche per Hand starten. Da ich mir jetzt ohnehin angewöhnt habe, das Navi per Schiebeschalter oder per Reset.exe (Auswahl "No" zum Ausschalten) auszuschalten, ist es für mich nur ein kleines Problem.


    Wenn jedoch jemand ne Idee hat, wie man das ändern kann, immer her damit... ;D

  • Hi,


    starte doch einfach die originale Shell.exe für ca 1200 ms und "kill" sie dann wieder. Die Zeit reicht aus um die Moodlights auszuschalten, ohne das die STVO Warnung erscheint... Dann kommt die Originale Shell nie wieder zum vorschein.


    Geht bei mir Wunderbar, dank MortScript.


    Gruß igiul4

  • Altes Thema, aber naja....
    Habe nur ein 7914er zum testen da, aber vermute es ist das gleiche Problem.


    Habe mich mal durch verschiedene DLLs gewühlt, disassembled usw.
    Und siehe da:
    In der Datei SystemControl.dll im Windows Ordner (ihr müsst geschützte Systemdateien einblenden) befindet sich eine Funktion namens "SC_SETMOODLAMP". Die Argumente, die mitgegeben werden müssen sind lediglich 0,1,2 oder 3 ;D
    Dort sind auch noch andere Interessante Funktionen drin, um den Stand vom Akku usw zu erhalten.


    Leider bin ich nicht ganz so versiert in Visual Studio und krieg nichtmal ein einfaches Hallo Welt auf CE zum laufen.
    Aber ich weiß, dass wir nur die DLL bzw die Funktion importieren müssen, um so das Mood-Light steuern zu können.
    Und schon könnte die originale Oberfläche einer komplett eigenen weichen.


    Nochwas interessantes:
    Jeder weiß, wie man in Windows ausbricht. 3x auf das Navigon-Symbol klicken usw. Nun, die dort aufgerufene Funktion ist ebenfalls in der selben DLL auffindbar: "SC_SHOWTASKBAR".

    Einmal editiert, zuletzt von bavci ()

  • u ja, ein extra kleines progrämmchen zum schalten der Mood-Lights wäre cool ...


    Apollon

  • Gibts unter WINCE 4.2 nicht vielleicht ebenfalls die rundll32.exe? Für die die es nicht kennen, damit lassen sich Funktionen aus DLLs direkt aufrufen. Z.B. öffnet RunDll32.EXE URL.DLL,FileProtocolHandler "%1" direkt das Standardprogramm für die datei unter %1.
    Für unseren Fall wäre das sowas wie RunDll32.exe SystemControl.dll, SC_SETMOODLAMP 0-3.
    Vielleicht will das mal jemand testen? Wenn das klappt, lässt sich das ja direkt beim Start ausführen und man kann die Shell.exe vergessen. SC_SHOWTASKBAR könnte man ja ausführen, wenn man auf die Becker Taste drückt.

  • Die Idee gefällt mir, aber habe keine rundll32 gefunden - weder als exe noch als dll.
    Also wäre jetzt die Frage wo man das für win-ce 5.00 herbekommt ...
    Auch googeln war bisher nur bedingt erfolgreich ...


    Anyone an idea?


    Apollon

  • Hallo,


    wieso Win CE 5.0? Das 7934 ist mit Win CE 4.2 bestückt!

  • Hallo,


    da du das nirgendwo erwähnst und in deinen Einstellungen auch nicht ersichtlich ist,woher sollte ich das wissen,in einem Thread das eigentlich das 7934 betrifft!? ;)

  • Der Thread heisst "Workaround Moodlights bei Nutzung "fremder" Oberfläche" ... und ist im Forumsbereich für 79xx/Z101/Z200 ... also passt das schon ;-))


    Es ist ja an sich die gleiche Problematik - nur halt ein anderes wince.