Supportnet Computer
Planet of Tech

Supportnet / Forum / BS-Sonstige

Funktionstasten mit Befehlen belegen





Frage

Seid gegrüsst Ich habe ein kleines Programm, das unter DOS läuft, aber dafür eine ziemlich lange Befehlszeile, die immer eingetippt werden muss. Ist es möglich die Funktionstasten (F1 etc.) Mit verschiedenen Befehlszeilen zu belegen. Wie kann man das machen?

Antwort 1 von Jupiter

es gab(?) mal ein Programm - Anykey - das konnte das. Vielleicht mal im Net suchen, ev. bei Gateway, hab das meine den ewigen Jagdgründen übergeben....

mfg Jup

Antwort 2 von Jupiter

Noch was: Wenn sich Eingaben in deiner DOS-Sitzung wiederholen, hilft dir auch >doskey<!
Damit kannst du via F8 die letzten (~10?) Eingabezeilen wiederholen...

mfg Jup

Antwort 3 von _gau_

Oh, das erinnert mich an meine alten DOS-Tage ;-)

Das ist mit DOS-Mitteln machbar, allerdings mußt du in der Datei Config.sys den ANSI.SYS-Treiber laden (Device=C:\Windows\Command\Ansi.sys)

Dann kannst du in der Autoexec.bat mit dem Prompt-Befehl Tastenzuweisungen machen, z.B.

