如何从 Putty 获取 AHK 可见窗口文本?

如何从 Putty 获取 AHK 可见窗口文本?

有没有办法从 AutoHotKey 脚本中检索 Putty 缓冲区的内容?对于许多应用程序,文本获取可以工作,但对于 Putty 来说似乎不行。另外,AHK Windows Spy 不会显示缓冲区中的任何文本,因此我怀疑 Putty 只是对其缓冲区使用了不同的存储/显示方法。

我想知道您是否可以在 Putty 中启用一个设置,以便它以 Window 标准的方式公开其缓冲区的内容,然后 AHK 可以将其作为可见窗口文本来获取。

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

答案1

我读到了一种不同的方法:让 PuTTY 将内容写入日志文件。然后让 AutoHotKey 从文件中读取。这可能会提供相关信息:

autoputty-脚本-telnet-需要帮助

这是另一种方法:

gist.github.com/serf/2710415

它涉及选择文本,将其复制到剪贴板,然后让 AutoHotKey 从剪贴板读取。(它还会在破坏剪贴板之前保存剪贴板的副本,并恢复备份的剪贴板数据)。

buixuanlinh.com/blog/?p=80

显示了使用 PuTTY 登录的简单示例。

AutoHotkey:通过树驱动选择菜单启动 putty 或 RDP 会话

我已经测试了这些解决方案中的零个。所以,祝你好运。

如果您有权访问服务器,您可能希望研究在服务器端执行的操作。例如,您可以拥有一个 SSH 密钥,该密钥仅允许用户运行一个命令(或命令的开头,如“sudo mount”,但不能运行“sudo any-else”);sudo 还可以对使用的命令提供限制。OpenSSH 可以允许单个用户拥有多个密钥。因此,在本地/客户端选择使用哪个密钥可能会影响您连接到服务器时的情况。详细信息可能对希望探索此路线的任何人都有用,可以从以下位置找到:

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

答案2

在使用该命令之前,我曾执行过此类过程ImageSearch:截取空白登录提示的屏幕截图,然后使用 ImageSearch 确定是否已到达提示。我发现这种方法相对可靠(尽管并非完美)——它可能对您有用!

对于更可靠的系统,您可能需要编写一个脚本来为您执行 ssh 交互,例如pythonpexpect我已经成功使用了。如何执行此操作的说明超出了本问题的范围,但根据您熟悉的脚本语言(AutoHotKey 除外),我相信会有一个选项。我没有在 中执行此类操作的经验perl,但这可能是可行的。

相关内容