Wenn vom Betriebssystem ein Tastendruck gemeldet wird, wird sowohl der
Buchstabe als auch die Nummer der gedr�ckten Taste �bergeben. Beides
wird in eine 16-Bit-Zahl verpackt, die ich im weiteren „Scancode``
nennen werde.17 Im Lowbyte, also den
unteren acht Bit, befindet sich der ASCII-Code des Buchstabens,
w�hrend sich im Highbyte, den oberen acht Bit, die Nummer der
gedr�ckten Taste befindet.
Beispiele:
- Wenn Sie die „1`` auf der normalen Tastatur dr�cken, liefert
das Betriebssystem den Scancode &023118.
�bersetzt hei�t das, da� die Taste Nr. 2 der Tastaturmatrix gedr�ckt
wurde, und da� das ASCII-Zeichen Nr. &31 (49 dez.) ausgegeben werden
soll, welches — wer h�tte das gedacht — dem Zeichen „1``
entspricht.
- Halten Sie nun zus�tzlich die Shift-Taste gedr�ckt, so liefert
das Betriebssystem den Scancode &0221. Wieder ist also die Taste
Nr. 2 gedr�ckt worden, diesmal soll jedoch das ASCII-Zeichen Nr. &21
(33 dez.) ausgegeben werden, welches das Ausrufezeichen „¡` ist.
- Dr�cken Sie die „1`` auf dem Zehnerblock, so erhalten Sie den
Scancode &6d31, also diesmal die Taste Nr. 109 der Tastaturmatrix
und wieder einmal die „1`` als Zeichen.
Wichtig zu erw�hnen ist in diesem Zusammenhang, da� nicht alle
unterschiedlichen Tastenkombinationen auch unterschiedliche Scancodes
liefern, z. B. wird abgesehen von ein paar Ausnahmef�llen (Umlaute)
entweder nur die Alternate- oder nur die Controltaste ber�cksichtigt,
nicht deren Kombination.19
Auch hat keine Tastatur 256 Tasten und vor allem keine Taste mit der
Nr. 0, was sich sp�ter als wichtig erweisen wird.
xEDIT arbeitet grunds�tzlich mit den Scancodes, so wie sie vom
Betriebssystem geliefert werden, und wertet nicht noch zus�tzlich den
Status der Sondertasten aus, was theoretisch durchaus m�glich
w�re.20 Das hat zweierlei Gr�nde:
- Nur so kann auf einfache Weise das Dr�cken von Tasten
innerhalb von Makros simuliert werden.
- Manchmal meldet das Betriebssystem Tastendr�cke mit einer
deutlichen Versp�tung, wenn z. B. ein im Hintergrund arbeitendes
Programm den Rechner l�ngere Zeit blockiert. Dann haben Sie die
Sondertasten m�glicherweise schon wieder losgelassen.
Um die Scancodes von bestimmten Tastenkombinationen herauszubekommen,
benutzen Sie entweder den Menupunkt „Scancodes anzeigen`` in
XED_INST.PRG
, oder Sie installieren SCANUTIL.ACC
, wobei
letzteres den Vorteil hat, da� Sie es bei der Entwicklung von
Tastaturmakros jederzeit zur Hand haben.