getch und shift?
-
hallo,
ich wollte gern mal die schift-taste abfragen, habs so versucht:printf("%d", getch());
leider tut sich da nix. wieso reagiert getch nicht? wie kann ich prüfen, ob shifttaste gedrückt?
-
wenn eine sondertaste egdrückt wird, ist der wert von getch 0.
ein zweites abfragen liefert dann den scancode der sondertaste
-
helferlein schrieb:
wenn eine sondertaste egdrückt wird, ist der wert von getch 0.
ein zweites abfragen liefert dann den scancode der sondertastegut aufgepaßt.
leider gehts bei shift und so nicht mit getch(). nur bei funktionmstasten, corsortasten und so.
-
kann man da villeicht etwas mit assembler machen oder so?
-
shift n00b schrieb:
kann man da villeicht etwas mit assembler machen oder so?
ja, aber das sprengt den rahmen von ansi c.
welches betriebssystem magst du nehmen?
windows? na, dann hilft wohl GetAsyncKeyState am besten.
-
volkard schrieb:
shift n00b schrieb:
kann man da villeicht etwas mit assembler machen oder so?
ja, aber das sprengt den rahmen von ansi c.
welches betriebssystem magst du nehmen?
windows? na, dann hilft wohl GetAsyncKeyState am besten.hatte da an eine plattform unabhängige assembler einbindung in den c-quellcode gedacht, weiss aber nicht ob das geht. ich tippsle z.zt. an einem editierbaren texteingabefeld für die konsole und wollte dieses gern unter windows und linux lauffähig haben. die funktionen für die tasten einfg, entf, pos1, ende, etc. sind fertig. leider habe ich jetzt erst gemerkt
, das die doofe shift-taste nicht abrufbar ist.
-
Hi!
Wenn das unter Windows und Linux laufen soll, dann kannst du für Windows die Funktion ReadConsoleInput benutzen. Für Linux sollte das doch wohl auch möglich sein, frag am besten im Linux Forum.Für das Kompilieren kannst du die Bedingungen dann ungefähr so setzen:
#ifdef WINDOWS ReadConsoleInput // ... #endif #ifdef LINUX DieAndereFunktion // ... #endif
Gruß,
B.B.