2012-07-23 24 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