Wie erhalte ich den für AHK sichtbaren Fenstertext aus Putty?

Wie erhalte ich den für AHK sichtbaren Fenstertext aus Putty?

Gibt es eine Möglichkeit, den Inhalt des Putty-Puffers aus einem AutoHotKey-Skript abzurufen? Für viele AnwendungenWinGetTextfunktioniert, aber bei Putty scheint das nicht der Fall zu sein. Außerdem zeigt der AHK Windows Spy keinen Text aus dem Puffer an, daher vermute ich, dass Putty einfach eine andere Methode zur Speicherung/Anzeige für seinen Puffer verwendet.

Ich frage mich, ob Sie in Putty eine Einstellung aktivieren können, die den Inhalt seines Puffers auf eine Windows-Standardweise anzeigt, die AHK dann als sichtbaren Fenstertext übernehmen kann.

Alternativ vermute ich, dass es eine mir unbekannte Funktion von AHK gibt, mit der man diesen Text abrufen kann, aber das scheint weniger wahrscheinlich.

Antwort1

Ich habe einen anderen Ansatz gelesen: Lassen Sie PuTTY Inhalte in eine Protokolldatei schreiben. Lassen Sie dann AutoHotKey aus einer Datei lesen. Dies könnte die relevanten Informationen liefern:

Autoputty-Skript-Telnet-brauche-Hilfe

Hier ist ein anderer Ansatz:

gist.github.com/serf/2710415

Dabei wird Text ausgewählt, der in die Zwischenablage kopiert wird und anschließend von AutoHotKey aus der Zwischenablage gelesen wird. (Außerdem wird eine Kopie der Zwischenablage gespeichert, bevor die Zwischenablage überschrieben wird, und die gesicherten Zwischenablagedaten werden wiederhergestellt.)

buixuanlinh.com/blog/?p=80

zeigt ein einfaches Beispiel für die Anmeldung mit PuTTY.

AutoHotkey:_Putty_oder_RDP_Sitzungen_über_ein_baumbasiertes_Auswahlmenü_starten

Ich habe keine dieser Lösungen getestet. Also viel Glück.

Wenn Sie Zugriff auf den Server haben, möchten Sie vielleicht Dinge auf der Serverseite erledigen. Sie können zum Beispiel einen SSH-Schlüssel haben, der dem Benutzer nur erlaubt, einen Befehl auszuführen (oder den Anfang eines Befehls, wie „sudo mount“, aber nicht „sudo anything-else“); sudo kann auch Einschränkungen hinsichtlich des zu verwendenden Befehls vorsehen. OpenSSH kann einem einzelnen Benutzer erlauben, mehrere Schlüssel zu haben. Die Wahl des Schlüssels, den Sie auf der lokalen/Client-Seite verwenden, könnte also Auswirkungen darauf haben, was passiert, wenn Sie sich mit dem Server verbinden. Einzelheiten, die wahrscheinlich für jeden nützlich sein werden, der diesen Weg erkunden möchte, finden Sie unter:

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

Antwort2

Ich habe diesen Vorgang schon einmal durchgeführt, bevor ich den ImageSearchBefehl verwendet habe: Machen Sie einen Screenshot einer leeren Anmeldeaufforderung und verwenden Sie ImageSearch, um festzustellen, ob die Eingabeaufforderung erreicht wurde. Ich habe festgestellt, dass dies relativ zuverlässig ist (wenn auch keineswegs perfekt) – es könnte für Sie funktionieren!

Für ein zuverlässigeres System müssten Sie wahrscheinlich ein Skript schreiben, das die SSH-Interaktion für Sie übernimmt, beispielsweise pythonmit pexpect, was ich erfolgreich verwendet habe. Anweisungen dazu liegen außerhalb des Rahmens dieser Frage, aber je nachdem, mit welchen Skriptsprachen Sie vertraut sind (außer AutoHotKey), bin ich sicher, dass es eine Option gibt. Ich habe keine Erfahrung mit derartigen Dingen in perl, aber es könnte möglich sein.

verwandte Informationen