Автор Тема: Нужна помощь в скрипте с telnet  (Прочитано 109 раз)

0 Пользователей и 1 Гость просматривают эту тему.

GhostSoul

  • Зашел в гости
  • *
  • Сообщений: 12
    • Просмотр профиля
Нужна помощь в скрипте с telnet
« : Апрель 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

  • Зашел в гости
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Нужна помощь в скрипте с telnet
« Ответ #1 : Апрель 15, 2019, 11:32:30 am »
Нашел вариант решения. Кому понадобится выкладываю.


// Запуск Телнет на  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

  • Зашел в гости
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Нужна помощь в скрипте с telnet
« Ответ #2 : Апрель 15, 2019, 11:33:25 am »
Осталась одна проблема.
Как развернуть на весь Экран программу ТЕЛНЕТ или любую другую?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3439
  • Котэ
    • Просмотр профиля
Re: Нужна помощь в скрипте с telnet
« Ответ #3 : Апрель 15, 2019, 02:45:39 pm »
Насчет 1. Скорее всего раскладка кликера и окна Telnet на совпадали и поэтому текст не вводился. Чтобы все работало и кликер и Telnet должны быть в EN раскладках.

Вот попробуй такой вариант.
Код: Clickermann
  1. // Запуск Телнет на  192.168.127.1
  2. EXECUTE("telnet:192.168.127.1")
  3. WAITMS(500)
  4.  
  5. $time = $_time_t + 30
  6. WHILE(($h = 0)&($time > $_time_t)) // ждем появления окна Telnet, но не более 30 сек
  7.   $h = WNDFIND("Telnet", 0) // поиск окна по заголовку Telnet
  8.   WAITMS(50)
  9. END_CYC
  10.  
  11. IF($h > 0) // если окно найдено
  12.   WAIT(3) // Ждем чтобы программа полность запустилась
  13.   WNDBUMP($h) // поднимаем окно на передний план
  14.   POSTMESSAGE($h, 0x0112, 0xF030, 0) // Разворачиваем окно на весь экран
  15.   SETKBLAYOUT($_hwnd_self, 1033) // Меняем раскладку кликера En
  16.   SETKBLAYOUT($h, 1033) // Меняем раскладку Telnet En
  17.   WAITMS(500)
  18.   KEYSTRING("admin") // Ввод ЛОГИНА
  19.   WAITMS(50)
  20.   KEYPRESS(#ENTER)
  21.   WAITMS(100)
  22.  
  23.   KEYSTRING("admin") // Ввод ПАРОЛЯ
  24.   WAITMS(50)
  25.   KEYPRESS(#ENTER)
  26.   WAITMS(100)
  27.  
  28.   KEYSTRING("cd\flashdisk\soft") // Ввод КОМАНДЫ 1
  29.   WAITMS(50)
  30.   KEYPRESS(#ENTER)
  31.   WAITMS(100)
  32.  
  33.   KEYSTRING("runlevel 0") // Ввод КОМАНДЫ 2
  34.   WAITMS(50)
  35.   KEYPRESS(#ENTER)
  36.   WAITMS(100)
  37. END_IF
  38.  
  39. HALT
« Последнее редактирование: Апрель 15, 2019, 02:48:09 pm от Oraven »

GhostSoul

  • Зашел в гости
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Нужна помощь в скрипте с telnet
« Ответ #4 : Апрель 17, 2019, 12:02:03 pm »
Большое спасибо!
Попробую Ваш вариант. Я предварительно выставитл в винде раскладку английскую.
И начал вводить данные через буфер обмена.

GhostSoul

  • Зашел в гости
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Нужна помощь в скрипте с telnet
« Ответ #5 : Апрель 17, 2019, 01:06:56 pm »
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3439
  • Котэ
    • Просмотр профиля
Re: Нужна помощь в скрипте с telnet
« Ответ #6 : Апрель 17, 2019, 01:41:51 pm »
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.

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

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3242
  • Лечу куда хочу. cman 4.13.014x32, xp32
    • Просмотр профиля
Re: Нужна помощь в скрипте с telnet
« Ответ #7 : Апрель 17, 2019, 02:26:45 pm »
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.
Если про другие ALT+F4


GhostSoul

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

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


// Запуск Телнет на  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

  • Зашел в гости
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Нужна помощь в скрипте с telnet
« Ответ #9 : Апрель 17, 2019, 02:34:16 pm »
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.
Если про другие ALT+F4
Не катит.
ТЕЛНЕТ просто не реагирует на это сочетание клавиш!
 >:(

Vint

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

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


dramster

  • Герой форума
  • *****
  • Сообщений: 916
    • Просмотр профиля
Re: Нужна помощь в скрипте с telnet
« Ответ #11 : Апрель 19, 2019, 04:21:11 pm »
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.
Если про другие ALT+F4
Не катит.
ТЕЛНЕТ просто не реагирует на это сочетание клавиш!
 >:(

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

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

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

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

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3242
  • Лечу куда хочу. cman 4.13.014x32, xp32
    • Просмотр профиля
Re: Нужна помощь в скрипте с telnet
« Ответ #12 : Апрель 19, 2019, 08:49:29 pm »
У меня тоже небыло, нужно подгружать в компонентах. Я так понял, это на всех десятках.


dramster

  • Герой форума
  • *****
  • Сообщений: 916
    • Просмотр профиля
Re: Нужна помощь в скрипте с telnet
« Ответ #13 : Сегодня в 02:12:23 pm »


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

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


На ноуте с виндой 10 home из коробки этот компонент сразу работал, включать/подгружать не требовалось
« Последнее редактирование: Сегодня в 02:21:44 pm от dramster »