Wir haben einen Tip, mit dem Sie nahezu jedem Anwenderprogramm Tastatur-Eingaben, die normalerweise Sie tätigen müßten, im voraus mitteilen können, ohne daß Sie auch nur einen einzigen Finger krümmen müssen. »KEYIN« plaziert Tastendrücke in den Tastatur-Puffer des PCs, was den selben Effekt hat, als würden Sie eine Taste direkt drücken. Wenn Sie zum Beispiel ein Programm haben, das Ihnen bei jedem Start eine Copyright-Meldung präsentiert, die Sie schon in- und auswendig kennen, jedesmal aber mit Enter bestätigen müssen, sorgt KEYIN für Abhilfe. Andere Programme wie Enable, wollen beispielsweise immer die Uhrzeit und das aktuelle Tages-Datum wissen, was eigentlich in Ordnung, aber bei den meisten PCs mit Echtzeituhr überflüssig ist. Um zum Beispiel einem Programm zwei »Enter-Tasten« vorauszuschicken fügen Sie in die aufrufende Batch-Datei vor dem eigentlichen Programm-Namen die Zeile »KEYIN \13\13« ein. Die 13 steht für Return. Buchstaben, Zeichen oder Ziffern können Sie direkt angeben. »KEYIN ja\13« schickt zum Beispiel das Wort »ja« mit Return in den Tastatur-Puffer, »KEYIN 0815« entsprechend Nullachtfünfzehn ohne Return. Erweiterte Tasten, so die Funktions- oder Cursor-Tasten leiten Sie mit »\0« ein. »KEYIN \075« würde also den Cursor nach links bewegen. Wenn Word 4.0 nach dem Programmstart automatisch [Strg] + [F7] ausführen soll, damit sämtliche Texte aufgelistet werden, verwenden Sie einfach den Stapeljob W.BAT:
@ECHO OFF CD \WORD KEYIN "\0100" WORD
Kennen Sie die vom Tastaturtreiber verwendeten Codes nicht, so hilft Ihnen unser Tip »BIOS-Tastaturcodes ermitteln« weiter. Die hexadezimalen Codes, die Sie dort erhalten, müssen Sie lediglich ins Dezimalformat umwandeln, wobei Sie selbstverständlich unser Programm CONVERT.DEB im Kapitel »Andere Befehle« zuhilfe nehmen können.
KEYIN beinhaltet einen kleinen »Interpreter«, der es Ihnen ermöglicht, jede beliebige Tastenkombination im Puffer zu plazieren. Der »Interpreter« wertet Escape-Sequenzen aus, die durch das Zeichen » \ « eingeleitet werden und wandelt die nachfolgende Dezimalzahl in einen Tastendruck um. Damit der »Interpreter« bei der Aufeinanderfolge von Escape-Folgen und Ziffern nicht durcheinander gerät, bietet er Ihnen die Freiheit, jede Escape-Sequenz durch ein Leerzeichen abzuschliessen. Dieses gelangt nicht in den Tastaturpuffer. Folgt jedoch ein anderes Zeichen auf die Sequenz, berücksichtigt KEYIN auch dieses. Wenn auf den umgekehrten Schrägstrich keine Ziffer folgt, legt der »Interpreter« die entsprechende Taste direkt im Tastaturpuffer ab. Die Eingabe des Schrägstrichs » \ « selbst können Sie daher mit »KEYIN \\« hervorrufen. Natürlich geht es auch mit »KEYIN \92«, da 92 der ASCII-Wert dieses Zeichens ist. Um Ihnen das Eingeben der Umleitungszeichen » > «, » < « und » | « zu erleichtern, ignoriert der »Interpreter« alle doppelten Anführungszeichen in der Kommandozeile. Wollen Sie das Zeichen » > « im Tastaturpuffer ablegen, geben Sie daher »KEYIN „>“« ein. Ohne die Anführungsstriche würde DOS die Umleitung bereits beim Aufruf von KEYIN auswerten und einen »Fehler beim Erstellen der Datei« monieren. Befindet sich das Umleitungszeichen dagegen innerhalb von paarigen Anführungsstrichen, wertet DOS es als Text und ignoriert die Umleitung. Benötigen Sie das Anführunsgszeichen selbst, bieten sich analog zu » \ « die beiden Möglichkeiten »KEYIN \“« oder »KEYIN \34« an.
Leider wirkt KEYIN nur bei Programmen, die die Tastatur »brav« über das BIOS abfragen und den Puffer nicht gleich löschen, woran sich aber die meisten Anwendungen (sogar Word 4.0!) tatsächlich halten. Die Anzahl der Tasten ist auf die Puffergröße – normalerweise 15 Tasten – beschränkt. Mit 15 Angaben können Sie aber schon sehr viel voreinstellen. Genügt das trotzdem nicht, vergrößern Sie einfach mit KBDBUFF.DEB den Tastaturpuffer.
Name: | KEYIN.DEB |
Funktion: | Versorgt beliebige Anwendungen mit echten Tastatureingaben. |
Übersetzung: | DEBUG <KEYIN.DEB |
Prüfsumme: | 44CC |
Anwendung: | KEYIN [TEXT] [\CODE] [\0ERWEITERT] […]TEXT = Tastendrücke im ASCII-Format \ = Start einer Escape-Sequenz: \CODE = dezimaler ASCII-Code der Taste \0ERWEITERT = Erweiterter (Scan-) Code der Taste “ wird ignoriert \\ = \\“ = „ |
Einschränkungen: | Die Anzahl der Tasten ist auf die Größe des Tastatur-puffers beschränkt. Das Programm funktioniert nur bei Anwendungen, die die Tastatur über das BIOS abfragen und den Tastaturpuffer nicht löschen. |
A MOV AX,40 ;100 MOV DS,AX ;103 MOV SI,81 ;105 CALL 166 ;108 CALL 166 ;10B JZ 16E ;10E CMP AL,22 ;110 JZ 10B ;112 CMP AL,5C ;114 JNZ 145 ;116 CALL 166 ;118 XOR CX,CX ;11B MOV AH,0 ;11D MOV BL,AL ;11F SUB AL,30 ;121 JB 134 ;123 CMP AL,9 ;125 JA 134 ;127 AAD ;129 MOV AH,AL ;12B CALL 166 ;12D LOOPNZ 121 ;130 JMP 13B ;132 JCXZ 143 ;134 CMP AL,F0 ;136 JZ 13B ;138 DEC SI ;13A XCHG BL,AL ;13B SUB AL,30 ;13D JZ 147 ;13F MOV BL,AH ;141 MOV AL,BL ;143 MOV AH,0 ;145 MOV BX,[1C] ;147 MOV [BX],AX ;14B ADD BX,2 ;14D CMP BX,[82] ;150 JB 15A ;154 MOV BX,[80] ;156 CMP BX,[1A] ;15A JZ 164 ;15E MOV [1C],BX ;160 JMP 10B ;164 CS:MOV AL,[SI] ;166 CMP AL,D ;169 JZ 16E ;16B INC SI ;16D RET ;16E RCX 6F NKEYIN.COM W Q
Quelle: 200 Utilities für PC-/MS-DOS von Gerhard Schild und Thomas Jannot