3

Perl モジュール Net::Telnet を使用して、どのように矢印キーを telnet セッションに送信して、ユーザーがキーボードで下向きのキーを押したのと同じようにしますか?

use Net::Telnet;
my $t = new Net::Telnet();
my $down_key=?; #How do you send a down key in a telnet session?
t->print($down_key);

このVT102 コードのリストによると、カーソル キーコードは次のとおりです。

Up:    Esc [   A
       033 133 101
Down:  Esc [   B
       033 133 102
Right: Esc [   C
       033 133 103
Left:  Esc [   D
       033 133 104

これらをtelnetでどのように送信しますか?これらのコードは、キーボードで押された矢印キーと同じですか?

4

2 に答える 2

5

印刷してみてください"\e[B"。これらのコードはまったく同じですsh。readline サポートなしで Bourne シェルを実行してみて、上下の矢印キーを押すと、エスケープ文字を表す^[[Awhereのようなものが表示されます。^[

于 2010-03-23T17:51:26.197 に答える
1

一部のプログラムは、CSI ではなく SS3 エスケープを想定しています。"\e[A" とフレンドが機能しない場合は、次を試してください。

%ss3 = (
   up    => "\eOA",
   down  => "\eOB",
   right => "\eOC",
   left  => "\eOD",
);

(これらは大文字の o であり、ゼロではありません)

于 2010-03-24T01:30:13.290 に答える