Je cherche depuis quelques jours sur les divers forums, je pense m'approcher de la solution mais ça ne fonctionne toujours pas. Je post dans l'espoir de trouver un correcteur ...
Objectif du code:
lancer depuis "cmd.exe" une ligne de commande du type monautoitcompile.exe "login" "password" "ip" "mycmd_VxWorks" "telnet" pour interroger un serveur telnet sur un système distant.
Bon je parviens à me connecter au serveur, me logger puis lancer ma commande.
La fenêtre affiche bien le résultat mais je ne parviens pas à récupérer le texte que ce soit avec StdoutRead ou la fonction WinGetText($handle). Tous les retours sont vides.
Je vous joins le code:
Code : Tout sélectionner
#include <Constants.au3>
dim $loop,$sCmdC264
If $cmdline[0] <> 0 Then
Local $sCmd = ""
Local $sIP=""
for $i = 1 to $cmdline[0]
;MsgBox(0,"Valeur du parametre n°"&$cmdline[$i]," = "&$cmdline[$i])
if $i=1 then Local $sUserName = $cmdline[$i]
if $i=2 then Local $sPassword = $cmdline[$i]
if $i=3 then Local $sIP= $cmdline[$i]
if $i=4 then Local $sCmdC264= $cmdline[$i]
if $i>4 then $sCmd &= $cmdline[$i] & " "
next
EndIf
Local $foo = RunAs ( $sUserName, $sIP, $sPassword, 1, $sCmd,@SystemDir,@SW_HIDE,$STDERR_MERGED)
Send($sCmd & "{ENTER}")
Send("o " & $sIP & "{ENTER}")
For $loop = 1 to 3
sleep(2000)
Send($cmdline[$loop] & "{ENTER}")
Next
Local $handle = WinGetHandle("Telnet " & $sIP)
WinActivate($handle)
WinWaitActive($handle)
Local $text = WinGetText($handle)
MsgBox(0, "Text read was:", $text)
Local $line
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
if $line<>"" then MsgBox(0, "$line", $line)
Wend
While 1
$line = StderrRead($foo)
If @error Then ExitLoop
if $line<>"" then MsgBox(0, "$line", $line)
Wend
Send("exit" & "{ENTER}")
Send("quit" & "{ENTER}")
En vous remerciant par avance de vos suggestions.



