Differenzierte Button-Aktion auf Grund Registry-Wert

  • Hallo zusammen,


    hab mal wieder ein kleines Problem, dass sich bis jezt nicht selber lösen will :gap


    Ich möchte in der Karte einen Button einbinden, der je nach Eintrag eines 'DP-Wertes" (Wert eines Registry-Eintrags) eine unterschiedliche Aktion (Klickfolge) auslösen soll.


    In der PFSkin selbst hab ich eine Art "if-Bedingung" noch nicht gesehen, also wohl auch nicht möglich.


    Weiß jemand ob und wie ich über Mortskript einen Registry-Wert auslesen kann - die if-do-Schleife bekomme ich dann selber hin.


    Dank im voraus.



    grüße,


    wolfskinner

  • Zitat

    Original von wolfskinner


    Weiß jemand ob und wie ich über Mortskript einen Registry-Wert auslesen kann - die if-do-Schleife bekomme ich dann selber hin.


    Ja kann man, weiß nicht ob schon immer oder ab welcher Version, aber mit der 4.1 geht es (RegRead). Auf der Mortscriptseite liegt auch eine mächtige Anleitung als PDF.


    http://www.sto-helit.de/index.php?module=download&action=list&entry=11

  • Zitat

    Original von wolfskinner
    Ich möchte in der Karte einen Button einbinden, der je nach Eintrag eines 'DP-Wertes" (Wert eines Registry-Eintrags) eine unterschiedliche Aktion (Klickfolge) auslösen soll.


    Schau Dir mal die Funktionalität zu LaunchFromRegistryButton von koord465 an, hier in der Doku zu dem Tool, KlickMe, und hier an einem Codeschnipsel: Autobahn verwenden/meiden Button in Kartenansicht

  • Hallo Ihr beiden,


    schon mal dankeschön für Eure Antworten.


    Dass mit der Autobahn bzw. bereits vorhandenen Buttons von Navirunner hab ich mir schon angeschaut. Aber das war nicht exakt das was ich bräuchte - oder ich hab`s nicht verstanden X(.


    Wer mich mal durch eure Tipps durcharbeiten



    gruß,


    wolfskinner

  • @BigBugHmb


    so, dass mit der Version 4.1 funkioniert schon mal.
    kann den Registrywert auslesen und abhängig davon eine Aktion ausführen.


    Ralf25


    LauchfromRegistry hab ich auch schon angeschaut, fkt. in diesem Fall aber nicht, da kene zwei Reg.-Einträge vorhanden.
    --------------------------------



    Ein Problem hab ich aber immer noch, daran häng ich mich schon seit längerem auf.


    Wenn ich in der Karte den Button drücke, möchte ich zuerst ein Menü aufrufen (über PressedEvent), und anschließend mein Mortskript ausführen.


    Dazu müsste ich aber den button als zwei unterschiedliche "Class" definieren ("PushButton" / "LauncherButton"). Bis jezt hab ich das nicht hinbekomen.


    Hat jemand hierfür auch noch eine Lösung ??

  • Zitat

    Original von wolfskinner
    Ralf25


    LauchfromRegistry hab ich auch schon angeschaut, fkt. in diesem Fall aber nicht, da kene zwei Reg.-Einträge vorhanden.


    Ich hatte Dich schon richtig verstanden und das war auch nur eins von vielen Beispielen, daher auch mein Hinweis zur Doku. ;)
    Es geht natürlich auch mit einem Key und untersch. Values! Da ich aber kein Skinner bin, muß ich (auch) die Suche nach LaunchFromRegistryButton bemühen, KlickMe.


    Kurz:
    Registry: "HKCU,Software\Koord\Backlight,Backlight_lo"; oder
    Registry: "HKCU,Software\Koord\Backlight,Backlight_med"; oder
    Registry: "HKCU,Software\Koord\Backlight,Backlight_hi";

  • Hallo wolfskinner,


    ich weiß nicht, ob ein PressedEvent beim LauncherButton auch funktioniert (früher konnte man schon einen Action mit ausführen), aber man kann nicht genau vorhersagen was zuerst ausgeführt wird, das Skript oder der Event (das Menü).
    Ich würde das Menü lieber über eine Klickfolge im Skript öffnen, dann hast Du den zeitlichen Ablauf besser im Griff!


    Zu dem LauchfromRegistryButton: Mit Koord mache ich das so, dass der Reg-Wert gelesen wird und in einen entsprechenden neuen Wert kopiert wird. Auf diesen bezieht sich der LFR-Button (wird angezeigt oder nicht). Mit dem Klick auf den LFR-Button wird der orig. Reg-Wert geändert und dann eine anderer Reg-Key erzeugt, auf den ein anderer LFR-Button (mit den selben Koordinaten) reagiert.
    Jedem LFR-Button könnte man dann eine andere Klickfolge zuordnen.


    Gruß,
    Stefan

  • So, jezt meld mich mich nochmal


    Hab mit Eurer Hilfe (und dem NR-Skin), viel Zeit und noch mehr Fehlversuchen jezt was zum laufen gebracht - ausschnittweise sieht das so aus:


    {
    Class: LaunchFromRegistryButton;
    Coordinates: 10,145,30,30;
    Enabled: 0,0,0,20,20,0,0;
    Pushed: 0,0,0,20,20,0,0;
    Icon: 452,0,0,20,20,0,0,255,0,255;
    Registry: "HKCU,Software,Koord_NoSonnenbrille";
    HideOnNonExistentRegistryEntry: yo;
    params: "window=0 Sonnenbrille=1 sendkey=\c-100,1,1\c-500,150,124\c-200,250,174\0x72|";
    }




    Ein Problem habe ich alerdings noch.
    Der Eintrag "No_Sonnenbrille" wird erst geschrieben, wenn über die Navirunner-Funktion der "Auto hell" Butoon gedrückt wird.


    Deswegen wird bei Navigationsstart (auf Grund des fehlenden Eintrags) bei mir der Button auch nicht angezeigt.
    Hab das ganze mal anderrm mit dem eintrag "HideOnExistentRegistryEntry: yo;" probiert, führt aber leider zum Absturz ins Hauptmenü.


    Wie kann ich den den button anzeigen lassen, solange die Sonnenbrille nicht aktiviert ist (alos auch kein Eintrag existiert).


    Bin um Antworten dankbar.


    grüße,
    wolfskinner

  • Zitat

    Original von wolfskinner
    Wie kann ich den den button anzeigen lassen, solange die Sonnenbrille nicht aktiviert ist (alos auch kein Eintrag existiert).


    Ich weiß jetzt nicht, ob's mit Koord465 gehen würde, aber den GoPal-Start über ein MortScript auszuführen, das den Reg.-wert setzt, wenn er nicht vorhanden ist, und danach GoPal startet, ist doch kein Problem:


    Code
    If not (RegValueExists ("HKCU", "Software", "Sonnenbrille"))
    RegWriteString ("HKCU", "Software", "Sonnenbrille", "No_Sonnenbrille")
    EndIf
    
    
    
    
    Run( "\My Flash Disk\Navigation\mnavdce.exe" )
  • Hallo wolfskinner,


    erst mal Glückwunsch zum Erfolg!
    Das mit dem fehlenden RegKey ist doch nur beim ersten Start nach einem HR ein Problem, oder? Sonst bleiben doch die Reg-Werte erhalten.
    Du kannst doch irgendwo (beim Start von GoPal oder sonst wo) eine "Initialisierung" mit einem normalen Button machen (window=0 Sonnenbrille=0).


    Gruß,
    Stefan

  • Hallo wolfskinner


    wenn du meinen Skin benutzt dann setze einfach folgendes mit in das Script "NR_Navistart1.mscr" mit ein


    Run ("\My Flash Disk\programme\koord465.exe" , "window=0 Sonnenbrille=0")


    dadurch wird die Sonnenbrille beim starten immer auf 0 gesetzt
    oder du arbeitest mit einer Abfrage


    If Not ( "HKCU","Software,Koord_Sonnenbrille" )
    Run ("\My Flash Disk\programme\koord465.exe" , "window=0 Sonnenbrille=0")
    Else
    EndIf


    Gruß navirunner

  • So, jezt läuft des ganze.
    Zwar nicht ganz so wie Anfangs gewünscht, aber es funktioniert einwandfrei.


    Noch mal vielen Dank an alle beteiligten.


    Das Ergebnis stelle ich demnächst als Skin :D ins Forum.


    Falls Interesse speziell an diesem Button besteht (Tag-/Nachtumschaltung in Kartenansicht), kann ich die notwendigen Modifikationen hier einstellen. (nur auf Wunsch)



    gruß,


    wolfskinner

  • Zitat

    Original von wolfskinner
    ....
    Falls Interesse speziell an diesem Button besteht (Tag-/Nachtumschaltung in Kartenansicht), kann ich die notwendigen Modifikationen hier einstellen. (nur auf Wunsch)
    gruß,


    wolfskinner


    Interesse besteht mit Sicherheit! :D [SIZE=7](wer viel fragt, gibt nicht gerne... :gap)[/SIZE]
    Und rohoel könnte es dann verlinken ;)



  • Ich möchte meinen Wunsch äußern, weil ich Interesse daran habe. ;D

  • Hallo wolfskinner,


    auch habe daran interesse und äußere daher meinen Wunsch :D


    Gruß chigma