Programm zur Koordinateneingabe

  • Hallo Stefan,
    super Arbeit! Alle Einzelfunktionen: :tup


    Auch die neue Memory-Funktion klappt! :sonne
    Und das Faden geht auch! :respekt


    Aber bei der Umsetzung im Skin habe ich meine Probleme ... ;(
    Wenn es Deine Zeit erlaubt, schau' doch mal vorbei . :)


    Gruß sokobana

  • Hallo zusammen,


    hier ein ganz einfaches Beispiel, wie man mit Koord die Fähnchentaste so umbelegt, dass man damit die Hintergrundbeleuchtung an- und ausschalten kann:


    Voraussetzung: Koord ab Version V1.13 Rev.7


    Es muss eine Textdatei BacklightOff_Steuerung.txt mit diesem Inhalt erstellt werden:

    Code
    // Koord-Steuerungsdatei: BacklightOff_Steuerung.txt
    //
    Window=0 Backlight=0


    Diese kommt in das Verzeichnis \My Flash Disk\programme


    Als Aufrufparameter für Koord wird das benötigt:

    Code
    Window=0 KoordServ=1 ClassName=BacklightOff| ServKey=196,0,-3,-1| ServKeyFile=\My Flash Disk\programme\BacklightOff_Steuerung.txt|


    Solange der Server läuft, kann man mit der Fänchentaste nun die Hintergrundbeleuchtung an- und ausschalten!


    Anmerkungen:
    Der Server läuft mit einem eigenen Klassennamen ClassName=BacklightOff und ist somit unabhängig von ggf. weiteren laufenden Koord-Servern.
    Es darf aber immer nur 1 Programm laufen, das eine Tastenumbelegung macht, andernfalls kommt eine Fehlermeldung!
    Durch nochmaligen Aufruf wird dieser Server wieder beendet.
    Die Datei- und Verzeichnisnamen können natürlich angepasst werden.

  • Hi Stefan


    Das würde passieren wenn ich anstatt die Fähnchentaste die Einschalttaste benutzen würden , ist sie überhaupt ansprechbar und wie wäre die Nummer ?


    Ich finde mal wieder keine Liste dafür .


    Ich würde das schon gerne probieren .


    Edut: Wenn dann nur das Display wieder aktivieren


    Gruß Manni

  • Hallo Stefan,


    ich kann zwar jetzt nur für Gopal3 sprechen, aber dort wertet die gopaleigene LEDverstellanzeige den Registryschlüssel
    "\HKEY_CURRENT_USER\ControlPanel\BackLight"
    aus um den aktuell eingestelten Wert anzuzeigen, könntest Du diesen Wert bei Aufruf der Stufen 1-8 mit schreiben, das die Anzeigen syncron sind. Sokobana hat sich da bei mir schon beschwert ;)

  • Hallo alle


    In GoPal5 auch 1 bis 8 .


    Edit: Habe es grad mal probiert , in der Registry an dieser Stelle eine Änderung bewirkt nichts , der Wert ist sofort wieder auf dem vorherigen Stand.


    Gruß Manni

  • In GoPal5 auch 1 bis 8 .


    Edit: Habe es grad mal probiert , in der Registry an dieser Stelle eine Änderung bewirkt nichts , der Wert ist sofort wieder auf dem vorherigen Stand.



    Ja, ist in Gopal3 auch so, aber wenn ich in mein Menü wechsel dort mal 3 Stufen runter schalte, und dann nach Gopal wechsel wird dort der aktuelle(um 3 niedrigere Wert) auch in der Registry angezeigt, warscheinlich synchronisiert hier Gopal.


    Nur wenn man ohne laufendem Gopal die Helligkeit ändert, geht es.

  • Hallo zusammen,


    ich schreibe (bei den Stufen 1-8) den Wert in den RegKey
    HKCU\Software\3SOFT\Pathfinder\PowerManagement\Backlight
    den wertet GoPal 2+3 aus. So war es bei der Backlight-Funktion schon immer.
    Ab GoPal 4 ging das nicht mehr.


    Wann was in
    \HKEY_CURRENT_USER\ControlPanel\BackLight
    geschrieben wird und ob und wann der Wert ausgelesen wird, habe ich keine Ahnung.


    Wenn's was nützt, kann ich den Key aber auch ändern.



    @manni bzgl. "Einschalttaste":
    Der Code der Einschalttaste ist 223 (0xDF), ich habe das vor längerem mal ins Wiki eingetragen. Bitte beachte auch meine Anmerkung dort dazu.
    Außerdem musst Du wahrscheinlich die powerbutton.dll deaktivieren -siehe hier- sonst schaltet das Gerät ja sofort in den suspend-Modus.
    Ich habe es aber noch nicht komplett ausgetestet.


    Gruß,
    Stefan
    Stefan

  • Wann was in
    \HKEY_CURRENT_USER\ControlPanel\BackLight
    geschrieben wird und ob und wann der Wert ausgelesen wird, habe ich keine Ahnung.



    Meine Beobachtung:


    Gopal 3 wertet ja wie immer

    HKCU\Software\3SOFT\Pathfinder\PowerManagement\Backlight


    aus, aber es schreibt dazu noch die aktuellen Werte an die oben genannte Stelle, die dann die Helligkeits-Seite in den Settings ebenfalls auswertet, um die aktuelle Einstellung richtig anzuzeigen.



    Also wenn Gopal nicht läuft, und mit Koord die Helligkeit verändert wird, ändert sich der Balken nur, wenn auch dieser Registrypfad verändert wird.


    Edit hier ist eine Symptombeschreibung (Sokobana kann sowas gut)


    Mein vorläufiges Fazit, es müssten beide Werte geschrieben werden. Der alte, das Gopal nicht die Koordänderungen rückgängig macht,
    und der neue für die Anzeige.

    Einmal editiert, zuletzt von athos ()


  • Mein vorläufiges Fazit, es müssten beide Werte geschrieben werden. Der alte, das Gopal nicht die Koordänderungen rückgängig macht,
    und der neue für die Anzeige.


    Leider bringt uns das auch nicht nach vorne ?( (oder ich habe Dich falsch verstanden :whistling: )


    Code
    RegWriteDword ("HKCU" , "Software\3Soft\Pathfinder\PowerManagement\Backlight", "ACBrightness" , 1)
    RegWriteDword ("HKCU" , "ControlPanel\Backlight", "BacklightCurrentLevel" , 1)


    Damit kann ich zwar beide Werte auf "1" setzen, aber ohne den Koordbefehl wird das Display nicht dunkel und GoPal "korregiert" den Wert auch wieder :thumbdown: .


    Da müssen wir noch weiter suchen.


    ... Pumuckel

    Einmal editiert, zuletzt von Pumuckel65 ()

  • Hallo Stefan


    Ich kriege es mal wieder nicht gebacken .


    Das ist aber nicht so wichtig , mit dem Script ganz unten klappt die Klicksperre perfekt .


    Aufruf durch Klicksperre , findet wahrscheinlich beim E4430 die Ein-aus-Taste 223 nicht .


    run ("\My Flash Disk\programme\koord465.exe", "param= Window=0 KoordServ=1 ClassName=BacklightOff| ServKey=223,0,-3,-1| ServKeyFile=\My Flash Disk\programme\BacklightOn_Steuerung.txt| ")





    das ist in der BacklightOn_Steuerung.txt im Ordner Programme


    // Koord-Steuerungsdatei: BacklightOff_Steuerung.txt
    //
    Window=0 Backlight=8


    Ich möchte ja nur über die Ein-aus_Taste das Display aktivieren .
    Die Koord 1.1.3.7 habe ich im Ordner Programme .





    Script für Klicksperre mit Display ganz aus als nur dunkel.
    Mort kann schon nicht mehr ohne Koord . :D


    So ist das sanfte aktivieren fasst genauso schon wie Backlight=999 sanftes deaktivieren .




    If( Question( "Soll die Klicksperre aktiv werden ? für deaktiv obenrechts Ecke klicken ! ", "NO = zurück ins Display !", "YesNo" )=1 )


    RunWait ("\My Flash Disk\Programme\koord465.exe", " Window=0 KoordServ=1 wndrefresh=5000 t=1 rb=0 gb=0 bb=0 Backlight=999 ServWnd=\time,0,0,-1,-1,5060,0,0,255,-1,-1{%02i:%02i h}\text,100,224,280,48,-5030,0,0,255,-1,-1{Klicksperre aktiv}\text,450,0,30,30,-5030,255,0,0,-1,0{x}|")


    For w = 1 To 8
    kill("koord465.exe")
    run ( "\My Flash Disk\programme\koord465.exe", "param= window=0 Backlight=" & w & "|" )
    sleep ( 50 )
    Next
    EndIf


    Noch was , in GoPal 5 gibt es die Funktion Autom. Dimmen Intelligent oder Standard , ich muss es bei diese Art von Klicksperre auf Standard stellen sonst geht das Display nach ca. 30 bis 40 Sekunden von selbst wieder an .


    Kann ich das vorm Aufruf der Klicksperre ohne Ellen lange Klickfolge auf Standart und nach beenden der Klicksperre wieder auf die zuerst gewesene Einstellung zurück stellen Intelligent oder Standard .
    Ganz ohne Klicks geht es ja nicht aber man kann doch direkt ins Fenster Darstellung springen und nach dem Klick wieder zurück in die Kartenansicht ?


    Gruß Manni

  • Hi Stefan


    Das habe ich jetzt auch , so schalltet der um in Intelligent oder Standard , das nach Next noch mal eingefügt und es ist wieder auf dem alten Stand, nun muss ich das aber in eine IF-Abfrage stellen , wenn es schon auf Standard ist darf er nicht umschalten .
    Wie findet man den Registry-Eintrag wenn es einen gibt , den könnte ich dann ja abfragen ?
    Suchen wahrscheinlich .


    run ( "\My Flash Disk\programme\koord465.exe", "param= window=0 sendkey=\0x7F\C-300,350,195\C-300,135,140\0x72\C-300,25,250\|" )


    Gruß Manni

  • Die Ereignisse überschlagen sich zurzeit bei mir.
    Geht auch ohne Klickorgie , den Registry-Eintrag direkt geändert und nach dem deaktivieren der Klicksperre wieder auf dem alten Stand gesetzt .
    Nur darf die Registry-Änderung aber nur zugelassen werden wenn der Registry-Eintrag 1 ist weil 0 ist ja schon Standart .
    Ich bekomme die IF-Abfrage für RegValueExists nicht hin , gibt eine Fehlermeldung .
    Das ist daran verkehrt? Das andere klappt perfekt .


    Vielleicht kann mir auch jemand anderes helfen ?


    If( Question( "Soll die Klicksperre aktiv werden ? für deaktiv obenrechts Ecke klicken ! ", "NO = zurück ins Display !", "YesNo" )=1 )
    reg=0

    If (RegValueExists ("HKCU","Software\Elektrobit\streetdirector_hmi\DataPool", "2135556126", "1"))
    reg=1
    RegWriteDWord ("HKCU","Software\Elektrobit\streetdirector_hmi\DataPool", "2135556126", "0")
    EndIf


    RunWait ("\My Flash Disk\Programme\koord465.exe", " Window=0 KoordServ=1 wndrefresh=5000 t=1 rb=0 gb=0 bb=0 Backlight=999 ServWnd=\time,0,0,-1,-1,5060,0,0,255,-1,-1{%02i:%02i h}\text,100,224,280,48,-5030,0,0,255,-1,-1{Klicksperre aktiv}\text,450,0,30,30,-5030,255,0,0,-1,0{x}|")


    For w = 1 To 8
    kill("koord465.exe")
    run ( "\My Flash Disk\programme\koord465.exe", "param= window=0 Backlight=" & w & "|" )
    sleep ( 50 )
    Next


    If (reg=1)
    RegWriteDWord ("HKCU","Software\Elektrobit\streetdirector_hmi\DataPool", "2135556126", "1")
    EndIf


    EndIf


    Gruß Manni

  • Bin leider unter Zeitdruck, aber schau mal inn der Mortscriptanleitung unter RegRead.

  • If (RegValueExists ("HKCU","Software\Elektrobit\streetdirector_hmi\DataPool", "2135556126", "1"))

    Mit RegValueExists kannst Du die Existenz eines Schlüssels abfragen. Der Schlüssel existiert aber bei "0" wie bei "1". Das bringt Dich nicht weiter (und ein Syntaxfehler ist oben auch noch drin, was aber hier egal ist).


    Du musst den Wert des Schlüssels selbst abfragen. Z.B. so:


    Wert = ( RegRead ("Software\Elektrobit\streetdirector_hmi\DataPool", "2135556126"))
    If ( Wert = 1 )


    Else


    EndIf


    Gruß sokobana