CMD emulieren
-
Hi,
Ich möchte gerne die CMD emulieren.
Zurzeit führe ich nämlich nur den Befehl aus und hole mir die Rückgabe.
Leider funktioniert es nicht das ich zwei Befehle hintereinander Ausführe.
Sprich ich kann nicht cd Meinverzeichnis und dannach dir ausführen.
Das dir wird dann wieder in dem Home Verzeichniss ausgeführt.
Ich möchte somit die cmd emulieren, sodass ich die Befehle nacheinander ausführen kann.MFG ReduX
-
Warum beschaffst Du Dir den Verzeichnisinhalt nicht einfach per Win32 API?
greetz, Swordfish
-
Ich denke kaum das Du "emulieren" im Sinne des Wortes meinst.
Schau Dir > http://www.c-plusplus.net/forum/viewtopic-var-t-is-201432.html < mal an
vielleicht bekommst Du ja eine Antwort. Der Quellcode so wie er dort steht funktioniert nur zu 10% aber es ist ein Ansatz auf dem Du aufbauen könntest.Aber sag doch mal was Du vor hast. bzw. wo Du hin willst.
-
Eine andere Möglichkeit wäre es wenn,
http://www.c-plusplus.net/forum/viewtopic-var-t-is-204754.html
funktioniert. Weitere MSG's (Befehle) an das Konsolenfenster
zu übermitteln und immer die Ausgabe via '>> ausgabe.txt'
umzuleiten. Diese Datei dann in ein Memo (oder was der Art)
zu laden.Bastellösung,... aber es würde gehen.
Du hättest halt so (bin ich mir ziemlich sicher) keine Möglichkeit
zu überprüfen ob der Befehl der ausgeführt wird "fertig" ist.
Evtl. noch über eine sich nicht mehr verändernde größe der Ausgabedatei
aber das wäre auch mehr als ein "Patchwork" wie ich finde.
-
Hi,
Das ist nicht ganze das was ich will.
Ich habe bisjetzt folgendes:
Ein Programm das auf einen Befehl wartet den er in der CMD ausführen soll und die Rückgabe zurücksendet. Dabei soll sich aber kein neues cmd fenster etc. öffnen es soll alles intern abgewickelt werden. Das Problem ist jetzt halt noch das er ja immernur den Befehl ausführt und intern die console wieder schließt sodass man mit dem nächsten Befehl nicht auf den alten aufbauen kann. Deshalb meine ich mit emulieren auch so das er quasi eine interne cmd hat.MFG ReduX
-
Such mal nach pipes das ist glaub ich das was du suchst!
schirrmie
-
Hi,
So weit ich das jetzt verstanden habe kann man mit pipes irgendwie die ausgabe von einem programm zum andern umleiten oder so.
Nur wie kann ich damit mein Problem lösen?MFG ReduX
-
cmd.exe starten und dessen Ein-/Ausgabe umlenken?
http://msdn2.microsoft.com/en-us/library/ms682499.aspx
-
Hi,
Ich möchte nicht das sich ein neues Fenster öffnet.
Ich will es so zu sagen Intern abwickeln.MFG ReduX
-
Du hast die Antwort bekommen: Pipes!
-
Hi,
ReduX schrieb:
Nur wie kann ich damit mein Problem lösen?
Ich habe bei Wikipedia nach pipes geschaut aber ich weiß nicht wie ich damit eine interne cmd bauen kann.
MFG ReduX
-
Dann les dir nochmal durch:
http://msdn2.microsoft.com/en-us/library/ms682499.aspx...da werden zwei Pipes erzeugt (für Ein- und Ausgabe), ein x-beliebiges Programm gestartet (wäre in deinem Falle cmd.exe, via STARTUPINFO kann das Fenster auch direkt versteckt werden) und dessen Ein-/Ausgabe in die Pipes umgelenkt.
In die Pipes kannst du dann die Eingaben reinschreiben bzw die Ausgaben rauslesen.