如何從 Putty 取得 AHK 可見視窗文字?

如何從 Putty 取得 AHK 可見視窗文字?

有沒有辦法從 AutoHotKey 腳本中檢索 Putty 緩衝區的內容?對於許多應用來說,取得文字有效,但似乎不適用於 Putty。另外,AHK Windows Spy 不會顯示緩衝區中的任何文本,因此我懷疑 Putty 只是對其緩衝區使用了不同的存儲/顯示方法。

我想知道您是否可以在 Putty 中啟用一個設置,以便它將以視窗標準方式公開其緩衝區的內容,然後 AHK 可以將其拾取為可見視窗文字。

或者,我想 AHK 可能有一些我不知道的功能可以獲取該文本,但這似乎不太可能。

答案1

我讀到了一個不同的方法:讓 PuTTY 將內容寫入日誌檔案。然後讓 AutoHotKey 從檔案中讀取。這可能會提供相關資訊:

autoputty 腳本化 telnet 需要協助

這是另一種方法:

gist.github.com/serf/2710415

它涉及選擇文本,將其複製到剪貼簿,然後讓 AutoHotKey 從剪貼簿讀取。 (它還在破壞剪貼簿之前保存剪貼簿的副本,並恢復備份的剪貼簿資料)。

buixuanlinh.com/blog/?p=80

顯示使用 PuTTY 登入的簡單範例。

AutoHotkey:_Launch_putty_or_RDP_sessions_via_a_tree-driven_selection_menu

我測試了這些解決方案中的零個。所以,祝你好運。

如果您有權訪問伺服器,您可能希望研究在伺服器端做一些事情。例如,您可以擁有一個僅允許使用者執行一個命令(或命令的開始,例如“sudo mount”但不允許“sudo everything-else”)的 SSH 密鑰; sudo 也可以對使用的命令進行限制。 OpenSSH 可以允許單一使用者擁有多個金鑰。因此,在本機/用戶端選擇使用哪個金鑰可能會影響連接到伺服器時發生的情況。詳細資訊可能對任何希望探索這條路線的人有用,可以從以下位置找到:

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

答案2

在使用該命令之前,我已經完成了此類過程ImageSearch:截取空登入提示的螢幕截圖,並使用 ImageSearch 來確定是否已到達提示。我發現這是相對可靠的(儘管絕不是完美的)——它可能對你有用!

對於更可靠的系統,您可能需要編寫一個腳本來為您進行 ssh 交互,例如pythonpexpect已經成功使用的 。有關如何執行此操作的說明超出了本問題的範圍,但根據您熟悉的腳本語言(AutoHotKey 除外),我確信會有一個選項。我沒有在 中做這種事情的經驗perl,但這也許是可能的。

相關內容