Alt und Shift?
-
Wie bekomm ich heraus, ob der nutzer Alt bzw. Shift gedrückt hat? Ist das Verhalten so ähnlich wie bei den Cursor Tasten, dass ich zwei Zeichen geliefert bekomme? Landen diese Zeichen überhaupt im Puffer?
Schonmal Danke.
-
Mit ANSI C ist das nicht möglich, da die ISO C Funktionen keine Sondertasten zurückliefern
BTW.
Shift merkst du eben nur daran, dass die Buchstaben groß sind, wenn man von einer normalen PC Tastatur ausgeht
-
Kann mich dann bitte jemand in die Konsolenanwendung schieben, evtl. bekomm ich da was raus. Danke.
NiP
-
gabs hier vor kurzem mal
-
Moin zusammen. Das hat mir insofern geholfen, dass ich jetzt weiß, wenn die Steuertasten im Zusammenhang mit einer anderen benutz wurden. Das ist ja schonmal was. Ich muss aber wissen, ob der Nutzer gerade Shift oder AT gedrückt hat, ohne einen andere Taste dazu zu drücken. Also bei Drücken von ALT muss das Proggi wissen, dass ALT gedrückt wurde.
Stehen die Zeichen überhaupt im Inputstream, wenn gedrückt wird?Danke NiP
-
Nein, IMHO nicht.
Alt und shift sind sogenannte modifizierer tasten. Du bekommst ein WM_KEYDOWN und WM_KEYUP gesendet, aber das ist auch alles. Und wenn du eine Konsole hast, kriegst du nichtmal die gescheit abgefragt.
Ein guter rat: Programmier gleich eine vollwertige Windowsanwendung. Dann hast du viel weniger Schwierigkeiten.
Und bei WM_CHAR ist IMHO schon dabei, ob alt oder shift gedrückt ist.
-
In der Konsole bzw. über die Funktion getch() ist es leider _nicht_ möglich zu erkennen ob gerade nur CTRL oder ALT gedürckt wurde. Entweder du lässt ein Zeichen dazudrücken, oder du musst wohl von der Konsole weggehen (weiß nicht ob das in Win geht, aber wenns cd9000 sagt, ist es meistens so ;)).
MfG SideWinder
-
Unter Windows könnt Ihr GetAsyncKeyState verwenden, auch in der Konsole.
-
Kannte ich gar nicht :).
MfG SideWinder