Hi @ all,
ich hab in der Hilfe datei und im Forum nach CMD gesucht um herauszufinden ob es möglich ist aber ich fand nichts dazu(auch bei den UDF´s nicht).
ich will in einem Edit feld z.B "net user" eingeben und die antwort der CMD in einem
zweiten edit feld aufrufen. damit man sogesagt eine in AutoIT geschrieben CMD hat.
geht das, wen ja wie und kann mir jmd ein bsp. machen?
Etwas mit Edit in eine CMD schreiben und antwort in einem 2.edit anzeigen
-
- [ gelöst ]
-
Lololo124 -
27. Mai 2009 um 15:35 -
Geschlossen -
Erledigt
-
-
Ist zwar schon tausendmal hier im Forum als Beispiel, aber vom Prinzip her so:
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <Constants.au3>GuiCreate("CMD Test")
[/autoit] [autoit][/autoit] [autoit]
$InID = GUICtrlCreateEdit("",20,20,200,20)
$start = GUICtrlCreateButton(" Start ",20,50)
$OutID = GUICtrlCreateEdit("",20,80,300,200)
GUISetState(@SW_SHOW)While 1
[/autoit]
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $start
$befehl = GuiCtrlRead($InID)
$ausgabe = ""
$prozessID = Run(@ComSpec & ' /c "' & $befehl & '"',@ScriptDir,@SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
While 1
$ausgabe &= StdoutRead($prozessID)
If @error Then ExitLoop
Wend
GUICtrlSetData($OutID,$ausgabe)
EndSwitch
WEndDie Feinheiten kannst Du jetzt selber ausbauen....
-
Oh ich war wieder zu langsam.
Und meine Antowrt ist wieder mal Falsch =(
Naja =D
Hoffe es bringt dir trotzdem irgendwas^^__________________________________
Spoiler anzeigen
[autoit]#include<WinAPI.au3>
[/autoit] [autoit][/autoit] [autoit]
Global $aResult, $hConsole
if not _WinAPI_AttachConsole() then
$ret = DllCall("Kernel32.dll", "long", "AllocConsole")
If $ret = 0 Then Exit MsgBox(0, 'EXIT', "No Console allocated!")
endif$hConsole = _WinAPI_GetStdHandle(1)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$hConsoleIn = _WinAPI_GetStdHandle(0)
if $hConsole = -1 then
MsgBox(0, "Error", "GetStdHandle failed")
Exit
endif
_WinAPI_WriteConsole($hConsole, "Bitte Name eingeben: ")
$test = DllStructCreate("char[10000]")
$read = 500
_WinAPI_ReadFile($hConsoleIn,DllStructGetPtr($test),DllStructGetSize($test),$read)
MsgBox(0, '', DllStructGetData($test,1))if not _WinAPI_WriteConsole($hConsole, "Hello World" & @CRLF) then
[/autoit]
MsgBox(0, "Error", "WriteConsole Failed")
endif
_WinAPI_WriteConsole($hConsole, "PAUSE: ENTER druecken")
_WinAPI_ReadFile($hConsoleIn,DllStructGetPtr($test),DllStructGetSize($test),$read)
ExitDies habe ich von ProgAndy aus dem Forum gefunden.
Wie du siehst hat er mit
[autoit]_WinAPI_ReadFile($hConsoleIn,DllStructGetPtr($test),DllStructGetSize($test),$read)
[/autoit]
MsgBox(0, '', DllStructGetData($test,1))Den Text der Konsole ausgelesen!
Das könnte dann schonmal im 2.edit Feld stehen.
Mit dem "senden" an die Konsole werde ich mich auch nocheinmal machen =D
Mfg
Benne -
okay danke leute