prompt $e[0;60;"dir/a/p/ogen";13p
prompt $p$g

Dabei bedeuten:
$e[ ist der Befehl zur Tastenzuweisung
0;60 ist die Taste F2 (0;59 für F1 usw.)
"..." ist der zugewiesene Befehl (hier DIR mit paar nützlichen Schaltern)
13p schließt den Befehl mit ENTER ab

Du kannst mehrere solcher Zeilen erstellen, solltest aber als letztes immer mit "prompt $p$g" den normalen DOS-Prompt (C:\>) einstellen.

Natürlich kannst du den ganzen Quatsch auch sein lassen und deinen Befehl in eine Batch-Datei schreiben und dann diese starten ...aber du wolltest ja Funktionstasten ;-)

[gau]

Antwort 4 von _gau_

PS: Bei mir macht auf diesem Wege die (unter DOS) sonst völlig unnütze Taste F12 meine DOS-Fenster zu (mit EXIT).

Tastaturcodes für
F11 = 0;133
F12 = 0;134

[gau]

Antwort 5 von Markus_r

Hallo,

@gau:

Hätt da mal eine farge an Dich, versuche die Tasten STRG+ALT+ENF (WARMSTART) auf die Leertaste umzuleiten. Weist du wie man das macht?
Wenn ja Du kannst es mir ja auch Mailen.
Ich weiss leider nicht die CODE`s für die Tasten und wüste auch jetzt nicht wie ich dies als ESCAPSEQENCE eingeben müste.

Es geht darum das ein Warmstart gemacht werden müste nach einer Installation. Will dies aber so einfach machen wie es nur geht damit jeder User dies versteht :-).
Ich könnte dies ja auch mit eim REBOOT machen aber am Ende der Installation ist die Diskette draussen und damit gibt es keine möglichkeit ein REBOOT zu laden.

gruss
Markus

Antwort 6 von Sworddancer

Thx @ alle

werde mal ausprobieren, ob ich was hinkriege :)

Ach ja, @ Gau, wo muss ich das (prompt $e[0;60;"dir/a/p/ogen";13p prompt $p$g) genau hinschreiben? In der autoexec.bat steht: SET PROMPT=$P$G

Und noch ne Frage einer sehr unwissenden Computer-Benutzerin ;) :
Was ist genau eine Batch-Datei und was kann man damit machen?

Grüsse
Sworddancer


Antwort 7 von Sworddancer

hm.. mir kommt noch was in den Sinn. Selbst wenn ich das hinkriegen würde, wird doch der Befehl gleich ausgeführt, wenn ich auf die Funktionstaste drücke. Gibt es auch eine Möglichkeit, das dann der Befehl nur in der Eingabezeile steht und ich noch etwas hinzufügen kann?

Grüsse
Sworddancer

Antwort 8 von Sworddancer

Mein Fragenvorrat ist unerschöpflich *grins*

Es löscht mir bei jedem Neustart den Inhalt der Config.sys Datei - könnte es sein, dass das ganze deshalb nicht funktioniert??
Kann man das irgendwie beheben?

Noch ein Grüsschen
Sworddancer

Antwort 9 von Sworddancer

Na doll - jetzt weiss ich weshalb *grummel* - ich habe Windows ME installiert und dieses Ding löscht alle Änderungen in der config.sys Datei...

Irgendwie bin ich Alleinunterhalterin in diesem Thread *g* ... aber egal... immerhin habe ich gelernt: Vertraue nie einem Win ME

Oki
Grüsschen
Sworddancer

Antwort 10 von _gau_

Hallo Sworddancer (klingt gefährlich ;-)

Ich will versuchen, nochmal ein ausführliches Beispiel aufzuschreiben.

In die CONFIG.SYS muß folgende Zeile
DEVICE=C:\Windows\Command\Ansi.sys
Du mußt natürlich nachschauen, ob die Datei ANSI.SYS auch im angegebenen Verzeichnis existiert (ich gehe hier mal von einer Standard-Windows 95/98 Installation aus).

In die AUTOEXEC.BAT könnten folgende Zeilen kommen

PROMPT $e[0;59;"dir/a/p/oen";13p
PROMPT $e[0;60;"c:\windows\command\scandisk.exe"
PROMPT $P$G

Bei dir steht ja schon PROMPT $P$G (das SET davor muß nicht unbedingt sein).
Also schreib die zusätzlichen Zeilen einfach darüber.

Wirkung der einzelnen Zeilen:

Zeile 1 legt den Befehl DIR mit ein paar Schaltern (alle Dateien anzeigen, Seitenweise anzeigen, Sortieren nach Erweiterung und Name) auf die Taste F1 (Tastencode 0;59).
Das "13p" bewirkt ein ENTER nach dem Befehl, so daß er gleich ausgeführt wird.

Zeile 2 legt den Befehl zum Starten von SCANDISK (Festplattenprüfung) auf die Taste F2 (Tastencode 0;60).
Da kein "13p" dahinter steht, wird der Befehl nicht gleich ausgeführt und man könnte noch was dahinterschreiben.

Zeile 3 stellt sicher, daß die normale Eingabeaufforderung (C:\>) erscheint.

Hier noch die Tastencodes für die Funktionstasten:
F1 - 0;59
F2 - 0;60
F3 - 0;61
usw.
F10 - 0;68
F11 - 0;133
F12 - 0;134

Es gibt Codes für (fast) alle Tasten und einige Tastenkombinationen. Nachzulesen u.a. in der MSDOSDRV.TXT im Windows-Verzeichnis oder in der DOS-Hilfe (wenn man ein älteres DOS hat).

Achso, die Frage nach einer Batch-Datei...
Das ist eine einfache Textdatei mit der Erweiterung BAT. Darin kann man in jede Zeile einen Befehl schreiben. Wenn man diese Datei durch Eingabe ihres Namens startet, werden diese Befehle der Reihe nach abgearbeitet (wie z.B. die AUTOEXEC.BAT beim Starten des PCs).
Du könntest also mit einem Texteditor (z.B. Notepad) eine Textdatei erstellen, dort die Zeile zum Starten eines Programmes eingeben (z.B. c:\windows\command\scandisk.exe) und diese Datei unter dem Namen SD.BAT speichern. Dann brauchst du nur noch an der Eingabeaufforderung SD einzugeben (und natürlich ENTER drücken) und das Programm wird gestartet.
Dabei mußt du aber sicherstellen, daß du die Batchdatei in einem Verzeichnis speicherst, wo das System sie immer findet (z.B. direkt in C:\ oder C:\Windows oder C:\Windows\Command).

Du könntest z.B. auch die obigen PROMPT-Zeilen in eine Datei "Tasten.bat" schreiben. Dann kannst du zum Testen der Zuordnungen einfach diese Batch-Datei aufrufen und solange ändern, bis alles stimmt. Dann erst übernimmst du die fertigen Zeilen in die "Autoexec.bat". So brauchst du nicht bei jeder Änderung neu booten.

Was das Löschen (des Inhalts) der CONFIG.SYS bei jedem Start betrifft, weiß ich jetzt auch nichts damit anzufangen. Ist jedenfalls irgendwie komisch :-(
Wenn dadurch die Zeile mit dem ANSI.SYS verschwindet, geht natürlich dieses Tastengemauschel nicht mehr.

Puhh, ich hoffe, du konntest irgendwelche verwertbare Infos aus diesem Pamphlet entnehmen.

[gau]

Antwort 11 von _gau_

Hi nochmal,

habe eben erst dein letztes Posting (Win ME) gelesen :-(

War jetzt alles umsonst?

Leider kenne ich mich mit ME nicht aus (das kommt mir auch nicht auf die Platte ;-)
Da müßte man vielleicht im ME-Forum mal fragen, ob man dort auch den ANSI-Treiber laden kann...

Gruß an die Alleinunterhalterin
"Vertrauen Sie DOS - Es weiß, was es tut..."
[gau]

Antwort 12 von _gau_

@Markus
Die Tastenkombination STRG+ALT+ENTF auf die LEERTASTE umzulegen sehe ich eigentlich keine Möglichkeit.
Da mußt du deinen Affen (äh Usern) wohl etwas Zucker (sprich Anleitung) geben...

[gau]

Antwort 13 von Sworddancer

Hallo Gau

Vielen Dank - ich glaube so sollte ich es tatsächlich hinkriegen - ist ja wirklich nachvollziehbar beschrieben :)...
deine Erklärung ist nicht umsonst, da ich das Programm eh auf einem Rechner mit Win 89 laufen lassen werde - ich habe es nur auf meinem eigenen (mit Win ME) ausprobiert.. nun, ich möchte es auch schon lange wech von meiner Platte *g* - aber meine beiden Brüder benutzen den Rechner auch und bringen mich jedesmal fast um, wenn ich was ändere...

Grüsse
Sworddancer (bin in den meisten Fällen nicht soo gefährlich wie der Name klingt *g*)

Antwort 14 von _gau_

Jetzt weiß ich auch den Ursprung des Namens - wegen der Brüder!

[gau]

Antwort 15 von Sworddancer

*lach* ... yep, dann werde ich gefährlich

hm... auf meinem Rechner funktionieren nicht mal Batch Dateien, jedenfalls nicht die Belegung der Funtionstasten (andere Befehle - wie TYPE o.ä. - sind nicht so problematisch)*grummel*

Gibt dann folge Zeilen aus: C:\WINDOWS\anagram>PROMPT $e[0;60;"dir/a/p/oen";13p

[0;60;"dir/a/p/oen";13pPROMPT $e[0;61;"c:\windows\command
[0;61;"c:\windows\command\scandisk.exe"PROMPT $P$G

Aber ich werdes mal noch auf dem anderen Rechner ausprobieren, sobald ich mal dorthin komme - sonst werdet ihr garantiert wieder Hilfeschreie von mir hören *g*
Liegt das wieder daran, dass das ANSI.SYS nicht geladen ist?

Sworddancer

Antwort 16 von _gau_

Naja, hier hat man 2 verschiedene Effekte.

Erstens wird jeder Befehl, der in einer Batchdatei ausgeführt wird, nochmal auf dem Bildschirm angezeigt (als würde man ihn direkt eingeben). Das kannst du verhindern, indem du als allererste Zeile in der Batchdatei schreibst:

@echo off

Das "echo off" schaltet die Anzeige der Befehle während der Abarbeitung der Batchdatei aus. Das "@" bewirkt, daß der Befehl "echo off" selbst nicht angezeigt wird.

Naja und zweitens funktionieren diese speziellen PROMPT-Befehle mit $e[ usw. wirklich nur, wenn ANSI.SYS geladen ist.
Ansonsten bewirken sie einfach nichts.

[gau]

Antwort 17 von Sworddancer

Ach so :) thx

Und schon kommt wieder ein Hilfeschrei - ich komme mir langsam wirklich dumm vor *g*

Ich habe meinen alten 486er wieder zusammengebastelt, um das ganze dort drauf auszuprobieren... oki ... Befehle mit 13p am Ende funktionieren einwandfrei, aber wenn ich nun eine Befehl ohne "Enter" am Ende haben möchte funzt das nicht ... es passiert einfach gar nichts, wenn ich auf F2 drücke (z.B. mit dieser Zeile: PROMPT $e[0;60;"c:\windows\command\scandisk.exe" ).
Nur dieser Befehl funzt
PROMPT $e[0;59;"dir";13p
(oder irgend was anderes dazwischen)


Sworddancer

Antwort 18 von Sworddancer

hm.. die Batch-Datei funzt auch auf dem 486er und inkl "@echo off" nicht
naja, ich ziehe ja sowieso eine direkte Tastenbelegung vor.

Nu, ich sage trotzdem schon für alles Danke - habe mittlerweile schon einiges gelernt :)))))))))

Sworddancer

Antwort 19 von _gau_

Oje, da hat sich doch der Fehlerteufel eingeschlichen!
(zuviel Sonne die letzten Tage :-)

Die Zeile für die Tastenbelegung F2 ohne ENTER muß lauten
PROMPT $e[0;60;"Programmpfad\Programm.exe"p
(also nur ";13" weglassen)

Naja, DOS will halt korrekt bedient sein...

Gute Nacht!
[gau]

Antwort 20 von jayray

@Markus (und wen´s noch interessiert)

Ein Link zu Tastencodes

http://www.thomasgross.de/dkey.htm

Gruß jayray

Antwort 21 von Sworddancer

Yepee - es funktioniert wirklich alles :)))

Danke nochmals viiiiielmal, Gau, für die ganzen Anleitungen und Tipps- kann man das online irgendwie vergelten??

Ich bin wirklich sehr froh, dass ich das hinkriegen konnte.

DANKE :)
Sworddancer

Antwort 22 von _gau_

Meine Hilfe ist "unbezahlbar" ;-)

Jedenfalls war es mal wieder gut, sich mit solchen fast vergessenen Dingen zu beschäftigen. Da rostet man nicht ein...

[gau]

Antwort 23 von Sworddancer

*smile*

Sworddancer

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: