Schrift
[thread]6287[/thread]

[CTRL] Taste einlesen: Tastatur



<< |< 1 2 >| >> 20 Einträge, 2 Seiten
romulus
 2004-05-24 19:15
#82681 #82681
User since
2004-04-05
23 Artikel
BenutzerIn
[default_avatar]
Hi,

es gibt ja einige Module um ein Tastendruck einzulesen. Aber bis jetzt ist es mir nicht gelungen die [CTRL]-Taste einzulesen bzw. in einem Programm abfangen zu können. Ich würde gerne z.B. [CTRL]-[TAB] abfangen. Aber die [CTRL]-Taste scheint irgendwie 0-Byte zurückzuliefern ?!
Danke.
mfg
alexus-777
 2004-05-24 19:50
#82682 #82682
User since
2004-04-13
121 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
$mw->bind('<Control-Key-Tab>' => callback);
Crian
 2004-05-24 23:18
#82683 #82683
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
... in Perl / Tk
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
romulus
 2004-05-25 02:19
#82684 #82684
User since
2004-04-05
23 Artikel
BenutzerIn
[default_avatar]
danke ..

ich bräuchte das in Perl (nicht Perl-Tk)\n\n

<!--EDIT|romulus|1085437279-->
Crian
 2004-05-25 12:31
#82685 #82685
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Was heißt in Perl? Perl/Tk ist auch Perl...
Liest Du von der Konsole?
Dann hilft Dir vielleicht irgendeine Curses-Variante weiter, die müssten ja ähnliche Funktionalitäten für Text"oberflächen" bieten.\n\n

<!--EDIT|Crian|1085473939-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
romulus
 2004-05-26 18:52
#82686 #82686
User since
2004-04-05
23 Artikel
BenutzerIn
[default_avatar]
[quote=Crian,25.05.2004, 10:31]Was heißt in Perl? Perl/Tk ist auch Perl...
[/quote]
d.h., dass ich das nicht für eine Perl/Tk Anwendung brauche.
Quote
Liest Du von der Konsole?

ja ich lese von der Konsole.

Ich hatte zwar nicht vor nur für [CTRL]-[TAB] ein extra modul (vor allem nicht Curses) zu nutzen aber wenn es nicht anders geht ..\n\n

<!--EDIT|romulus|1085583261-->
betterworld
 2004-05-26 22:45
#82687 #82687
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Das geht auf keinen Fall so einfach, wie man es sich vielleicht vorstellt. Das liegt einfach daran, dass es einen Unterschied zwischen einem Terminal und einer Tastatur gibt.
Mir faellt nur gerade eine dreckige Loesung ein: Einfach mit loadkeys rumwuschteln, sodass er Strg nicht als Strg sondern zum Beispiel als Leertaste interpretiert. Der Nachteil ist, dass sich das auch auf andere Terminals auswirkt. Und unter X muesste man sich da wieder eine andere Loesung einfallen lassen.

(unter windows: Keine Ahnung)\n\n

<!--EDIT|betterworld|1085597293-->
romulus
 2004-05-27 12:04
#82688 #82688
User since
2004-04-05
23 Artikel
BenutzerIn
[default_avatar]
Quote
Das geht auf keinen Fall so einfach, wie man es sich vielleicht vorstellt.
Ja, das hab ich mittlerweile auch mitbekommen :)
Quote
Mir faellt nur gerade eine dreckige Loesung ein: Einfach mit loadkeys rumwuschteln, sodass er Strg nicht als Strg sondern zum Beispiel als Leertaste interpretiert.
Das kann ich echt nicht machen. Ausserdem sollte das ja sowohl in der echten Konsole als auch in einem XTerm gehen. Es muss doch eine Möglichkeit geben, zu merken ob die CTRL Taste gedrückt ist oder nicht.
(Die Anwendung nutzen auch andere ausser mir, d.h. ich kann auf keinen Fall mit loadkeys o.ä. an den Einstellungen rumfuchteln)
Crian
 2004-05-27 17:44
#82689 #82689
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Und wenn Du doch eine Tk-Anwendung daraus machst, in der Du die Konsole in einem Text-Widget simulierst? Dann kannst Du wunderbar auch CTRL abfangen.

Dazu müsstes es doch eigentlich schon Module geben, ansonsten einfach alle mit Return abgeschlossenen Anweisungen an eine Shell weiterreichen. Kommt drauf an, welche Funktionalität der Shell Du brauchst um abzuschätzen, wie aufwändig das werden würde.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
romulus
 2004-05-28 17:14
#82690 #82690
User since
2004-04-05
23 Artikel
BenutzerIn
[default_avatar]
Quote
Und wenn Du doch eine Tk-Anwendung daraus machst, in der Du die Konsole in einem Text-Widget simulierst? Dann kannst Du wunderbar auch CTRL abfangen.

Das mag schon sein. Das Problem ist aber, dass die Anwendung bis jetzt eine reine Konsolen Anwendung ist. D.h. sie funktioniert auch ohne X und das soll auch so bleiben. Und Perl/Tk braucht halt X. Ich könnte natürlich auch abfragen ob X läuft oder nicht aber ich möchte von den Leuten nicht verlangen, dass sie Perl/Tk installiert haben müssen. Es haben bestimmt nicht alle Perl/Tk installiert (ich z.B. habs nicht) und zum mitliefern ist es viel zu gross. Aber für eine Lösung unter X bin ich gerade bei cpan über das Modul X11::GUITest gestolpert. Da kann man mit einer Funktion rausfinden ob CTRL gedrückt ist. Funktioniert leider auch nur mit X aber ich hab auch keine Lust mehr zu suchen. Und es gibt ja eh noch als alternative [CTRL-T] was halt immer funktioniert.
Quote
Dazu müsstes es doch eigentlich schon Module geben, ansonsten einfach alle mit Return abgeschlossenen Anweisungen an eine Shell weiterreichen. Kommt drauf an, welche Funktionalität der Shell Du brauchst um abzuschätzen, wie aufwändig das werden würde.

Sorry, aber irgendwie hab ich diesen Teil nicht verstanden ..
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2004-05-24 19:15.