Hallo zusammen,
ich bin Sebastian(32) und komme aus der Nähe von Erlangen und benötige mal eure Hilfe
Ich möchte per SSH eine Verbindung zu einem Server mit Plink öffnen.
Dann soll stdout, stderr in eine GUI ausgegeben werden. Über diese GUI möchte ich dann auch per stdin Daten eingeben.
Bisher kann ich den Connect durchführen und dann wird der Output im ersten Editfeld ausgegeben. Jedoch aktualisiert sich das Control permanent. Also Änderungen kann man da kaum herauslesen. Also wie kann man sich nur die Änderungen ausgeben lassen?
Was muss ich machen, damit ich Daten abschicken kann?
Hier mein Skript:
Spoiler anzeigen
#include <Constants.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=e:\autoit\guis\frm_plink.kxf
$frm_plink = GUICreate("Plinkout", 615, 439, 192, 124)
$ed_stdOut = GUICtrlCreateEdit("", 16, 24, 585, 217)
GUICtrlSetData(-1, "ed_stdOut")
$ed_stderr = GUICtrlCreateEdit("", 16, 264, 585, 129)
GUICtrlSetData(-1, "ed_stderr")
$btn_connect = GUICtrlCreateButton("SSH Connect", 256, 408, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $btn_connect
conSSH()
EndSwitch
WEnd
Func conSSH()
$hostname = "server"
$stream = Run(@comspec & " /k C:\Users\user\Desktop\PLINK.EXE " & $hostname & " -pw pw -l login -ssh ", "C:\Users\user\Desktop", @SW_SHOW ,$STDIN_CHILD + $STDOUT_CHILD + $STDERR_CHILD)
;~ $out = "Output:" & @CRLF
Local $out
While 1
$out &= StdoutRead($stream)
GUICtrlSetData($ed_stdOut,$out)
If @error Then ExitLoop
Wend
;~ $out &= @CRLF & @CRLF & "Error:" & @CRLF
While 1
$out &= StderrRead($stream)
GUICtrlSetData($ed_stderr,$out)
If @error Then ExitLoop
Wend
EndFunc
Vielen Dank schon mal
Grüße
Sebastian