Hi,
Wie kann ich ein CMD Fenster erstellen und dann in dieses Etwas reinschrieben oder es auslesen ?
In Konsolen Fenster etwas reinschreiben
-
- [ offen ]
-
AgentProxon -
19. Dezember 2010 um 17:18 -
Geschlossen -
Erledigt
-
-
Wenn es ein externes CMD Fenster ist und du ein Befehl ausführen möchtest solltest du
[autoit]#include <Process.au3>
[/autoit]
_RunDOS ( $sCommand )
[autoit]
Benutzen, wenn es eine kompilierte EXE ist solltest du es mit Eigenschaften kompilieren mit CUI. Du kannst dann mitConsoleWrite()
[/autoit]
ConsoleRead()
estwas in der CMD ausgeben bzw auslesen. -
Was ist ein STDOUT-Stream ?
-
Du kannst z.B. mit ConsoleWrite etwas in den STDOUT Stream (Standard Out Stream) schreiben. Wenn du nun ein Programm über Run aus einem anderen Programm startest kannst du im ersten Programm mithilfe von StdoutRead alles auslesen was du mit ConsoleWrite im zweiten Programm ausgibst.
-
Ich glaube ihr wisst net genau was ich meine

Ich will dass wenn ich meine au3 starte in mein Server (Also die Konsole )
z.B sv_kick geschrieben wird -
ConsoleWrite? BadBunny hat dir doch schon beschrieben was du machen musst...
-
Ja aber woher weis der in welche Console ?
-
Ich dachte du wolltest in die Konsole deines eigenen Scripts schreiben?

-
Ne also folgendes :
Ich hab einen Server der über so eine Console angezeigt wird jetzt will ich mir ein Tool erstellen das in diese Konsole Datein eingiebt wie z.B sv_kick
-
Also willst du Daten in eine fremde Konsole schreiben. Das hat BadBunny doch auch schon beschrieben.
-
Aber ich kapiere nicht ganzwoher der weis wie die Konsole heist kannst du mir nicht schnell ein Script m,achen?
-
Ups.. Ich sehe gerad, dass dir das von BadBunny ja gar nicht weiter hilft
. Du musst das Programm als Child Prozess starten und dann über StdinWrite in die Konsole des anderen Programms schreiben. In der Hilfe gibt es ein Beispiel zu StdinWrite ;). -
Was ist ein Child Prozess ? Naja ich denke das steht in der Hilfe

Edit : OK das ist schon eher was ich wollte nur noch eine sache :
Kann man den "Server" auch ohne AutoIT als Child öffnen ?
Und dann in der Hilfe bei $foo den Process Namen eingeben ?Edit Edit :
C; Demonstriert den Gebrauch von StdinWrite() #include <Constants.au3> Local $foo = Run("scmd.exe", @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD) ; Schreibt den zu sortierenden String in sort.exe's STDIN StdinWrite($foo, "Ratte")Das geht bei mir net why ?
-
Weiß nicht genau, was du meinst, aber das Fenster wird durch das
[autoit]@SW_HIDE
[/autoit]nicht angezeigt.
[autoit]
Schreib stattdessn mal@SW_SHOW
[/autoit]da hin.
-
Zitat
Kann man den "Server" auch ohne AutoIT als Child öffnen ?
Und dann in der Hilfe bei $foo den Process Namen eingeben ?
Kannst du, aber es würde dir nichts bringen :D. Um etwas in den Stdin Stream eines Programmes schreiben zu können musst du es mit Run o.Ä. im Autoit Script öffnen und dann die zurückgegebene PID (Process ID) bei StdinWrite verwenden.
Ein nicht über das Script gestartete Prozess kann keine Daten von diesem Script über den Stdin Stream erhalten. Das dürfte allerdings kein Problem sein in den meisten Fällen...