Tastaturabfrage

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
ws1964
Foriker
Beiträge: 5
Registriert: Mo 13. Mär 2006, 19:52
Kontaktdaten:

Tastaturabfrage

Beitrag von ws1964 » Di 31. Jul 2007, 03:10

Hallo,

Ich suche nach einem Befehl oder ähnlichem, der mir die Tastatur abfragt und mir einen Tastencode (ASCII-Code) zurück gibt.
Das soll aber nicht über grafische Objekte erfolgen wie Textboxen o.ä..
Ich möchte eine kleine Funktion schreiben, die solange wartet, bis eine Taste gedrückt wird und den Funktionsnamen dann den Tastencode zurück gibt. Das soll dann ein Kommandozeilenprogramm werden.

Gibt es einen Befehl, der nur einfach auf einen Tastendruck wartet?

Danke

Wolf

roemi
Site Admin
Beiträge: 423
Registriert: So 11. Dez 2005, 20:05
Wohnort: Hanau / Germany
Kontaktdaten:

Beitrag von roemi » Fr 3. Aug 2007, 11:30

Du meinst als Dienst der im Hintergrund läuft?
Da gibt es was von Ratiopharm ... neee, im Ernst.

Was hast Du denn vor?

(Sorry, aber ich kann mich erst am Sonntag wieder melden)
Römi (seit 1989 bekennender Bergradfahrer und professioneller Biertrinker)
http://www.roemi.de

ws1964
Foriker
Beiträge: 5
Registriert: Mo 13. Mär 2006, 19:52
Kontaktdaten:

Beitrag von ws1964 » Sa 4. Aug 2007, 18:39

roemi hat geschrieben:Du meinst als Dienst der im Hintergrund läuft?
...
Was hast Du denn vor?

(Sorry, aber ich kann mich erst am Sonntag wieder melden)
Hallo,
Danke für die Antwort.
Also was habe ich vor.

Ich will einfach eine ganz normale Funktion schreiben, die mir als Rückgabe den Tastencode einer beliebigen Taste liefert.
Dies soll aber ohne Fenster o.ä. Schnickschnack laufen.
Dieses Programm will ich aus einem Linux-Script aufrufen, die Funktion wartet bis eine Taste gedrückt ist und gibt dann über den Funktionsnahmen den T-Code zurück.

Ein Beispiel-Code aus BASIC-Urzeiten:

Code: Alles auswählen

Function TastenCode () as String
 
dim Taste as String

 Taste=Inkey$  : REM Tastatur abfragen
 TastenCode=Taste : REM Code an den Funktionsnamen übergeben

End  Function
Ich weiss, bei Gambas heißt dass:

Code: Alles auswählen

RETURN Taste
Aber deswegen :"Basic-Urzeiten". :-)

Danke Wolf

roemi
Site Admin
Beiträge: 423
Registriert: So 11. Dez 2005, 20:05
Wohnort: Hanau / Germany
Kontaktdaten:

Beitrag von roemi » Mo 6. Aug 2007, 09:20

Sorry, da muss ich passen.
Bis dato habe ich das ganze nur innerhalb einer Gambas-Form praktiziert.
Da aber dann so:

Code: Alles auswählen

PUBLIC SUB txtergebnis_KeyPress()
'die eingabe auf gültigkeit prüfen

    SELECT CASE key.Code

        CASE key.Enter
            aufgabepruefen()
        CASE key.Return
            aufgabepruefen()
        CASE key.BackSpace
        CASE 44
            ',
            'ist bereits ein komma da ....
            IF InStr(ME.txtergebnis.Text, ",") THEN STOP EVENT
            'steht das komma an erster stelle ...
            IF Len(ME.txtergebnis.Text) = 0 THEN ME.txtergebnis.text = "0"
            'folgt das komma einem - ...
            IF Len(ME.txtergebnis.Text) = 1 AND ME.txtergebnis.Text = "-" THEN STOP EVENT
        CASE 45
            '-
            'darf nur an die erste stelle ...
            IF Len(ME.txtergebnis.Text) <> 0 THEN STOP EVENT
        CASE 48
            '0
        CASE 49
            '1
        CASE 50
            '2
        CASE 51
            '3
        CASE 52
            '4
        CASE 53
            '5
        CASE 54
            '6
        CASE 55
            '7
        CASE 56
            '8
        CASE 57
            '9
        CASE 4103
            ME.txtergebnis.clear
        CASE ELSE
            STOP EVENT
    END SELECT
END
Ich glaube zwar nicht, aber vielleicht hilft es.
Römi (seit 1989 bekennender Bergradfahrer und professioneller Biertrinker)
http://www.roemi.de

ws1964
Foriker
Beiträge: 5
Registriert: Mo 13. Mär 2006, 19:52
Kontaktdaten:

Beitrag von ws1964 » Mo 6. Aug 2007, 11:38

Hallo,
Danke für Deine Hilfe.
Ja, dass kenne ich schon. Wollte aber den Tastendruck ohne Form abfragen. Ich versuchs mal, in dem ich einfach die Form nicht anzeige, sie also im "Verdeckten" belasse.

Wolf

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast