Hardware- und Fernbedienungstasten (um-)belegen

  • Hallo zusammen,


    ich hab' mahl wieder eine neue Testversion (V1.09 Rev.4) des Koordinatenprogrammes herausgebracht, mit der man die Hardwaretaste (Fänchentaste) am PNA mit weiteren/anderen Funktionen belegen kann.
    Ebenso kann man die Tasten der Fernbedienung damit anderweitig nutzen.


    Dazu muss das Koordinatenprogramm im "Servermodus" ausgeführt werden, d.h. es läuft im Hintergrund und fängt dabei die Tastatureingaben ab und verändert sie.


    Ich will die Funktion an einem Parameter-Beispiel erläutern: (eine Zeile!)
    Window=0 KoordServ=0 ServKeyFile=\Storage Card\Programme\KOORD\Tasten.txt| ServKey=196,300,-1,-1\196,1000,0x70,-1\196,3000,-2,-1\250,0,-3,-1|


    Window=0 Kein Koordinateneingabe-Fenster
    KoordServ=0 Der Servermodus wird ohne sichtbares Fenster gestartet.
    ServKeyFile=<voller Dateiname>| in dieser Textdatei können komplexere Funktionen hinterlegt werden.
    ServKey= die eigentlichen Tastenzuweisungen, getrennt durch einen Backslash "\" und beendet mit einem Pipezeichen "|".


    Eine Tastenzuweisung im Parameter ServKey= hat folgende Syntax. Die einzelnen Werte sind durch Komma "," zu trennen:


    1) KeyCode der Taste, die umbelegt werden soll


    2) Zeit in ms zwischen Drücken und Loslassen (geht leider bei der FB nicht)


    3a) positiver Wert: neuer KeyCode


    3b) negativer Wert: Zeilennummer (Absolutwert!) in der mit ServKeyFile= bezeichneten Datei. Der Inhalt der einen angegebenen Zeile wird als Parameter an das Koordinatenprogramm übergeben.


    Hier ein Beispiel für diese Datei (z.B. \Storage Card\Programme\KOORD\Tasten.txt):
    window=0 SendKey=\a0x09\0x28\0x0D
    taskbar=2 window=0
    explorer=1 sip=1 window=0


    4) momentan nicht benutzt. Hier können später die (GoPal-)Fenster angegeben werden, für die diese Tastenbelegung gilt. -1 bedeutet: gilt global.



    Die erste Tastenzuweisung (196,300,-1,-1) macht also folgendes:
    Wenn die Fänchentaste (=196=0xC4) länger als 300ms gedrückt wird, dann wird der in der 1. Zeile angegebene Koord-Parameter anstatt der Defaultbelegung ("Neues Ziel") ausgeführt. Die Umbelegung ist global gültig.
    So kann man zu nächsten Programm (via Taskmanager) weiterschalten


    Die zweite Tastenzuweisung (196,1000,0x70,-1) macht also folgendes:
    Wenn die Fänchentaste (=196=0xC4) länger als 1000ms gedrückt wird, dann wird statt dessen die Eingabe F1 (=112=0x70) simuliert. Die Umbelegung ist global gültig.
    Damit das eine Wirkung hat, muss natürlich mit F1 einen Funktion (GlobalHK:) belegt sein.


    Die dritte Tastenzuweisung funktioniert analog zur ersten.


    Die vierte Tastenzuweisung (250,0,-3,-1) ist für die Fernbedienung:
    Wenn die Play-/Pausetaste(=250=0xFA) gedrückt wird (es können keine Zeiten Unterschieden werden, daher muss 0ms angegeben werden), dann wird der in der 3. Zeile angegebene Koord-Parameter anstatt der Defaultbelegung ("Pause") ausgeführt. Die Umbelegung ist global gültig.
    So kann man mit dieser Taste den Explorer starten.


    Noch ein paar Hinweise:


    1) Wird die Fänchentaste kürzer als 300ms gedrückt, so erfolgt in diesem Beispiel die normale Abarbeitung ("Neues Ziel").


    2) Bitte keine Tasten umbelegen, die selbst irgendwo gesendet werden (z.B. OK-Taste=13=0x0D), wenn an anderer Stelle ein 0x0D via SendKey gesendet wird. Dann würde der gesendete Key auch wieder umbelegt werden! Das kann zu unvorhersagbaren Ergebnissen führen!


    3) Werden für die selbe Taste mehrere verschiedene Zeiten definiert (nicht für FB!), dann bitte in aufsteigender Reihenfolge angeben!


    4) Der Servermodus kann durch nochmaligen Aufruf in Servermodus (Button nochmal drücken) beendet werden.


    5) Man kann sich auch eine "Statusausgabe" machen, damit man sieht, ob der Servermodus aktiv ist: z.B. diesen Parameter noch hinzufügen:
    ServWnd=text,80,5,5,5,16,0,0,0,-1{ }\|
    Damit wird ein kleines Kästchen angezeigt (s. auch UTM-Anzeige).


    So nun bitte mal testen und Anregungen geben!


    Gruß,
    Stefan

    Einmal editiert, zuletzt von StefanDausR ()

  • Hallo Stefan


    du wirst im 4.0 forum gebraucht, ohne dich geht nichts. :D


    Die Tastenbelegung ist noch nicht gefunden, ist noch kein Skiner drüben der Helfen kann. :-D)
    Kein Windhund, kein Sokobana, hsuelzen usw.


    Die PFSkin sieht aus wie ein Müllhaufen.


    Hab zwar ein paar Ikons verschoben, macht aber nicht Glücklich. ;)


    Gruß Cyberwolf

  • Hallo Stefan,
    im groben möchte ich mich den Worten von rohoel anschließen, was das verstehen und auch das Lob betrifft ;D
    Vorrangig hätte ich eine Frage. Wie kann ich mir eine Sicherheit schaffen das im Notfall die ursprünglichen Funktionen wie Taskleiste und "blaues Menü" erhalten bleiben.
    Ansonsten schwirren mir schon (noch stark ungeordnet) ein paar Dinge, wie Programmaufruf/beenden, POI Warner oder was man gerade als wichtig bzw Schnellzugriff haben möchte, durch den Kopf.
    Ich hoffe nur dass wieder einige, die mehr davon verstehen, den Ball auffangen und geschickt weiter spielen.... :]

  • Hallo zusammen,


    hab ich mich wirklich so kompliziert ausgedrückt? Na ja, ich verstehe schon, dass es etwas abschreckend wirkt, aber sooo schlimm ist es nun auch wieder nicht. Im Prinzip ist das so ähnlich wie das Programm hotkey.


    @Hepe: Die Tastatur-Umbelegungen gelten nur so lange, wie auch koord (im Servermodus) läuft. Wird das Programm beendet, dann ist alles wieder beim alten.
    Die anderen Funktionen (Buttons) sind sowieso unberührt. Es geht ja nur um die Hardwaretaste und ggf. die Fernbedienung.


    Ich könnte mir z.B. die Steuerung des TCPMP mit der FB vorstellen oder noch so Einiges.


    Wenn konkreter Bedarf da ist, dann kann ich ja ein Beispiel erstellen.


    Gruß,
    Stefan

  • Morgen Stefan, danke erstmal für die Auskunft.
    Ist für mich sehr beruhigend und nach deiner Erläuterung auch klar! :)
    Schauen wir mal wie man es am besten nutzen kann.

  • Hallo Schmischi,


    dazu müsste man nur den KeyCode der Sprachsteuerungstaste kennen bzw. austesten.
    Da ich weder die neue Hardware noch GoPal 4.x mein Eigen nenne, müsste Ihr das selber testen!


    Die verschiedenen Möglichkeiten sind ja nicht allzu groß.


    So könnte ein einfacher Test aussehen:
    - Koord in ein Verzeichnis legen und am einfachsten über eine koord.cfg steuern, damit man nicht immer die PFSkin.skn oder das Menü ändern muss. Alternativ könnte Koord auch direkt über den Explorer gestartet werden.
    - eine Koord.cfg mit folgendem Inhalt erstellen:
    param= Window=0 KoordServ=0 ServKey=196,00,???,-1|
    Wobei das ??? natürlich durch den neuen KeyCode ersetzt werden muss!
    Nachdem die Fänchentaste -auch als HK4 bezeichnet- den KeyCode 196=0xC4 hat, liegt es nahe, dass die anderen Tasten im ähnlichen Bereich liegen (HK5->0xC5 ???).
    Koord.cfg Speichern und koord starten.
    - Nun kann man mit Tastendruck >500ms den neuen Wert testen.
    -Koord beenden (=nochmal starten), neuen Wert in koord.cfg; Koord wieder Starten.


    Ist das soweit klar?


    Ich könnte auch den Code der gedrückten Taste ausgeben, wenn das einfacher wäre.


    Gruß,
    Stefan

    Einmal editiert, zuletzt von StefanDausR ()

  • Das ausgeben des entsprechenden Codes beim drücken der entsprechenden Taste wäre super.
    Falls das möglich ist.


    Die Codes müssten doch auchirgendwo in der Registry hinterlegt sein oder?.


    Die PFSpecial.skn sieht bei Gopal 4 auch anders aus als in GoPal 3.


    Code
    GlobalHK:"sc_out@ThrowEvent.1048579,HK4@ThrowEvent.1654823,F10@ThrowEvent.2621447,play@ThrowEvent.2621447,DLHK4@ThrowEvent.2621537,DLF10@ThrowEvent.2621537,DLplay@ThrowEvent.2621537,ACTIVATED@ThrowEvent.3080253,DEACTIVATED@ThrowEvent.3080254,F7@ThrowEvent.1654822,F6@ThrowEvent.1654821,F8@ThrowEvent.1654823";
  • Na ja der Aufruf ist anders.
    HK4, F6 und F7 gab es ja schon früher. Bleibt eigentlich nur noch F8 und F10 und die könnte man ja sogar mit "Remote Display Control" testen.
    Interessant sind die Bezeichnungen DLF10, DLHK4, etc. Sollte das DL DrückLange bedeuten?


    Also eine leicht modifiziere Version liegt am Server.
    Mit diesem Parameterstring: (koord.cfg)


    param= Window=0 KoordServ=1 t=1 ServWnd=text,80,5,280,20,20,255,50,100,-1\| ServKey=196,1000,0x75,-1|


    kann man sich die Tastencodes in einem Fenster anzeigen lassen. (s. Bildschirmdumps)
    Ich habe im Beislpiel eine Dummy-Umleitung (>1000ms) auf die "Lauter-Taste" (0x75="F6") gemacht.
    Achtung: Das Anzeigefenster ist nach der Aktivierung ein Toplevel-Fenster. Man sollte also ggf. nochmal in GoPal klicken, damit Gopal die Tasteneingaben auch empfängt.
    Ein Klick auf des Anzeigefenster beendet koord.


    Auf den Dumps sieht man die Anzeige:
    1) Drücken der Fähnchentaste (196). Man erkennt das an der ersten Zahl. 256 bedeutet "Taste Gedrückt"
    2) Loslassen der Taste. 257 bedeutet "Taste Losgelassen"
    3) Wenn Die Taste länger als die 1000ms gedrückt war, dann wird der KeyCode 0x75=117 gesendet.


    Den Tastencode sieht man an der 2. (und 3.) Stelle. Die beiden letzten Zahlen geben Auskunft über den Druckzeitpunkt (im ms) und Dauer.


    Also mal bitte testen!


    Gruß,
    Stefan

  • Hallo Rainer,


    na das sieht schon mal in soweit gut aus, als Du das Programm installieren konntest.
    Hast Du auch die neueste Koord-Testversion nochmal heruntergeladen? Ich hatte die Ausgabe in der ursprünglichen Version noch nicht freigegeben!


    Gruß,
    Stefan

  • Hm,


    Du hast aber schon eine Hardwaretaste gedrückt, oder?
    Wie ist es, wenn GoPal nicht läuft?


    Funktionieren die anderen Sachen des Koordinatenprogrammes?


    Gruß,
    Stefan