如何在python发送箭头键使用的paramiko库?(How to send an arrow k

2019-09-20 01:26发布

我使用的Python 2.7和代码SSH客户端的paramiko库,我用myhost.channel.send(chr(keycode))的每一个键码发送给服务器。 但它仅适用于1个字节键码。 我想给其他的多字节键码,像箭头键。 我怎样才能做到这一点? 请帮我。

Answer 1:

如Windows或者MacOS的GUI标识键与“键码”,但一个SSH管只是传送字节,而不是键码。

假设您的内部服务器上的SSH运行的程序是交互式的(也就是说,它期待一个人来使用它),你需要找出什么样的字节模式它预计接收。 当您打开通道,确保你打电话.get_pty()给它一个终端参数(默认情况下, vt100 ,是非常安全)。 然后,你需要阅读文档的VT100终端,找出哪些字节序列当按下各个键发送。 我建议你阅读的Xterm控制序列的文件(Xterm的不是严格意义上的VT100模拟器,但它的文档非常齐全),而不是混淆的混淆与原VT100终端的硬件细节)。 需要注意的是该文件中,“CSI”实际上就意味着在Python字符串'\e['

例如,在Xterm控制序列文件说,箭头键是“CSI A”为向上,“CSI B”为向下“ CSI C”为右,和“CSI d”为左。 在Python,看起来像:

up = '\e[A'
down = '\e[B'
right = '\e[C'
left = '\e[D'


文章来源: How to send an arrow key use paramiko library in python?