Author Topic: Нужна помощь в скрипте с telnet  (Read 5182 times)

0 Members and 6 Guests are viewing this topic.

GhostSoul

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Нужна помощь в скрипте с telnet
« on: April 13, 2019, 01:01:08 PM »
Помогите сделать скрипт для  telnet.
Задача:
1. Запустить telnet с подключением по адресу 192.168.127.1
2. В telnet вести логин и пароль admin
3. В telnet вести команду cd\flashdisk\soft и нажать Enter
4. В telnet вести команду runlevel 0 и нажать Enter
5. Подождать выполнение и закрыть telnet

Мои варианты решения:
Способ 1.
Просто запись действий мышки и клавиатуры.
После записи и запуска скрипта, получил выполнения только запустка telnet с подключением по адресу 192.168.127.1 Использовал команду WIR+R и нажатие на выполнение записной ранее строки telnet:192.168.127.1
В открывшемся окне telnet не чего не происходит! Команды ввода логина, пароля и команд не происходит!
Пробовал проверить этот момент на блокноте, что бы видеть набор текста. Там  все работает нормально, текст набирается.
Пробую снова в telnet, не вводится логин, пароль и команды.

Способ 2.
Написал скрипт с командами:
1. EXECUTE("notepad.exe:192.168.127.1")
2. WAITMS(500)
3. KEYSTRING("admin", 20)
4. KEYPRESS(#ENTER)
5. WAITMS(500)
6. KEYSTRING("admin", 20)
7. KEYPRESS(#ENTER)
8. WAITMS(500)
6. KEYSTRING("cd\flashdisk\soft", 20)
7. KEYPRESS(#ENTER)
8. WAITMS(500)
6. KEYSTRING("runlevel 0", 20)
7. KEYPRESS(#ENTER)
8.

В открывшемся окне telnet не чего не происходит! Команды ввода логина, пароля и команд не происходит!
Пробовал проверить этот момент на блокноте, что бы видеть набор текста. Там  все работает нормально, текст набирается.
Пробую снова в telnet, не вводится логин, пароль и команды.

Способ 3.
Пробовал записать все нужные команды в текстовый файл блокнота и вводить в telnet через Копировать и Вставить.
Получается вводить  логина, пароля и команд в telnet и все работает.
Самый рабочий вариант.
Но, нужно на экране сдвигать окна telnet и текстовый файл блокнота в разные части экрана, что бы видеть работу
telnet
Не надежен в плане работы и кликания.
В идеале все как-то закинуть в буфер памяти?
Возможно ли?

Вопрос.
1. Как заставить печать логин, пароль и команды?
2. Как закрыть после выполнения всех команд telnet?
3. Как развернуть telnet или другую программу на весь экран?






GhostSoul

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #1 on: April 15, 2019, 11:32:30 AM »
Нашел вариант решения. Кому понадобится выкладываю.


Code: [Select]
// Запуск Телнет на  192.168.127.1
EXECUTE("telnet:192.168.127.1")
WAIT(3)//Ждем чтобы программа полность запустился.
//Запись в буфер ЛОГИНА и Пароля
TOCLIP("admin")
// Ввод ЛОГИНА из буфера памяти
lDown(251,154)
waitms(256 + $S_CORR)
lUp(251,154)
waitms(1335 + $S_CORR)
rDown(251,154)
waitms(216 + $S_CORR)
rUp(251,154)
WAITMS(500)
lDown(289,208)
waitms(169 + $S_CORR)
lUp(289,208)
waitms(559 + $S_CORR)
move(289,209)
waitms(1280 + $S_CORR)
keyDown(13)
waitms(207 + $S_CORR)
keyUp(13)
waitms(1754 + $S_CORR)
// Конец Ввод ЛОГИНА из буфера памяти
WAIT(1)
// Ввод ПАРОЛЯ из буфера памяти
lDown(251,154)
waitms(256 + $S_CORR)
lUp(251,154)
waitms(1335 + $S_CORR)
rDown(251,154)
waitms(216 + $S_CORR)
rUp(251,154)
WAITMS(500)
lDown(289,208)
waitms(169 + $S_CORR)
lUp(289,208)
waitms(559 + $S_CORR)
move(289,209)
waitms(1280 + $S_CORR)
keyDown(13)
waitms(207 + $S_CORR)
keyUp(13)
waitms(1754 + $S_CORR)
// Конец Ввод ПАРОЛЯ из буфера памяти
WAIT(1)
//Запись в буфер КОМАНДЫ 1
TOCLIP("cd\flashdisk\soft")
// Ввод КОМАНДЫ 1 из буфера памяти
lDown(251,154)
waitms(256 + $S_CORR)
lUp(251,154)
waitms(1335 + $S_CORR)
rDown(251,154)
waitms(216 + $S_CORR)
rUp(251,154)
WAITMS(500)
lDown(289,208)
waitms(169 + $S_CORR)
lUp(289,208)
waitms(559 + $S_CORR)
move(289,209)
waitms(1280 + $S_CORR)
keyDown(13)
waitms(207 + $S_CORR)
keyUp(13)
waitms(1754 + $S_CORR)
//Конец Ввод КОМАНДЫ 2 из буфера памяти
WAIT(1)
//Запись в буфер КОМАНДЫ 2
TOCLIP("runlevel 0")
// Ввод КОМАНДЫ 2 из буфера памяти
lDown(251,154)
waitms(256 + $S_CORR)
lUp(251,154)
waitms(1335 + $S_CORR)
rDown(251,154)
waitms(216 + $S_CORR)
rUp(251,154)
WAITMS(500)
lDown(289,208)
waitms(169 + $S_CORR)
lUp(289,208)
waitms(559 + $S_CORR)
move(289,209)
waitms(1280 + $S_CORR)
keyDown(13)
waitms(207 + $S_CORR)
keyUp(13)
waitms(1754 + $S_CORR)
//Конец Ввод КОМАНДЫ 2 из буфера памяти
HALT



GhostSoul

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #2 on: April 15, 2019, 11:33:25 AM »
Осталась одна проблема.
Как развернуть на весь Экран программу ТЕЛНЕТ или любую другую?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #3 on: April 15, 2019, 02:45:39 PM »
Насчет 1. Скорее всего раскладка кликера и окна Telnet на совпадали и поэтому текст не вводился. Чтобы все работало и кликер и Telnet должны быть в EN раскладках.

Вот попробуй такой вариант.
Code: (clickermann) [Select]
// Запуск Телнет на  192.168.127.1
EXECUTE("telnet:192.168.127.1")
WAITMS(500)

$time = $_time_t + 30
WHILE(($h = 0)&($time > $_time_t)) // ждем появления окна Telnet, но не более 30 сек
   $h = WNDFIND("Telnet", 0) // поиск окна по заголовку Telnet
   WAITMS(50)
END_CYC

IF($h > 0) // если окно найдено
   WAIT(3) // Ждем чтобы программа полность запустилась
   WNDBUMP($h) // поднимаем окно на передний план
   POSTMESSAGE($h, 0x0112, 0xF030, 0) // Разворачиваем окно на весь экран
   SETKBLAYOUT($_hwnd_self, 1033) // Меняем раскладку кликера En
   SETKBLAYOUT($h, 1033) // Меняем раскладку Telnet En
   WAITMS(500)
   KEYSTRING("admin") // Ввод ЛОГИНА
   WAITMS(50)
   KEYPRESS(#ENTER)
   WAITMS(100)
   
   KEYSTRING("admin") // Ввод ПАРОЛЯ
   WAITMS(50)
   KEYPRESS(#ENTER)
   WAITMS(100)
   
   KEYSTRING("cd\flashdisk\soft") // Ввод КОМАНДЫ 1
   WAITMS(50)
   KEYPRESS(#ENTER)
   WAITMS(100)
   
   KEYSTRING("runlevel 0") // Ввод КОМАНДЫ 2
   WAITMS(50)
   KEYPRESS(#ENTER)
   WAITMS(100)
END_IF

HALT
« Last Edit: April 15, 2019, 02:48:09 PM by Oraven »

GhostSoul

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #4 on: April 17, 2019, 12:02:03 PM »
Большое спасибо!
Попробую Ваш вариант. Я предварительно выставитл в винде раскладку английскую.
И начал вводить данные через буфер обмена.

GhostSoul

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #5 on: April 17, 2019, 01:06:56 PM »
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #6 on: April 17, 2019, 01:41:51 PM »
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.

Если ты про кликер пиши HALT(1)

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #7 on: April 17, 2019, 02:26:45 PM »
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.
Если про другие ALT+F4


GhostSoul

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #8 on: April 17, 2019, 02:32:21 PM »
Мне нужна команда закрытия Телнет.
С горем сообщаю Ваш вариант в Телнет напрочь не хочет работать.
Все  работает до момента Ввода пароля, логина и команд.
Телнет их просто не понимает, даже комбинацию клавиш CTRL+V не понимает.
Смог вводить писать путем ручного вызова панели меню и нажатия ВСТАВИТЬ.
Вот такая особенность работы данной программы.
Я все переписал с учетом Вашего кода (большое спасибо за это) и своего вариант ввода текста.
В конце решил закрыть программу путем простого наживания на крестик.

Выкладываю полностью код, возможно кому та пригодится особенности работы Телнет  :)


Code: [Select]
// Запуск Телнет на  192.168.127.1
EXECUTE("telnet:192.168.127.1")
WAITMS(500)

$time = $_time_t + 30
WHILE(($h = 0)&($time > $_time_t)) // ждем появления окна Telnet, но не более 30 сек
   $h = WNDFIND("Telnet", 0) // поиск окна по заголовку Telnet
   WAITMS(50)
END_CYC

IF($h > 0) // если окно найдено
   WAIT(2) // Ждем чтобы программа полность запустилась
   WNDBUMP($h) // поднимаем окно на передний план
   POSTMESSAGE($h, 0x0112, 0xF030, 0) // Разворачиваем окно на весь экран
   SETKBLAYOUT($_hwnd_self, 1033) // Меняем раскладку кликера En
   SETKBLAYOUT($h, 1033) // Меняем раскладку Telnet En
   // ВВод логина
   TOCLIP("admin") // В буфер логин и пароль
   //Выбор меню
   rDown(72,66)
   waitms(120 + $S_CORR)
   rUp(72,66)
   // Выбор ВСТАВИТЬ
   WAITMS(500)
   lDown(117,131)
   waitms(97 + $S_CORR)
   lUp(117,131)
   //Нажание Enter
   WAITMS(500)
   keyDown(13)
   waitms(45 + $S_CORR)
   keyUp(13)
WAIT(1)
   // ВВод Пароля
   //Выбор меню
   rDown(72,66)
   waitms(120 + $S_CORR)
   rUp(72,66)
   // Выбор ВСТАВИТЬ
   WAITMS(500)
   lDown(117,131)
   waitms(97 + $S_CORR)
   lUp(117,131)
   //Нажание Enter
   WAITMS(500)
   keyDown(13)
   waitms(45 + $S_CORR)
   keyUp(13)
   WAIT(1)
   // Ввод команды 1
   TOCLIP("cd\flashdisk\soft") // В буфер КОМАНДА 1
   //Выбор меню
   rDown(72,66)
   waitms(120 + $S_CORR)
   rUp(72,66)
   // Выбор ВСТАВИТЬ
   WAITMS(500)
   lDown(117,131)
   waitms(97 + $S_CORR)
   lUp(117,131)
   //Нажание Enter
   WAITMS(500)
   keyDown(13)
   waitms(45 + $S_CORR)
   keyUp(13)
   WAIT(1)
   // Ввод команды 1
   TOCLIP("runlevel 0")//В буфер КОМАНДА 2
   //Выбор меню
   rDown(72,66)
   waitms(120 + $S_CORR)
   rUp(72,66)
   // Выбор ВСТАВИТЬ
   WAITMS(500)
   lDown(117,131)
   waitms(97 + $S_CORR)
   lUp(117,131)
   //Нажание Enter
   WAITMS(500)
   keyDown(13)
   waitms(45 + $S_CORR)
   keyUp(13)
  WAIT(1) 
   
   
END_IF
// Закрыть Telnet
  lDown(786,2)
waitms(183 + $S_CORR)
  lUp(786,2)
// 
HALT

GhostSoul

  • Зашел в гости
  • *
  • Posts: 18
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #9 on: April 17, 2019, 02:34:16 PM »
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.
Если про другие ALT+F4
Не катит.
ТЕЛНЕТ просто не реагирует на это сочетание клавиш!
 >:(

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #10 on: April 19, 2019, 12:02:09 PM »
Ну ХЗ что там у тебя. telnet же вроде работает в обычной консоли Windows. Она закрывается по Alt+F4 как и все окна.
И вставка там работает по ПКМ, можно включить в настройках и по CTRL+SHIFT+C/V
В консоли работает и KEYSTRING.

У меня другая напасть, telnet не запускается через EXECUTE, ну да и бог с ним.


dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #11 on: April 19, 2019, 04:21:11 PM »
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.
Если про другие ALT+F4
Не катит.
ТЕЛНЕТ просто не реагирует на это сочетание клавиш!
 >:(

А как насчет команды "quit"?

Если телнет был запущен из командной строки, то "quit" выкинет опять в нее, а чтобы закрыть командную строку - команда "exit"

У меня другая напасть, telnet не запускается через EXECUTE, ну да и бог с ним.

У меня на урезанной вин10 вообще отсутствует телнет, то есть отсутствует в корне, нету в списке компонентов  :-\  . Ради интереса попробовал с другого пк execute("telnet") запускает его напрямую, и закрывает командой "quit".
« Last Edit: April 19, 2019, 04:46:55 PM by dramster »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #12 on: April 19, 2019, 08:49:29 PM »
У меня тоже небыло, нужно подгружать в компонентах. Я так понял, это на всех десятках.


dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #13 on: April 20, 2019, 02:12:23 PM »


Как его туда добавить?

Сборку вин10 для ssd гдето нарыл, там даже это урезали.


На ноуте с виндой 10 home из коробки этот компонент сразу работал, включать/подгружать не требовалось
« Last Edit: April 20, 2019, 02:21:44 PM by dramster »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Нужна помощь в скрипте с telnet
« Reply #14 on: April 21, 2019, 01:35:06 PM »
Вот прям в том меню и был. Включил, подгрузил и всё