Forum: PC Hard- und Software Batchdatei - Anmeldescript - Leeren Keyborad Buffer


von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Hallo,

Ich schreibe mir gerade ein Anmeldescript, der bei Autostart laufen 
soll.
Das Problem, während der Script los läuft ist das Netzwerk noch nicht 
bereit und der NET USE Befehl macht alle möglichen sachen, die ich gar 
nicht will.

Ich habe soweit eine Schleife in der Batch Datei drin, dass der NET USE 
Befehl so oft wiederholt wird bis das Laufwerk verbunden ist.

So weit klappt das.

Aber manchmal möchte der noch ein Benutzername abfrage und das stört.

Ich habe im Internet nun ein Befehl gefunden "KPUSH.COM", mit dem kann 
ich das CR Zeichen (13) einfach vor dem NET USE Befehl senden, damit 
springt der einfach raus und es geht weiter in der Schleife.

Nun, wenn keine Benutzer-Abfrage kommt, dann stehen lauter CR Zeichen im 
Tastaturbuffer.

Ich habe ein "KFLUSH.COM" gefunden, die kann zwar Zeichen aus dem 
Tastaturbuffer löschen, aber nicht das CR Zeichen :-(

Ich habe mich darauf hin mal bemüht und die alten DOS Interrups 
angeschaut und mit dem alten TurboPascal ein paar kleine Assembler 
Programme geschrieben und so versucht den Tastenbuffer zu leeren.

INT21 / AH = 0Ch macht das auch.

Aber wenn jetzt kein Zeichen im Buffer ist, dann wartet mein Programm 
bis irgend jemand eine Taste drückt (wenn zuvor dieser NET USE das CR 
wegen Benutzerabfrage geholt hat).

Hat jemand einen Trick auf Lager die ich den Tastenbuffer leeren kann?
Der muss wieder leer sein, sonst gehen andere Dateien im Batch Script 
nicht richtig.

Vielen Dank, Markus.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Markus Müller schrieb:
> Aber manchmal möchte der noch ein Benutzername abfrage und das stört.

Sofern Du sicherstellen kannst, daß das Anmeldeskript niemals nie von 
irgendwem unbefugten angesehen werden kann, kannst Du Deine 
Netzwerklaufwerke auch gleich mit Angabe eines Benutzernamens verbinden:

net use \\server\freigabe /user:benutzername passwort

Ansonsten musst Du im Anmeldeskript gar nicht jedesmal die Laufwerke 
wiederherstellen, wenn Du sie einmalig so anlegst:

net use x: \\server\\freigabe /persistent:yes


Desweiteren könntest Du Dein Anmeldeskript dahingehend modifizieren, daß 
es a) einfach eine bestimmte Zeit lang wartet oder b) die Verfügbarkeit 
des Netzwerkes überprüft, bevor es mit dem Einrichten der 
Netzwerkverbindungen fortfährt.

Die Verwendung DOS-basierter Tools (*.com ist ein eindeutiges Indiz) 
ist jedenfalls weder nötig noch sinnvoll.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ich habs raus gefunden...

Ich mache anstatt einen
KFLUSH  / Löschen Keybord Buffer

einfach ein

DELAY 0 /S

Denn der frägt die Tastatur ab und schließt sich wenn was drin ist. Die 
Zeit 0 macht auch keine Wartezeit.
Zwar von der Funktion her missbraucht, dafür klapp es.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.