Frage deutsch
~~~~~~~~~~~~~~
Wie frage ich Cursor-Tasten oder die Taste xyz ab?
 

Question English
~~~~~~~~~~~~~~
Whow can I scan the cursor keys or any special character key?

 
Antwort 1
~~~~~~~~~
[ von Thomas Antoni, 1.2002 ]

 
Wie kann ich Tastenbetätigungen abfragen?
Wie lautet der CHR$()-Tastencode für die Taste XYZ?
Dies Fragen gehören zu den "Top Ten" der QBasic-Einsteigerfragen!
 
Zum Abfrage von Einzeltastenbetätigungen dient die Funktion INKEY$, die
den ASCII-Code der betätigten Taste zurückliefert. Dabei handelt es sich um
ein oder zwei Zeichen - ja nachdem, ob es sich um eine "normale" oder eine
Sondertaste handelt.
 
Den von INKEY$ zurückgelieferten Wert kann man mit CHR$(xxx) abfragen kann.
Dabei ist xxx der ASCII-Code des gewünschten Tastenzeichens.
 
Beispiele für Warteschleifen, die erst bei Betätigung der "j"-Taste oder der Enter-Taste
(ASCII-Tastencode=13) verlassen wird:
DO: LOOP WHILE INKEY$ <> "j" 'Warte bis "j"-Taste betätigt
DO: LOOP WHILE INKEY$ <> CHR$(13) 'Warte bis Eingabetaste betätigt
 
Für die "normalen" Tasten kannst Du den ASCII-Code in der ASCII-Tabelle
in der QBasic-Hilfe finden, und zwar unter "Inhalt -> ASCII-Zeichen".
Mein untenstehendes Programm TASTCODE.BAS zeigt immer den CHR$()-Tastencode der gerade gedrückten Taste auf dem Bildschirm an. Das funktioniert auch bei Sonder-und Funktionstasten.
 
Du findest TASTCODE.BAS unten unter Antwort 2, und Du kannst es sauch herunterladen auf
http://www.qbasic.de unter "QBasic -> Download -> Eigene Progs -> TastCode.zip"
 
Im Folgenden die Tastencodes der wichtigsten Sondertasten:
 
Enter = CHR$(13)
Leertaste = CHR$(32)
Backspace = CHR$(8)
Esc = CHR$(27)
 
CHR$(0)+CHR$(3) = (Leerzeichen) NUL
CHR$(0)+CHR$(15) = (Umschalten Tabulator) <-
CHR$(0)+CHR$(16...25) = ALT- Q,W,E,R,T,Y,U,I,O,P
CHR$(0)+CHR$(30...38) = ALT- A,S,D,F,G,H,J,K,L
CHR$(0)+CHR$(44...50) = ALT- Z,X,C,V,B,N,M
CHR$(0)+CHR$(59...68) = Funktionstasten F1 bis F10
CHR$(0)+CHR$(71) = Pos 1
CHR$(0)+CHR$(72) = Cursor Hoch
CHR$(0)+CHR$(73) = Bild Rauf
CHR$(0)+CHR$(75) = Cursor Links
CHR$(0)+CHR$(77) = Cursor Rechts
CHR$(0)+CHR$(79) = Ende
CHR$(0)+CHR$(80) = Cursor Runter
CHR$(0)+CHR$(81) = Bild Runter
CHR$(0)+CHR$(82) = Einfg
CHR$(0)+CHR$(83) = Entf
CHR$(0)+CHR$(84...93) = F11-F20 (Shift- F1 bis F10)
CHR$(0)+CHR$(94...103) = F21-F30 (Strg- F1 bis F10)
CHR$(0)+CHR$(104...113) = F31-F40 (Alt- F1 bis F10)
CHR$(0)+CHR$(114) = Strg-PrtSc (?)
CHR$(0)+CHR$(115) = Strg-Cursor Links
CHR$(0)+CHR$(116) = Strg-Cursor Rechts
CHR$(0)+CHR$(117) = Strg-Ende
CHR$(0)+CHR$(118) = Strg-Bild Runter
CHR$(0)+CHR$(119) = Strg-Pos1
CHR$(0)+CHR$(120...131) = ALT+ 1,2,3,4,5,6,7,8,9,0,-,=
CHR$(0)+CHR$(132) = Strg-Bild Rauf
 
 

Antwort 2
~~~~~~~~~
[ von Thomas Antoni, 3.5.2002 ]
 
*** Die wichtigsten Tastencodes
Anbei die Tastencodes für die am häufigsten benötigten Sondertasten; die "Buchstaben" sind als Großbuchstaben anzugeben:
+-- Taste --+-- Code ---+---- Taste ----+------ Code ----------------+
| Enter = CHR$(13) | Cursor hoch = CHR$(0) + "H" |
| Leertaste = CHR$(32) | Cursor tief = CHR$(0) + "P" |
| Backspace = CHR$(8) | Cursor links = CHR$(0) + "K" |
| Esc = CHR$(27) | Cursor rechts = CHR$(0) + "M" |
| Einf = CHR$(0) + "R" | Bild hoch = CHR$(0) + "I" |
| Entf = CHR$(0) + "S" | Bild tief = CHR$(0) + "Q" |
| Pos1 = CHR$(0) + "G" | F1....F10 = CHR$(0) + CHR$(59).....(68)|
| Ende = CHR$(0) + "O" | F11...F12 = CHR$(0) + CHR$(133)...(134)|
+-----------------------+--------------------------------------------+
 
*** Anwendungsbeispiele:
DO: LOOP WHILE INKEY$ <> "j" 'Warteschleife bis "j"-Taste betätigt
IF INKEY$ = CHR$(0) + "H" THEN 'wenn Cursor hoch betätigt
IF INKEY$ = CHR$(0) + CHR$(60) THEN 'wenn F2-Taste betätigt
 
*** Programm TASTCODE.BAS zum Abfragen des Tastencodes beliebiger Tasten
Mein untenstehendes Programm TASCODE.BAS ermöglicht es, den Tastencode beliebiger Tasten zu ermitteln. Das funktioniert auch bei Tasten, deren Tastencode aus zwei Zeichen besteht, z.B. Funktions- und Cursortasten.
 
'****************************************************************************
' TASTCODE.BAS - QBasic-Programm zur Ermittlung d.Tastaturcodes einer Taste
' ==========================================================================
'
' Anmerkung 1: Der Tastaturcode einiger Sondertasten besteht aus 2 Bytes
' und werden so angezeigt: "(CHR$(<1.Byte>) + CHR(<2.Byte>)"
' Anmerkung 2: Die Tastaturcodes werden in der Form "CHR$(x)" ausgegeben.
' In dieser Form koennen sie direkt in einer Tastenabfrage
' z.B. 'taste$=inkey$: IF taste$= xxx THEN ...'
' verwendet werden.
'
'
'
' \ (c) Thomas Antoni, 01.08.99 - 24.02.04
' \ /\ Mailto:thomas*antonis.de
' ( ) http://www.antonis.de
' .( o ).
' ----==== Hottest QBasic Stuff on Earth !!! ====----
'
'****************************************************************************
COLOR , 1: CLS 'Bildschirm blau einfaerben
PRINT " Ermittlung des Tastencodes fuer eine beliebige Taste"
PRINT " ===================================================="
PRINT
PRINT " Druecke eine beliebige Taste! ...(beenden mit Esc)"
PRINT
VIEW PRINT 6 TO 25 'die weiteren Ausgaben erfolgen rollierend in
'den Bildschirmzeilen 6 bis 25
COLOR 0, 7 'Schwarz auf Hellgrau
CLS 'Diesen Bereich Hellgrau einfaerben
DO
DO: taste$ = INKEY$: LOOP WHILE taste$ = "" 'auf Tastenbetaetigung warten
PRINT " Die Taste hat den dezimalen Tastencode ";
COLOR 14, 1 'gelb auf blau
PRINT "CHR$("; ASC(taste$); ")";
IF LEN(taste$) = 2 THEN PRINT " + CHR$("; ASC(RIGHT$(taste$, 1)); ")";
'Sondertaste mit 2 Zeichen langem Tastencode
COLOR 0, 7 'Schwarz auf Hellgrau
LOOP UNTIL taste$ = CHR$(27)
SLEEP 2 '2 sec warten vor dem Beenden
END
 
Das obige Programm steht im Verzeichnis Progs\ zur Verfügung sowie online unter www.antonis.de/faq/progs/tastcode.bas .
 
 

