【发布时间】:2022-12-24 00:59:13
【问题描述】:
大家,
我有点麻烦了。
我通过 PuTTy SSH 连接到 AIX 7.2,我正在那里使用终端程序,我需要在其中移动光标以选择选项。
而且,当它可以自动完成时,我懒得手动完成。
通过将焦点设置在 PuTTy 窗口并发送密钥,我们在执行“正常方式”时遇到了问题,特别是因为如果速度太快,终端响应不佳并且发送的击键/文本丢失......如果等待太长了,要么会话中断。最后,即使焦点不断被重定向到窗口,也有失去焦点的风险。发生这种情况时,部分击键/文本也会丢失......
所以,我的主要问题是确保所有密钥都已发送。为此,我制作了一个 Windows 窗体,在其中详细说明了我想要的选项,然后调用了一个没有窗口的 plink.exe 进程。
我将 Process.STDO 重定向到我的表单,以便我获得有关流程进展情况的反馈,并且由于有时会丢失信息,我制作了某种信号量,以保证在我最终从 AIX 获得反馈时写信服务器和 Process.STDIN 我使用一个字符串数组,其中包含我要发送的文本和转义键。
我的问题,现在:
因为我不能使用 SendKeys 因为我没有窗口来设置焦点,所以我试图使用 ASCII 转义字符来发送“向下箭头”键。
到目前为止,我可以发送 '\n' 和普通文本,但是我不能发送用于上下移动和选择选项的箭头键,或者它们没有被正确解释。
我一直在做我的研究,我尝试发送 '\033[1B' (我尝试过的最后一个)来向下移动光标,我在 AIX 上使用 cat 命令,所以我可以看到按下键时会打印什么(并且什么都不打印 - 我猜是不可打印的字符 - )我什至下载了 AIX 7.2 手册,看看那里是否有有用的东西......
主要想法是,当我快要完成它时,将在字符串上获取“向下箭头”转义键值,这样我就可以通过 PuTTy 发送它,让它被识别并上下移动光标。
所以,欢迎任何想法......
【问题讨论】:
-
我尝试了“\033[1B”、“\033[B”、“\E[1B”、“\E[B”、“\e[1B”、“\e[B”、“\016”(哪个实际上,当我使用 echo 时,会抛出一个不可打印的字符,但在发送时,不会将光标向下移动)
-
尝试执行
set -o emacs,然后执行带有菜单的程序。