Das hatte ich mal irgendwo entdeckt und ein bischen mit gespielt. Vielleicht kannst du es funktionierend ausbauen.
Spoiler anzeigen
#include <Constants.au3>
Opt('WinTitleMatchMode', 2)
AutoItSetOption("WinDetectHiddenText", 1)
$PID = Run('telnet', @SystemDir, @SW_HIDE, $STDIN_CHILD+$STDOUT_CHILD)
;~ $PID = Run(@ComSpec & " /c telnet", @SystemDir, @SW_HIDE, $STDIN_CHILD+$STDOUT_CHILD)
;~ ShellExecute("telnet", '', @SystemDir, '', @SW_HIDE)
If Not ProcessExists('telnet.exe') Then Exit MsgBox(0, '', 'Tot')
;~ $arProcess = ProcessList('telnet.exe')
;~ If Not @error Then $PID2 = $arProcess[1][1]
HotKeySet('!e', '_ende') ; Skript und Telnet beenden
HotKeySet('!s', '_show') ; Telnet-Fenster zeigen
HotKeySet('!h', '_hide') ; Telnet-Fenster verstecken
HotKeySet('!w', '_write'); Befehl an Telnet-Fenster senden
HotKeySet('!r', '_read') ; aus Telnet-Fenster lesen
While 1
Sleep(100)
WEnd
Func _ende()
ProcessClose($PID)
Exit
EndFunc
Func _show()
WinSetState('telnet.exe', '', @SW_SHOW)
EndFunc
Func _hide()
WinSetState('telnet.exe', '', @SW_HIDE)
EndFunc
Func _write()
$strWrite = InputBox('', 'Befehl')
StdinWrite($PID, $strWrite)
StdinWrite($PID)
;~ WinActivate('telnet.exe')
;~ Send($strWrite & '{ENTER}')
EndFunc
Func _read()
Local $txt = ''
While 1
$line = StdoutRead($PID)
If @error Then ExitLoop
$txt &= $line
Wend
;~ $txt = WinGetText('telnet.exe', '')
ConsoleWrite($txt & @CRLF)
EndFunc