我在python中使用telnetlib ... 我使用'\ r'表示输入键,'\ t'表示TAB。 和这个场景一样,我想要SHIFT,PAGE UP,PAGE DOWN,F1,F2 ... F12的char序列。 请求帮助我解决这个问题,因为我必须在我的代码中使用所有这些键盘键。
import telnetlib
HOST = "localhost"
user = raw_input("Enter your remote account: ")
password = getpass.getpass()
tn = telnetlib.Telnet(HOST)
tn.write("ls\n")
tn.write("exit\n")
tn.write("\r") #this is for enter
tn.write("\t") # this is for tab
#what should be here to other keys..pls
print tn.read_all()
答案 0 :(得分:0)
不幸的是,并非所有按键操作都会导致通过线路发送一个或多个字节。这实际上是关于终端仿真,因为控制键“意味着”由终端设备(或仿真器)解释。
不同的终端类型定义不同的密钥并将它们映射到流中的不同字节值。例如,有些终端有F11和F12,有些则没有。有些定义了Ctrl + F键,Shift + F键,Alt + F键,Command + F键;别人不这样做。并且不同的终端将这些密钥映射到线路上完全不同的字节序列。当涉及到箭头键和光标模式键(如insert。
)时,问题是相同的您可能会发现某些密钥被客户端捕获而根本没有传输,或者非键盘事件(例如使用鼠标调整终端窗口大小)会传输终端转义序列。
答案 1 :(得分:0)