-
-
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:
Diese kommt in das Verzeichnis \My Flash Disk\programmeAls Aufrufparameter für Koord wird das benötigt:
CodeWindow=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. -
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
)CodeRegWriteDword ("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
.Da müssen wir noch weiter suchen.
... Pumuckel
-
(oder ich habe Dich falsch verstanden )
ja, ich meinte Koord müsste die Key's mit setzten.
Ohne Koord geht es nicht, ist klar.
-
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=8Ich 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 .
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
EndIfNoch 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")
EndIfRunWait ("\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 )
NextIf (reg=1)
RegWriteDWord ("HKCU","Software\Elektrobit\streetdirector_hmi\DataPool", "2135556126", "1")
EndIfEndIf
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