Tastenkombination mit Shift abfragen.

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

D2006

Administrator

Betreff: Tastenkombination mit Shift abfragen.

BeitragMo, Feb 14, 2005 10:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute,

folgendes kleines Problem.
Vor irgendwelchen großen Erklärungen, einfach ein Stück Code:
Code: [AUSKLAPPEN]

Graphics 200,200,0,2
Setbuffer Backbuffer()

While Not Keyhit(1)
  Cls
  Text 10,10,KeyDown(42)
  Flip
  Wend
End


Billig. Schreibt ne 1, wenn Taste 42 (Shift links) gedrückt wird.
Mein Problem: Es zeigt auch ne eins, wenn folgende tasten gedrückt werden:
Pfeiltasten;Einfg;Entf;Pos1;Ende;Bild hoch;Bild runter;Druck

Allerdings nur, wenn NUM LOCK drin ist (und das ist bei mir, wie bei vielen anderen bestimmt auch, immer drin).

Wie kann ich nun Tastenkombos wie SHIFT+EINFG abfragen ???
Bitte um Antwort.

MfG
D2006

PS: Ich nutze BlitzPlus Version 1.39

EDIT: hab nun Version 1.40. Problem bleibt bestehen.
  • Zuletzt bearbeitet von D2006 am Mo, Feb 14, 2005 10:32, insgesamt einmal bearbeitet

Hubsi

BeitragMo, Feb 14, 2005 10:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Weiß nicht obs weiterhilft, in B3D gibts das Problem nicht. Scheint ein Bug der Plus zu sein.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Klaas

BeitragMo, Feb 14, 2005 10:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habs grade mit Blitz+ ausprobiert .. bei mir ist das nicht so. Es kommt nur eine 1 wenn ich linkes SHIFT drücke.

Ich kenne so ein Problem von manchen Spielen, dort konnte ich die Pfeiltatsten auch nie belegen weil das Spiel immer nur SHIFT für den Tastendruck erkannte. Das war aber auf einem anderen Rechner.

D2006

Administrator

BeitragMo, Feb 14, 2005 11:02
Antworten mit Zitat
Benutzer-Profile anzeigen
demnach liegt es wohl an meinem PC.

Hat jemand Erfahrung damit???
Was kann ich dagegen tun?

MfG
D2006

D2006

Administrator

BeitragMo, Feb 14, 2005 12:08
Antworten mit Zitat
Benutzer-Profile anzeigen
*doppelpost*

Also, habe das Problem nun geschickt umgangen.

Bin natürlich nicht so, und sage euch wie.

Code: [AUSKLAPPEN]
Graphics 200,200,0,2
Setbuffer Backbuffer()

While Not Keyhit(1)
  Cls
  Text 10,10,GetKeyState(16)
  Flip
  Wend
End


benutzter API-Befehl: GetAsyncKeyState
user32.decls hat Folgendes geschrieben:

.lib "user32.dll"
GetKeyState%(Key%):"GetAsyncKeyState"


Anmerkungen:
Gibt verschiedene Werte zurück. -32767 am Anfang. Dann einen anderen Wert <> 0 und sobald der windowstypische "Dauerfeuereffekt" auftritt wieder -32767. Wenn man also nur erfahren will, ob eine Taste überhaupt gedrückt wird, kann auf ungleich 0 geprüft.
Des weiteren werden zum Beispiel bei Shift (16) sowohl Shift links und Shift rechts berücksichtig.
Eine weitere Besonderheit: Es wirkt systemweit, also auch, wenn das BB Programm gar nicht fokusiert ist.

Hier eine kleine Liste mit Tasten und dazugehörigen Nummern:
Code, aber keine Scancodes(!) hat Folgendes geschrieben:
BACKSPACE - 8
TAB - 9
ENTER - 13 (sowohl Return, als auch Enter (Numpad))
SHIFT - 16 (beide Tasten)
STRG - 17 (beide Tasten)
ALT - 18 (auch ALT GR)
PAUSE - 19
ESC - 27
BILD RAUF - 33
BILD RUNTER - 34
ENDE - 35
POS1 - 36
LINKS - 37
HOCH - 38
RECHTS - 39
RUNTER - 40
DRUCK - 44
EINFG - 45
ENTF - 46
NUM - 144
ROLLEN - 145


In Kombination (zB SHIFT+STRG) treten auch andere Zahlenwerte auf. Müsst ihr in den Einzelfällen mal testen.

MfG
D2006

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group