Войти

Показать полную графическую версию : AutoIt VS Microsoft Telnet


NewOLDi
28-01-2010, 19:13
Собственно, почему первое не дружит со вторым (чтение вывода из фирменной утилиты Telnet от Microsoft )? Очень интересно! В чём тонкости? И ведутся ли работы по устранению сего досадного недоразумения?

Помимо того, что AutoIt не способен читать поток из MS Telnet, так он мне ещё и пароль почему-то ввести не может нормально...


Run ( 'telnet x.x.x.x' )

WinWaitActive ( 'Telnet x.x.x.x' )

Send ( 'пароль{ENTER}' )


В итоге - пароль не принимается! И если тут же, повторно, ввести пароль вручную - видно, что первый пароль (введённый AutoIt) укоротился на один символ. КАК ТАК???

amel27
29-01-2010, 04:49
NewOLDi, из заголовка не ясно, о чем речь - MS утилиту "telnet.exe" или сам протокол TELNET
касаемо первого: http://forum.oszone.net/post-948257-1116.html

NewOLDi
29-01-2010, 09:07
amel27
Прошу прощения, заголовок и текст темы поправил, теперь всё должно быть понятным :)

Из Вашей ссылки также становится очевидным отсутствие возможности чтения потока из MS Telnet напрямую. Так что, вопрос остаётся открытым :)

ЗЫ: И почему, всё-таки, пароль вводится неправильно? Уж ввод то всё-равно в какое окно осуществлять, ан нет оказывается :(

kaster
29-01-2010, 12:09
И если тут же, повторно, ввести пароль вручную - видно, что первый пароль (введённый AutoIt) укоротился на один символ. КАК ТАК??? »
вот тут не совсем тебя понял. как ты смотришь введенные пароли? по идее история паролей в telnet не хранится. даже самого ввода не видно.
а по поводу скрипта, не знаю. у меня норм вводится все и заходит. только на тот сервер куда я подключался нужен юзернейм сначала. в твоем скрипте не вижу, где ты это вводишь. я делал вот так

Run ( 'telnet -l username x.x.x.x' )
WinWaitActive ( 'Telnet x.x.x.x' )
Send ( 'pass{ENTER}' )

все норм законектилось

NewOLDi
29-01-2010, 13:18
Что касается неправильного ввода пароля через Send...
Дело было в том, что в пароле используются символы, приравниваемые в AutoIt к специальным. Пришлось использовать эту функцию два раза (1 - ввод пароля символами КАК ЕСТЬ, 2 - нажатие Enter):
Run ( 'telnet x.x.x.x' )
WinWaitActive ( 'Telnet x.x.x.x' )
Send ( 'Пароль', 1 )
Send ( '{ENTER}' )

Логичнее было бы использовать т.н. экранирование спецсимволов, но я так и не разобрался, каким образом это осуществляется и осуществляется ли вообще. В PHP мне в этом плане нравится различие между двойными кавычками и одинарными (в последних текст всегда воспринимается как есть, а в двойные можно пихать переменные).




© OSzone.net 2001-2012