Как получить видимый текст окна AHK из Putty?

Как получить видимый текст окна AHK из Putty?

Есть ли способ получить содержимое буфера Putty из скрипта AutoHotKey? Для многих приложенийWinGetTextработает, но, похоже, не для Putty. Кроме того, AHK Windows Spy не отображает текст из буфера, поэтому я подозреваю, что Putty просто использует другой метод хранения/отображения для своего буфера.

Мне интересно, можно ли включить настройку в Putty таким образом, чтобы он отображал содержимое своего буфера стандартным для окна способом, который AHK затем мог бы воспринимать как видимый текст окна.

В качестве альтернативы я предполагаю, что может быть какая-то функция AHK, о которой я не знаю, которая может получить этот текст, но это кажется менее вероятным.

решение1

Я прочитал другой подход: пусть PuTTY запишет содержимое в файл журнала. Затем пусть AutoHotKey прочитает из файла. Это может предоставить соответствующую информацию:

autoputty-scripted-telnet-нужна-помощь

Вот еще один подход:

gist.github.com/serf/2710415

Он включает в себя выделение текста, копирование его в буфер обмена, а затем чтение его из буфера обмена с помощью AutoHotKey. (Он также сохраняет копию буфера обмена перед его очисткой и восстанавливает резервные копии данных буфера обмена).

buixuanlinh.com/blog/?p=80

показан простой пример входа с помощью PuTTY.

AutoHotkey:_Запуск_putty_или_RDP_сессий_через_меню_выбора_на_основе_дерева

Я не тестировал ни одного из этих решений. Так что удачи.

Если у вас есть доступ к серверу, вы можете рассмотреть возможность выполнения некоторых действий на стороне сервера. Например, у вас может быть ключ SSH, который позволяет пользователю выполнять только одну команду (или начало команды, например, "sudo mount", но не "sudo anything-else"); sudo также может накладывать ограничения на то, какая команда используется. OpenSSH может разрешить одному пользователю иметь несколько ключей. Таким образом, выбор используемого вами ключа на локальной/клиентской стороне может повлиять на то, что произойдет при подключении к серверу. Подробности, которые, вероятно, будут полезны для тех, кто хочет изучить этот маршрут, можно найти здесь:

cyberpillar.com/dirsver/1/mainsite/techns/netfeats/users/usrbasop/userauth/authkeyf/authkeyf.htm#sshkycmd

решение2

Я проделал такой процесс перед использованием ImageSearchкоманды: сделал снимок экрана пустого приглашения на вход и использовал ImageSearch, чтобы определить, было ли достигнуто приглашение. Я обнаружил, что это относительно надежно (хотя и не идеально) — это может сработать для вас!

Для более надежной системы вам, вероятно, придется написать скрипт, который будет выполнять взаимодействие по ssh для вас, например , pythonс pexpect, что я успешно использовал. Инструкции о том, как это сделать, выходят за рамки этого вопроса, но в зависимости от того, какие языки сценариев вам знакомы (кроме AutoHotKey), я уверен, что такая возможность найдется. У меня нет опыта выполнения таких вещей в perl, но это может быть возможно.

Связанный контент