2012-07-23 94 views

回答

3

像Windows或MacOS这样的GUI可以用'keycodes'标识键,但是SSH管道只是传输字节而不是键码。

假设你的服务器上运行ssh的程序是交互式的(也就是期望一个人正在使用它),你需要找出它希望接收的字节模式。当你打开你的频道时,确保你打电话给.get_pty()并给它一个终端参数(默认,vt100,非常安全)。然后,您需要阅读VT100终端的文档,以了解按下各种按键时发送的字节序列。我建议阅读Xterm Control Sequences文档(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' 
+0

能否请您发表意见类似的问题:http://stackoverflow.com/questions/21042089/python-sending-key-press-events-over-ssh。非常感谢。 – 2014-01-10 10:40:32