Autor | Thema: Tastatureingaben abfragen | | Datum:21.12.01 14:10 
(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
|
| | Datum:21.12.01 14:18 
(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
|
| | Datum: 21.12.01 16:03 
(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
|
|
|