我正在使用 python 2.7 和代码 ssh 客户端paramiko图书馆,我用myhost.channel.send(chr(keycode))
将每个键码发送到服务器。但它仅适用于 1 字节键码。我想发送其他多字节键码,例如箭头键。我怎样才能实现这个目标?请帮我。
像 Windows 或 MacOS 这样的 GUI 使用“密钥代码”来标识密钥,但 SSH 管道仅传输字节,而不是密钥代码。
假设在服务器上的 ssh 内运行的程序是交互式的(也就是说,它期望有人使用它),您需要找出它期望接收哪种字节模式。当您打开频道时,请确保您正在拨打电话.get_pty()
并给它一个终端参数(默认值,vt100
,相当安全)。然后,您需要阅读 VT100 终端的文档,以了解按下各个按键时它发送的字节序列。我建议阅读Xterm 控制序列 http://www.xfree86.org/current/ctlseqs.html#PC-Style%20Function%20Keys文档(Xterm 严格来说不是一个 vt100 模拟器,但它的文档非常完整),并且不会与原始 VT100 终端的硬件细节混淆)。请注意,在该文档中,“CSI”实际上意味着 Python 字符串'\e['
.
例如,Xterm Control Sequences 文档称箭头键为“CSI A”(向上)、“CSI B”(向下)、“CSI C”(向右)和“CSI D”(向左)。在 Python 中,它看起来像:
up = '\e[A'
down = '\e[B'
right = '\e[C'
left = '\e[D'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)