Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: GhostSoul 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 или другую программу на весь экран?
-
Нашел вариант решения. Кому понадобится выкладываю.
// Запуск Телнет на 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
-
Осталась одна проблема.
Как развернуть на весь Экран программу ТЕЛНЕТ или любую другую?
-
Насчет 1. Скорее всего раскладка кликера и окна Telnet на совпадали и поэтому текст не вводился. Чтобы все работало и кликер и Telnet должны быть в EN раскладках.
Вот попробуй такой вариант.
// Запуск Телнет на 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
-
Большое спасибо!
Попробую Ваш вариант. Я предварительно выставитл в винде раскладку английскую.
И начал вводить данные через буфер обмена.
-
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.
-
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.
Если ты про кликер пиши HALT(1)
-
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.
Если про другие ALT+F4
-
Мне нужна команда закрытия Телнет.
С горем сообщаю Ваш вариант в Телнет напрочь не хочет работать.
Все работает до момента Ввода пароля, логина и команд.
Телнет их просто не понимает, даже комбинацию клавиш 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
-
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.
Если про другие ALT+F4
Не катит.
ТЕЛНЕТ просто не реагирует на это сочетание клавиш!
>:(
-
Ну ХЗ что там у тебя. telnet же вроде работает в обычной консоли Windows. Она закрывается по Alt+F4 как и все окна.
И вставка там работает по ПКМ, можно включить в настройках и по CTRL+SHIFT+C/V
В консоли работает и KEYSTRING.
У меня другая напасть, telnet не запускается через EXECUTE, ну да и бог с ним.
-
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.
Если про другие ALT+F4
Не катит.
ТЕЛНЕТ просто не реагирует на это сочетание клавиш!
>:(
А как насчет команды "quit"?
Если телнет был запущен из командной строки, то "quit" выкинет опять в нее, а чтобы закрыть командную строку - команда "exit"
У меня другая напасть, telnet не запускается через EXECUTE, ну да и бог с ним.
У меня на урезанной вин10 вообще отсутствует телнет, то есть отсутствует в корне, нету в списке компонентов :-\ . Ради интереса попробовал с другого пк execute("telnet") запускает его напрямую, и закрывает командой "quit".
-
У меня тоже небыло, нужно подгружать в компонентах. Я так понял, это на всех десятках.
-
(https://i.imgur.com/Q0Ljcbp.png)
Как его туда добавить?
Сборку вин10 для ssd гдето нарыл, там даже это урезали.
На ноуте с виндой 10 home из коробки этот компонент сразу работал, включать/подгружать не требовалось
-
Вот прям в том меню и был. Включил, подгрузил и всё
-
Подскажите команду для закрытия окна после выполнения задачи.
То есть полное закрытие программы.
Если про другие ALT+F4
Не катит.
ТЕЛНЕТ просто не реагирует на это сочетание клавиш!
>:(
А как насчет команды "quit"?
Не Вариант. После моих команд ТЕЛНЕТ не дает возможность вводить команды. Выкрутился тем что закрываю программу крестом.
-
Подскажите, есть потребность вводить ЛОГИН и ПАРОЛЬ в браузере при заходе на устройство.
Появляются два поля для ввода и кнопка ОК.
Но в разных версиях эти поля для ввода находятся в разной области экрана и кликам на них, не вариант.
Возможно автоввод ?
-
Вот прям в том меню и был. Включил, подгрузил и всё
Проблема в том, что после раскрытия браузера, нужно кликнуть на поле ввода логина, иначе он не вводит логин.
А это поле в разных устройствах находится в разных местах на открытом окне браузера. И просто записать координаты клика для ввода не получится.
Как быть?
-
Конечно возможно, сначала графически находить поле для ввода, а потом вводить ЛОГИН и ПАРОЛЬ , или автоматизировать распознавание разных версий и в условиях указать для каждой версии свои координаты.
По сути нужно найти активное поле для ввода данных!
-
Ну так тебе уже ответили. Найди способ, которым можно будет определить устройство, потом создай список этих устройств и под каждое устройство создай свои настройки/действия
-
Ну так тебе уже ответили. Найди способ, которым можно будет определить устройство, потом создай список этих устройств и под каждое устройство создай свои настройки/действия
Вот тут и проблема. как найти в окне браузера поле для ввода логина?
-
как найти в окне браузера поле для ввода логина?
графически находить поле для ввода
Просто сохраните картинку начала нужного вам поля, используйте шаблон поиска картинки и добавьте к возвращаемым системным переменным несколько пикселей, чтоб клик попадал точно в поле а не слева в верху от него.
Спасибо, попробую этот варинат.