Mit dem Set-Befehl (ohne Parameter) läßt sich der Inhalt jeder Umgebungsvariablen auslesen. Anstelle der Umgebungsvariablen könnte man auch den gesamten:
"net use K: \\Server\Path %varPWD% /User:%varName% /persistent:no" innerhalb einer externen Anwendung ausführen lassen(*) und anstelle der Variablen dort den eingegebenen Namen und das Passwort vor dem Ausführen eintragen.
Diese Speicherstelle mit unserem vollständigen Net-Befehl könnte man danach gleich wieder löschen, so das keine Spuren vom Namen und Passwort mehr im Speicher vorhanden sind.
(*) Child-Anwendung ausführen:
http://www.dosforum.de/viewtopic.php?f=15&t=1289
Ich stelle mir das so vor:
In der Input.exe wird dann die Textausgabe "Bitte Usernamen eingeben" vorgenommen. Dann in einem markierten Feld auf die Eingabe gewartet und wenn
nur ein CR erfolgte, dann wird erneut auf die Eingabe gewartet,
oder wenn ein Name eingegeben wurde, dann ein weiterer Text mit "Bitte Kennwort eingeben:" ausgegeben und ein weiteres markiertes Eingabefeld erscheint, wo wieder auf eine Eingabe gewartet wird.
Danach wird der eingegebene Name und das Passwort anstelle der beiden Variablen eingetragen und damit und dem Pfad, den wir als Parameter übergegen haben, der NET-Befehl schon innerhalb der externen Anwendung ausgeführt.
@Dosferatu: Hast du schon angefangen mit dem Programmieren?
Wie soll die Eingabe erfolgen, über das direkte Auslesen des Tastaturports?
...
Beispiel um angehängte Parameter einer Anwendung auszulesen (funktioniert auch wenn als Child-Anwendung ausgeführt mit einem anderen, eigenen PSP anstelle des PSPs der Aufrufer-Anwendung ):
Code: Alles auswählen
START: mov ah, 62h ; Segment des PSP's ermitteln
int 21h
mov ds, bx ; PSP-Segment nach DS
mov si, 80h ; Zeiger auf Parameter
mov al, [si] ; ASCII-Anzahl holen, ohne CR (0Dh)
cmp al, 2 ; weniger als 2 ASCII's ?
jb FEHLER ; zu wenig = Fehler !
cmp al, 9 ; mehr als 9 ASCII's ?
ja FEHLER ; zu viel = Fehler !
add si, 2 ; Zeiger auf ersten ASCII hinter SPACE
.....
Dirk