作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 python 2.7 并使用 paramiko 库编写 ssh 客户端代码,我使用 myhost.channel.send(chr(keycode))
将每个键码发送到服务器.但它只适用于 1 字节的键码。我想发送其他多字节键码,如箭头键。我怎样才能做到这一点?请帮助我。
最佳答案
Windows 或 MacOS 等 GUI 使用“键码”识别键,但 SSH 管道仅传输字节,而不传输键码。
假设在您的服务器上的 ssh 中运行的程序是交互式的(也就是说,它期望有人使用它),您需要找出它期望接收的字节模式类型。当您打开 channel 时,请确保您正在调用 .get_pty()
并为其提供终端参数(默认值 vt100
非常安全)。然后,您需要阅读 VT100 终端的文档,了解按下各种键时它发送的字节序列。我建议阅读 Xterm Control Sequences文档(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'
关于python - 如何在 python 中使用 paramiko 库发送箭头键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11606569/
我是一名优秀的程序员,十分优秀!