Antwort 3
~~~~~~~~~
[ von Andreas Meile (
http://dreael.catty.ch/Deutsch/BASIC-Knowhow-Ecke/ ) im QB-Forum, 2.6.2002 ]
Tastatur-Tabelle

X CHR$(X) CHR$(0)+CHR$(X)...x is the "Keyboard Scan Code"
1 <Ctrl>+<A>, <Alt>+<1> <Alt>+<Esc>
2 <Ctrl>+<B>, <Alt>+<2>
3 <Ctrl>+<C>, <Alt>+<3> <Ctrl>+<2>
4 <Ctrl>+<D>, <Alt>+<4>
5 <Ctrl>+<E>, <Alt>+<5>
6 <Ctrl>+<F>, <Alt>+<6>
7 <Ctrl>+<G>, <Alt>+<7>
8 <Backspace>, <Ctrl>+<H>, <Alt>+<8>
9 <Tab>, <Ctrl>+<I>, <Alt>+<9>
10 <Ctrl>+<CR/Enter>, <Ctrl>+<J>, <Alt>+<10>
11 <Ctrl>+<K>, <Alt>+<11>
12 <Ctrl>+<L>, <Alt>+<12>
13 <CR/Enter>, <Ctrl>+<M>, <Alt>+<13>
14 <Ctrl>+<N>, <Alt>+<14>
<Alt>+<Backspace>
15 <Ctrl>+<O>, <Alt>+<15> <Shift>+<Tab>
16 <Ctrl>+<P>, <Alt>+<16>, <Ctrl>+<PrtScreen> <Alt>+<Q>
17 <Ctrl>+<Q>, <Alt>+<17> <Alt>+<W>
18 <Ctrl>+<R>, <Alt>+<18> <Alt>+<E>
19 <Ctrl>+<S>, <Alt>+<19> <Alt>+<R>
20 <Ctrl>+<T>, <Alt>+<20> <Alt>+<T>
21 <Ctrl>+<U>, <Alt>+<21> <Alt>+<Y>
22 <Ctrl>+<V>, <Alt>+<22> <Alt>+<U>
23 <Ctrl>+<W>, <Alt>+<23> <Alt>+<I>
24 <Ctrl>+<X>, <Alt>+<24> <Alt>+<O>
25 <Ctrl>+<Y>, <Alt>+<25> <Alt>+<P>
26 <Ctrl>+<Z>, <Alt>+<26>
<Alt>+<ü>
27 <Esc>, <Ctrl>+<[>, <Alt>+<27> <Alt>+<¨>
28 <Ctrl>+<\>, <Alt>+<28> <Alt>+<CR>
29 <Ctrl>+<]>, <Alt>+<29>
30 <Ctrl>+<6>, <Alt>+<30> <Alt>+<A>
31 <Ctrl>+<_>, <Alt>+<31> <Alt>+<S>
32 <Space>, <Alt>+<32> <Alt>+<D>
33 <!>, <Alt>+<33> <Alt>+<F>
34 <">, <Alt>+<34> <Alt>+<G>
35 <#>, <Alt>+<35> <Alt>+<H>
36 <$>, <Alt>+<36> <Alt>+<J>
37 <%>, <Alt>+<37> <Alt>+<K>
38 <&>, <Alt>+<38> <Alt>+<L>
39 <'>, <Alt>+<39>
<Alt>+<ö>
40 <(>, <Alt>+<40> <Alt>+<ä>
41 <)>, <Alt>+<41> <Alt>+<§>
42 <*>, <Alt>+<42>
43 <+>, <Alt>+<43>
<Alt>+<$>
44 <,>, <Alt>+<44> <Alt>+<Z>
45 <->, <Alt>+<45> <Alt>+<X>
46 <.>, <Alt>+<46> <Alt>+<C>
47 </>, <Alt>+<47> <Alt>+<V>
48 <0>, <Alt>+<48> <Alt>+<B>
49 <1>, <Alt>+<49> <Alt>+<N>
50 <2>, <Alt>+<50> <Alt>+<M>
51 <3>, <Alt>+<51>
<Alt>+<,>
52 <4>, <Alt>+<52> <Alt>+<.>
53 <5>, <Alt>+<53> <Alt>+<_>
54 <6>, <Alt>+<54>
55 <7>, <Alt>+<55>
<Alt>+<*_Keypad>
56 <8>, <Alt>+<56>
57 <9>, <Alt>+<57>
58 <:>, <Alt>+<58>
59 <;>, <Alt>+<59> <F1>
60 <<>, <Alt>+<60> <F2>
61 <=>, <Alt>+<61> <F3>
62 <>>, <Alt>+<62> <F4>
63 <?>, <Alt>+<63> <F5>
64 <@>, <Alt>+<64> <F6>
65 <A>, <Alt>+<65> <F7>
66 <B>, <Alt>+<66> <F8>
67 <C>, <Alt>+<67> <F9>
68 <D>, <Alt>+<68> <F10>
69 <E>, <Alt>+<69>
70 <F>, <Alt>+<70>
71 <G>, <Alt>+<71> <Home>
72 <H>, <Alt>+<72> <CursorUp>
73 <I>, <Alt>+<73> <PgUp>
74 <J>, <Alt>+<74>
<Alt>+<-_Keypad>
75 <K>, <Alt>+<75> <CursorLeft>
76 <L>, <Alt>+<76>
<5_Keypad>
77 <M>, <Alt>+<77> <CursorRight>
78 <N>, <Alt>+<78>
<Alt>+<+_Keypad>
79 <O>, <Alt>+<79> <End>
80 <P>, <Alt>+<80> <CursorDown>
81 <Q>, <Alt>+<81> <PgDown>
82 <R>, <Alt>+<82> <Ins>
83 <S>, <Alt>+<83> <Del>
84 <T>, <Alt>+<84> <Shift>+<F1>
85 <U>, <Alt>+<85> <Shift>+<F2>
86 <V>, <Alt>+<86> <Shift>+<F3>
87 <W>, <Alt>+<87> <Shift>+<F4>
88 <X>, <Alt>+<88> <Shift>+<F5>
89 <Y>, <Alt>+<89> <Shift>+<F6>
90 <Z>, <Alt>+<90> <Shift>+<F7>
91 <[>, <Alt>+<91> <Shift>+<F8>
92 <\>, <Alt>+<92> <Shift>+<F9>
93 <]>, <Alt>+<93> <Shift>+<F10>
94 <^>, <Alt>+<94> <Ctrl>+<F1>
95 <_>, <Alt>+<95> <Ctrl>+<F2>
96 <`>, <Alt>+<96> <Ctrl>+<F3>
97 <a>, <Alt>+<97> <Ctrl>+<F4>
98 <b>, <Alt>+<98> <Ctrl>+<F5>
99 <c>, <Alt>+<99> <Ctrl>+<F6>
100 <d>, <Alt>+<100> <Ctrl>+<F7>
101 <e>, <Alt>+<101> <Ctrl>+<F8>
102 <f>, <Alt>+<102> <Ctrl>+<F9>
103 <g>, <Alt>+<103> <Ctrl>+<F10>
104 <h>, <Alt>+<104> <Alt>+<F1>
105 <i>, <Alt>+<105> <Alt>+<F2>
106 <j>, <Alt>+<106> <Alt>+<F3>
107 <k>, <Alt>+<107> <Alt>+<F4>
108 <l>, <Alt>+<108> <Alt>+<F5>
109 <m>, <Alt>+<109> <Alt>+<F6>
110 <n>, <Alt>+<110> <Alt>+<F7>
111 <o>, <Alt>+<111> <Alt>+<F8>
112 <p>, <Alt>+<112> <Alt>+<F9>
113 <q>, <Alt>+<113> <Alt>+<F10>
114 <r>, <Alt>+<114> <Ctrl>+<PrintScreen>
115 <s>, <Alt>+<115> <Ctrl>+<CursorLeft>
116 <t>, <Alt>+<116> <Ctrl>+<CursorRight>
117 <u>, <Alt>+<117> <Ctrl>+<End>
118 <v>, <Alt>+<118> <Ctrl>+<PgDown>
119 <w>, <Alt>+<119> <Ctrl>+<Home>
120 <x>, <Alt>+<120> <Alt>+<1>
121 <y>, <Alt>+<121> <Alt>+<2>
122 <z>, <Alt>+<122> <Alt>+<3>
123 <{>, <Alt>+<123> <Alt>+<4>
124 <|>, <Alt>+<124> <Alt>+<5>
125 <}>, <Alt>+<125> <Alt>+<6>
126 <~>, <Alt>+<126> <Alt>+<7>
127 <Ctrl>+<Backspace>, <Alt>+<127> <Alt>+<8>
128 <Ç>, <Alt>+<128> <Alt>+<9>
129 <ü>, <Alt>+<129> <Alt>+<0>
130 <é>, <Alt>+<130> <Alt>+<'>
131 <â>, <Alt>+<131> <Alt>+<^>
132 <ä>, <Alt>+<132> <Ctrl>+<PageUp>
133 <à>, <Alt>+<133> <F11>
134 <å>, <Alt>+<134> <F12>
135 <ç>, <Alt>+<135> <Shift>+<F11>
136 <ê>, <Alt>+<136> <Shift>+<F12>
137 <ë>, <Alt>+<137> <Ctrl>+<F11>
138 <è>, <Alt>+<138> <Ctrl>+<F12>
139 <ï>, <Alt>+<139> <Alt>+<F11>
140 <î>, <Alt>+<140> <Alt>+<F12>
141 <ì>, <Alt>+<141>
<Ctrl>+<CursorUp>
142 <Ä>, <Alt>+<142> <Ctrl>+<-_Keypad>
143 <Å>, <Alt>+<143> <Ctrl>+<5_Keypad>
144 <É>, <Alt>+<144> <Ctrl>+<+_Keypad>
145 <æ>, <Alt>+<145> <Ctrl>+<CursorDown>
146 <Æ>, <Alt>+<146> <Ctrl>+<Ins>
147 <ô>, <Alt>+<147> <Ctrl>+<Del>
148 <ö>, <Alt>+<148> <Ctrl>+<Tab>
149 <ò>, <Alt>+<149> <Ctrl>+</_Keypad>
150 <û>, <Alt>+<150> <Ctrl>+<*_Keypad>
151 <ù>, <Alt>+<151> <Alt>+<Home>
152 <ÿ>, <Alt>+<152> <Alt>+<CursorUp>
153 <Ö>, <Alt>+<153> <Alt>+<PgUp>
154 <Ü>, <Alt>+<154>
155 <ø>, <Alt>+<155>
<Alt>+<CursorLeft>
156 <£>, <Alt>+<156>
157 <Ø>, <Alt>+<157>
<Alt>+<CursorRight>
158 <×>, <Alt>+<158>
159 <ƒ>, <Alt>+<159>
<Alt>+<End>
160 <á>, <Alt>+<160> <Alt>+<CursorDown>
161 <í>, <Alt>+<161> <Alt>+<PgDown>
162 <ó>, <Alt>+<162> <Alt>+<Ins>
163 <ú>, <Alt>+<163> <Alt>+<Del>
164 <ñ>, <Alt>+<164> <Alt>+</_Keypad>
165 <Ñ>, <Alt>+<165> <Alt>+<Tab>
166 <ª>, <Alt>+<166> <Alt>+<Enter_Keypad>
167 <º>, <Alt>+<167>
168 <¿>, <Alt>+<168>
169 <®>, <Alt>+<169>
170 <¬>, <Alt>+<170>
171 <½>, <Alt>+<171>
172 <¼>, <Alt>+<172>
173 <¡>, <Alt>+<173>
174 <«>, <Alt>+<174>
175 <»>, <Alt>+<175>
176 <_>, <Alt>+<176>
177 <_>, <Alt>+<177>
178 <_>, <Alt>+<178>
179 <¦>, <Alt>+<179>
180 <¦>, <Alt>+<180>
181 <Á>, <Alt>+<181>
182 <Â>, <Alt>+<182>
<Win95_Left>
183 <À>, <Alt>+<183> <Win95_Right>
184 <©>, <Alt>+<184> <W95_Menu>
185 <¦>, <Alt>+<185>
186 <¦>, <Alt>+<186>
187 <+>, <Alt>+<187>
188 <+>, <Alt>+<188>
189 <¢>, <Alt>+<189>
190 <¥>, <Alt>+<190>
191 <+>, <Alt>+<191>
192 <+>, <Alt>+<192>
193 <->, <Alt>+<193>
194 <->, <Alt>+<194>
<Shift>+<Win95_Left>
195 <+>, <Alt>+<195> <Shift>+<Win95_Right>
196 <->, <Alt>+<196> <Shift>+<W95_Menu>
197 <+>, <Alt>+<197>
198 <ã>, <Alt>+<198>
199 <Ã>, <Alt>+<199>
200 <+>, <Alt>+<200>
201 <+>, <Alt>+<201>
202 <->, <Alt>+<202>
203 <->, <Alt>+<203>
204 <¦>, <Alt>+<204>
205 <->, <Alt>+<205>
206 <+>, <Alt>+<206>
<Ctrl>+<Win95_Left>
207 <¤>, <Alt>+<207> <Ctrl>+<Win95_Right>
208 <ð>, <Alt>+<208> <Ctrl>+<W95_Menu>
209 <Ð>, <Alt>+<209>
210 <Ê>, <Alt>+<210>
211 <Ë>, <Alt>+<211>
212 <È>, <Alt>+<212>
213 <i>, <Alt>+<213>
214 <Í>, <Alt>+<214>
215 <Î>, <Alt>+<215>
216 <Ï>, <Alt>+<216>
217 <+>, <Alt>+<217>
218 <+>, <Alt>+<218>
<Alt>+<Win95_Left>
219 <_>, <Alt>+<219> <Alt>+<Win95_Right>
220 <_>, <Alt>+<220> <Alt>+<W95_Menu>
221 <¦>, <Alt>+<221>
222 <Ì>, <Alt>+<222>
223 <_>, <Alt>+<223>
224 <Ó>, <Alt>+<224>
225 <ß>, <Alt>+<225>
226 <Ô>, <Alt>+<226>
227 <Ò>, <Alt>+<227>
228 <õ>, <Alt>+<228>
229 <Õ>, <Alt>+<229>
230 <µ>, <Alt>+<230>
231 <þ>, <Alt>+<231>
232 <Þ>, <Alt>+<232>
233 <Ú>, <Alt>+<233>
234 <Û>, <Alt>+<234>
235 <Ù>, <Alt>+<235>
236 <ý>, <Alt>+<236>
237 <Ý>, <Alt>+<237>
238 <¯>, <Alt>+<238>
239 <´>, <Alt>+<239>
240 <­>, <Alt>+<240>
241 <±>, <Alt>+<241>
242 <_>, <Alt>+<242>
243 <¾>, <Alt>+<243>
244 <¶>, <Alt>+<244>
245 <§>, <Alt>+<245>
246 <÷>, <Alt>+<246>
247 <¸>, <Alt>+<247>
248 <°>, <Alt>+<248>
249 <¨>, <Alt>+<249>
250 <·>, <Alt>+<250>
251 <¹>, <Alt>+<251>
252 <³>, <Alt>+<252>
253 <²>, <Alt>+<253>
254 <_>, <Alt>+<254>
255 < >, <Alt>+<255>


Hinweis: Schweizer-Deutschen-Tastaturtreiber geladen!

Note: Tested with a Swiss-German keyboard setting!


schwarz = mit INKEY$ auch abfragbar
violett = nur mit OPEN "con"-Methode abfragbar!


black = can also be queried with INKEY$
purple = can be queried with the OPEN "con" method only!
 
 
 

Antwort 4
~~~~~~~~~~~~~~~~
[ von Lebostein (
Lebostein*gmx.de ) im QB-Forum, 16.6.2003 ]
Hier mein kleines Programm, das alle Tasten und Tastenkombinationen ausgibt:
 
CLS
DO
taste$ = INKEY$
IF taste$ <> "" THEN
ausgabe$ = "CHR$(" + LTRIM$(STR$(ASC(RIGHT$(taste$, 1)))) + ")"
IF LEN(taste$) = 2 THEN ausgabe$ = "CHR$(0) + " + ausgabe$
LOCATE 1, 1: PRINT "Tastencode: " + ausgabe$ + SPACE$(15)
END IF
LOOP UNTIL taste$ = CHR$(27)
 
Hier ein paar Ergebnisse, die das Programm ausspuckt:
 
* Strg + A = chr$(1)

* Pfeiltaste oben = chr$(0) + chr$(72)

* Einfügen-Taste = chr$(0) + chr$(82)

* F9 = chr$(0) + chr$(67)

* Alt + X = chr$(0) + chr$(45)

* Strg + Q = chr$(17)
usw....
 
 
 

Antwort 5
~~~~~~~~~~~~~~~~~~
[ von Markus Engel ("M@rky",
basicforum*arcor.de ) per Mail, 19.10.2002 ]
 
Oft sucht man doch mal für INKEY$ einen bestimmten Tastencode. Hier findet ihr ihn bestimmt !
 
Keycodes V1.1 © Markus Engel
-------------------------------------------------------------
? = Nicht bekannt
X = Nicht möglich/Nicht bekannt
[...] = Bemerkung
-------------------------------------------------------------
TASTE | CODE | SHIFT+CODE | STRG+CODE | ALT+CODE
-------------------------------------------------------------
ENTER | 13 | ? | ? | ?
ESC | 27 | ? | ? | ?
SPACE | 32 | ? | ? | ?
RÜCKTASTE | 8 | 8 | 127 | (0)
TAB | 9 | 0;15 | (0;148) | (0;165)
NULL [?] | 0;3 | X | X | X
-------------------------------------------------------------
NACH-OBEN | (224;72) | (224;72) | (224;141) | (224;152)
NACH-LINKS | (224;75) | (224;75) | (224;115) | (224;155)
NACH-RECHTS | (224;77) | (224;77) | (224;116) | (224;157)
NACH-UNTEN | (224;80) | (224;80) | (224;145) | (224;154)
-------------------------------------------------------------
EINFG | (224;82) | (224;82) | (224;146) | (224;162)
ENTF | (224;83) | (224;83) | (224;147) | (224;163)
POS1 | (224;71) | (224;71) | (224;119) | (224;151)
ENDE | (0;79) | (224;79) | (224;117) | (224;159)
BILD-RAUF | (224;73) | (224;73) | (224;132) | (224;153)
BILD-RUNTER | (224;81) | (224;81) | (224;118) | (224;161)
-------------------------------------------------------------
DRUCK | X | X | 0;114 | X
ROLLEN | ? | ? | ? | ?
PAUSE/UNTBR | X | X | 0;0 | X
-------------------------------------------------------------
F1 | 0;59 | 0;84 | 0;94 | 0;104
F2 | 0;60 | 0;85 | 0;95 | 0;105
F3 | 0;61 | 0;86 | 0;96 | 0;106
F4 | 0;62 | 0;87 | 0;97 | 0;107
F5 | 0;63 | 0;88 | 0;98 | 0;108
F6 | 0;64 | 0;89 | 0;99 | 0;109
F7 | 0;65 | 0;90 | 0;100 | 0;110
F8 | 0;66 | 0;91 | 0;101 | 0;111
F9 | 0;67 | 0;92 | 0;102 | 0;112
F10 | 0;68 | 0;93 | 0;103 | 0;113
F11 | 0;133 | 0;135 | 0;137 | 0;139
F12 | 0;134 | 0;136 | 0;138 | 0;140
-------------------------------------------------------------
A | 97 | 65 | 1 | 0;30
B | 98 | 66 | 2 | 0;48
C | 99 | 66 | 3 | 0;46
D | 100 | 68 | 4 | 0;32
E | 101 | 69 | 5 | 0;18
F | 102 | 70 | 6 | 0;33
G | 103 | 71 | 7 | 0;34
H | 104 | 72 | 8 | 0;35
I | 105 | 73 | 9 | 0;23
J | 106 | 74 | 10 | 0;36
K | 107 | 75 | 11 | 0;37
L | 108 | 76 | 12 | 0;38
M | 109 | 77 | 13 | 0;50
N | 110 | 78 | 14 | 0;49
O | 111 | 79 | 15 | 0;24
P | 112 | 80 | 16 | 0;25
Q | 113 | 81 | 17 | 0;16
R | 114 | 82 | 18 | 0;19
S | 115 | 83 | 19 | 0;31
T | 116 | 84 | 20 | 0;20
U | 117 | 85 | 21 | 0;22
V | 118 | 86 | 22 | 0;47
W | 119 | 87 | 23 | 0;17
X | 120 | 88 | 24 | 0;45
Y | 121 | 89 | 25 | 0;21
Z | 122 | 90 | 26 | 0;44
-------------------------------------------------------------
1 | 49 | 33 | X | 0;120
2 | 50 | 64 | 0 | 0;121
3 | 51 | 35 | X | 0;122
4 | 52 | 36 | X | 0;123
5 | 53 | 37 | X | 0;124
6 | 54 | 94 | 30 | 0;125
7 | 55 | 38 | X | 0;126
8 | 56 | 42 | X | 0;126
9 | 57 | 40 | X | 0;127
0 | 48 | 41 | X | 0;129
-------------------------------------------------------------
- | 45 | 95 | 31 | 0;130
= | 61 | 43 | X | 0;131
[ | 91 | 123 | 27 | 0;26
] | 93 | 125 | 29 | 0;27
| 92 | 124 | 28 | 0;43
; | 59 | 58 | X | 0;39
' | 39 | 34 | X | 0;40
, | 44 | 60 | X | 0;51
. | 46 | 62 | X | 0;52
/ | 47 | 63 | X | 0;53
` | 96 | 126 | X | (0;41)
-------------------------------------------------------------
Zehnertastatur:
-------------------------------------------------------------
NUM | ? | ? | ? | ?
/ | 47 | 47 | (0;142) | (0;74)
* | 42 | (0;144) | (0;78) | X
- | 45 | 45 | (0;149) | (0;164)
+ | 43 | 43 | (0;150) | (0;55)
POS 1 | 0;71 | 55 | 0;119 | X
NACH OBEN | 0;72 | 56 | (0;141) | X
BILD RAUF | 0;73 | 57 | 0;132 | X
NACH LINKS | 0;75 | 52 | 0;115 | X
5 | (0;76) | 53 | (0;143) | X
NACH RECHTS | 0;77 | 54 | 0;116 | X
ENDE | 0;79 | 49 | 0;117 | X
NACH UNTEN | 0;80 | 50 | (0;145) | X
BILD RUNTER | 0;81 | 51 | 0;118 | X
EINFG | 0;82 | 48 | (0;146) | X
ENTF | 0;83 | 46 | (0;147) | X
ENTER | 13 | X | 10 | (0;166)
-------------------------------------------------------------

 
 

Answer 6
~~~~~~~~~~~
[ from the QB-Forum-FAQ at www.network54.com/Forum/ ]

 
Question
How to test if the xyz key ist pressed?
How can I test the keyboard, including F-keys and arrow keys?
 

Answer
In response to
K$ = INKEY$ , there are three possibilities:
 
*** ---> LEN(K$) = 0
This means no key has been pressed. The usual way to read the keyboard is
DO: K$ = INKEY$: LOOP WHILE K$ = ""
 
which will only drop out when a key is pressed.
To clear the keyboard buffer, use
WHILE INKEY$ = "": WEND
 
*** ---> LEN(K$) = 1
This is for normal keys such as a-z, Enter, Esc, etc.
 
For a list of the key codes that may be returned:
- Go to QBasic HELP
- Chose Quick Reference item ASCII Character Codes
 
This shows, for example, that the code for Enter, called carriage return (cr) is 13.
 
To test for Enter (carriage return),
IF K$ = CHR$(13) THEN ...
 
But most keys are simply tested like this:
IF UCASE$(K$) = "A" THEN ...
'--- The UCASE$ is used if you want "A" and "a" and don't care which.
 
*** ---> LEN(K$) = 2
This is for arrow keys, F-keys, etc.
 
For an explanation,
- Go to QBasic HELP
- Chose INKEY$ Function
- After reading, chose "Keyboard Scan Codes" for details
 
Having read this, you will understand that to test for F1
IF K$ = CHR$(0) + CHR$(59) THEN ... 'you have found F1
 
Many programmers avoid the scan codes for the arrow codes by memorizing the letters HPKM as arrow keys up/down/left/right so instead of
IF K$ = CHR$(0) + CHR$(77) THEN ... 'you have found Right Arrow
 
they code
IF K$ = CHR$(0) + "M" THEN ...'you have found Right Arrow
or else they make self-documenting constants
RightArrow$ = CHR$(0) + "M"
and then test like this
IF K$ = RightArrow$ THEN ... 'you have found Right Arrow
 
Below is a program that will show the codes in case you don't want to look them up.
 
Mac
 
CLS
PRINT "Press keys to see what to test for"
PRINT "(Press ESC when finished)"
DO
PRINT
LOCATE , , 1: PRINT "Key: ";
DO: k$ = INKEY$: LOOP WHILE k$ = ""
GOSUB GetASC
IF LEN(k$) = 1 THEN
PRINT a$; more$
ELSE
PRINT "ASC(0)+"; a$; more$
END IF
LOOP WHILE k$ <> CHR$(27)
SYSTEM
GetASC:
a = ASC(RIGHT$(k$, 1))
a$ = "ASC(" + LTRIM$(STR$(a)) + ")"
IF a < 32 THEN
more$ = ""
ELSE
more$ = " or " + CHR$(34) + RIGHT$(k$, 1) + CHR$(34)
END IF
RETURN
 

[ The QBasic-MonsterFAQ --- Start Page: www.antonis.de/faq ]