termnal + detekce klavesy ESC
Miroslav BENES
mbenes na tenez.cz
Čtvrtek Červenec 17 16:08:38 CEST 2003
> To samozrejme program z terminalu dostane. Problem je, jak to ma odlisit
> od situace, kdy stejnou nebo podobnou sekvenci vygeneruje napr. klavesa
> F1. Na to jsou v podstate dva pristupy:
>
> 1. chce-li uzivatel opravdu prave a pouze klavesu ESC, pak ji
> zmackne dvakrat,
V definici protermcap (nastaveni terminalu v Progress-u] je mj.
i radek
:ESC=\E\E: :L_ESC=<ESC><ESC>:\
Coz by napovidalo zminen teorii (jen pro poradek - prvni ESC je
jmeno funkce, vyraz za rovnitkem je popis sekvence ktera ma
prijit z terminalu).
Ovsem takto to bohuzel nechodi :(
> 2. program sleduje, jak dlouha prodleva nasleduje po prijeti kodu 27,
> a kdyz je dost velka, tak usoudi, ze to nebude soucast delsi sekvence
> a interpretuje ho samostatne (tohle samozrejme muze selhat, pokud
> se tok dat nekde zasekne)
>
> Cele se to samozrejme muze znacne zkomplikovat, pokud mezi terminalem a
> vlastnim programem stoji neco, co data z terminalu interpretuje vlastnim
> zpusobem, treba ten zmineny progressovsky klient.
Ano, tak to bohuzel je. V klientovi je funkce LASTKEY a do ni uz
to "neprobubla".
BTW napadlo me jine "reseni" - kdyz bych obetoval malo
pouzivanou klavesu (napr. F12), mohl bych program predelat tak
aby reagoval na ni. Pa by mi stacilo nekde v retezci
Uzivael -> putty -> terminal -> DB klient
zamenit kody klaces ESC a F12. Ale nevim jak toho dosahnout - ve
zdrojacich putty jsem zadne vhodne misto nenasel a nevim ani
jestli by se dal "ukecat" terminal aby vracel jine kody klaves.
--------------------------
Miroslav BENES
E-mail : mbenes na tenez.cz
TENEZ Chotebor, a.s
--------------------------
Další informace o konferenci Linux