Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249293 (10729)
  Suchen
 Zurück zur Übersicht
 AutorThema: Tastatureingaben abfragen
Philipp Sternberg
Datum:21.12.01 14:10 Antwortenals Email verschicken (ps@burghardt-ib.de) 


Hallo leute,
wie kann ich in der haupt-while-schleife abfragen, ob eine bestimmte STRG+xxx kombination (z.B. STRG+C = kopieren) über die Tatatur gedrückt wurde ?
Bei Tasten wie F1-F12 ist es einfach mittels %scankey zu lösen nur wie funktioneiert das ganze bei Tastenkombinationen ??

danke und frohes Fest !
Philipp Sternberg


Jörg Sellmeyer
Datum:21.12.01 14:18 Antwortenals Email verschicken (joerse@gmx.de) 


Hallo,
Es geht doch nichts über eine gutsortierte Codekiste :-)
Gruß
Jörg

Autor: Norbert Spörl (NSp_ware@t-online.de)
Betreff: Re: Scancodes

Hallo,

hab es nach einiger Mühe hinbekommen. Die Zeilen unten müßten das Problem lösen.

MfG

Norbert
-----------------------------------------------------------------------------------------------------------------------------

DEF GetKeyState(1) ! "USER32", "GetKeyState"
CLS
DECLARE ende%, vk1&, vk2&
WHILENOT ende%
WAITINPUT
vk1& = TESTBIT(GetKeyState(9), 15)
'-> 9 steht für Tab
vk2& = TESTBIT(GetKeyState(16), 15)
'-> 16 steht für Shift
IF AND(vk1&, vk2&)
MESSAGEBOX "Shift und Tab wurden gleichzeitig gedrückt.", " ... Hurraa ! ", 64
ENDIF
ENDWHILE
END



Moritz Kersten
Datum: 21.12.01 16:03 Antwortenals Email verschicken (IsNoGood2000@aol.com) 


Hallo,

das geht auch noch etwas einfacher, ich mach das immer so:

Def Keystate(1) !"USER32","GetKeyState"
Def Key(1) @equ(@and(@keystate(&(1)),$8000),$8000)

Strg+C würde dann so ausehen:

if @and(@key(17),@key(67))
...
endif

Wenn du statt GetKeyState, GetAsyncKeyState benutz wird die Tastatur auch abgefragt wenn dein Programm nicht den Focus hat.

Hier noch die wichtigsten Codes:

1 linke Maustaste
2 rechte Maustaste
3 oder 4 mittlere Maustaste
8 Backspace
9 Tab
13 Enter
16 Shift
17 Strg
18 Alt
19 Pause
27 Esc
37 Cursor links
38 Cursor oben
39 Cursor Rechts
40 Cursor unten
65-90 A-Z

mfg Moritz



 Zurück zur Übersicht