Können Sie Funktionstastenbefehle aus einer Batchdatei an DOS senden?

4434
megantb

Batch-Dateien sind neu und ich muss eine für ein Programm schreiben, das unter DOS läuft. Eine der Fragen in der Eingabeaufforderung erfordert einen Funktionstastenbefehl (z. B. F1, F2 usw.).

Ich habe einen Artikel gelesen, der besagt, dass Sie in DOS keine Funktionstasten oder Tastenkombinationen Alt + senden können. Ich habe zwar auch einen Artikel gelesen, der besagt, dass der "spezielle erweiterte Code" für Funktionstasten wie folgt lautet:

F1: 0;59 F2: 0;60 etc... 

Meine Frage ist also, können Sie Funktionstastenbefehle an DOS senden? Wenn ja, wie können Sie dies am besten tun?

3
Beachten Sie, dass die WWW-Site, auf die Sie verweisen, in diesem Fall DOS, weder Windows noch ein VDM innerhalb von Windows behandelt. Wenn Sie Ihr Programm nicht wirklich unter DOS ausführen, haben Sie von einer WWW-Site aus begonnen, um das Falsche zu besprechen. Und selbst wenn Sie wirklich DOS verwenden, haben Sie mit einem Missverständnis von "Batch-Datei" begonnen. Versuchen Sie, Ihre Frage zu ändern [um sich auf das eigentliche Ziel zu konzentrieren, das Sie erreichen möchten, und nicht auf eine untergeordnete Aufgabe und ein Werkzeug, das möglicherweise ungeeignet ist] (http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/put) -Die Schokolade mit Bananen.html). JdeBP vor 12 Jahren 0

1 Antwort auf die Frage

1
RedGrittyBrick

Hier ist das Beispiel von Ihrem Link

@ECHO OFF REM Weisen Sie F1 erneut zu, um das aktuelle Verzeichnis aufzulisten REM F10 neu zuweisen, um DOS-Version zu erhalten  ECHO ← [0; 59; "DIR / w / p"; 13p ECHO ← [0; 68; "VER"; 13p  REM Now Setzen Sie ein Menü in hellgelb auf den Bildschirm CLS ECHO ← [1; 33m ECHO ← [12; 20HF1-Liste Aktuelles Verzeichnis ECHO ← [14; 20HF10 DOS-Versionsnummer drucken  REM Anzeige auf Normal zurücksetzen ECHO ← [0m 

(Hinweis ← steht für das Escape-Zeichen, das mit Ctrl+ und Pdann Escim DOS- EDITBefehl oder Windows-Eingabeaufforderung eingegeben wird. EDIT)

Du hast gefragt

Meine Frage ist also, können Sie Funktionstastenbefehle an DOS senden?

Wenn das Beispiel funktioniert, können Sie das auch. Sie können tatsächlich Windows und nicht DOS ausführen, was die Dinge ändern kann. Können Sie erklären, was passiert ist, als Sie die Batch-Datei oben ausprobiert haben?

Wenn Sie "Senden von Funktionstastenbefehlen" schreiben, haben Sie möglicherweise etwas anderes vor. In diesem Fall wäre es nützlich, wenn Sie näher erläutern, was Sie erreichen möchten.

Wenn ja, wie können Sie dies am besten tun?

Ich weiß es nicht, aber die Methode in dem Artikel scheint vernünftig (wenn auch in der Anwendbarkeit eingeschränkt).

ECHO ← [0; 59; "DIR / w / p"; 13p Dieser Befehl ordnet F1 nach DIR / w / p zu. Wenn das Programm ausgeführt wird, kommt es zu einem Punkt, an dem es auf Benutzereingaben wartet. Die übliche Eingabe ist "F1". Es werden einige weitere Eingabeaufforderungen durch den Benutzer eingegeben (y / n). Da dieser Befehl neu zugewiesen wird. Könnte ich möglicherweise einen Schlüssel neu zuweisen, um F1 darzustellen? (dh ECHO ← [eine Taste; 0; 59; 13p) Ich bin nicht sicher, wie ich sonst beschreiben soll, was ich anders machen möchte, als der Bildschirm den Benutzer auffordert, die Eingabe von F1 und dann eine Reihe von (J / N) einzugeben. Ich möchte eine Batch-Datei erstellen, die F1 sendet, wenn Sie dazu aufgefordert werden, und dann mit J / N antworten. megantb vor 12 Jahren 0
Nein, mit dieser Technik können Sie das nicht tun. Wenn Sie ein vorhandenes interaktives DOS-Programm steuern möchten, benötigen Sie ein spezielles Programm wie "Erwarten" - Ich kenne keine Version für MS-DOS, aber es gibt wahrscheinlich etwas Äquivalentes. RedGrittyBrick vor 12 Jahren 0