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:
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.)
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:
Antwort2
Ich habe diesen Vorgang schon einmal durchgeführt, bevor ich den ImageSearch
Befehl 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 python
mit 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.