- PR -

perlからtelnet接続時のESCキー使用方法について

1
投稿者投稿内容
amema
会議室デビュー日: 2006/12/18
投稿数: 7
投稿日時: 2007-01-10 13:39
書き込む会議室が間違っているかも知れませんが、
ご存じの方がいらっしゃれば教えて頂けないでしょうか?

現在、perl(HPUX)とNet-Telnet-3.03を利用してtelnet接続しているのですが、
telnet中にESCキーを入力させる事は可能なのでしょうか?

perl:v5.8.0 built for PA-RISC1.1-thread-multi
telnet:Net-Telnet-3.03
たお
ベテラン
会議室デビュー日: 2006/10/27
投稿数: 90
投稿日時: 2007-01-10 14:39
バイナリで文字コード書いてできませんか?
print "\x1B";
みたいに。

amema
会議室デビュー日: 2006/12/18
投稿数: 7
投稿日時: 2007-01-10 16:31
ご返信有り難うございます!

以下で実行してみましたが、ESC入力を認識してもらえませんでした。。。

$telnet->print("\x1B");

ESCキーを入れる前に他のコマンドを実行しており、その結果は正しいので
単純な構文ミスは多分無いと思います。。。orz
たお
ベテラン
会議室デビュー日: 2006/10/27
投稿数: 90
投稿日時: 2007-01-10 18:37
ちなみに、どういった用途でESCが必要になるんですか?
対話式のようなプログラムを実行していて、
その答えに使うといった感じですか?

それと、文字コードはなんですか?
HPUXだとSJISとかですか?
ESCは16進で1Bであってますか?
amema
会議室デビュー日: 2006/12/18
投稿数: 7
投稿日時: 2007-01-10 20:08
>ちなみに、どういった用途でESCが必要になるんですか?
>対話式のようなプログラムを実行していて、
>その答えに使うといった感じですか?

ちょっと詳細には説明が出来ないのですが、
上記のようなイメージです。
対話式でコマンドを実行して、途中でどうしてもESCキー入力が
必要になりました。

>それと、文字コードはなんですか?
>HPUXだとSJISとかですか?

はい、SJISです!

>ESCは16進で1Bであってますか?

はい、念のためWebでも調べましたがあっていると思います。。
たお
ベテラン
会議室デビュー日: 2006/10/27
投稿数: 90
投稿日時: 2007-01-11 12:02
net::telnetのprintだと、最後に改行が追加されてしまうみたいですね。
putだと改行がつかないみたいです。
binmodeで改行コードの種類が設定できるのかな?
CR+LFだとか。
#ESCキーは"\e"と書けるみたいですね。

一度、どういう値がきているのか確認してみたらどうでしょうか?
その対話式プログラムの代わりにこういった物を動かしてみるとか。。
print unpack( "H*", <> );

もし結果が1b0aだとしたら、
対話式プログラムのESC判定を見ないとわからないです。
amema
会議室デビュー日: 2006/12/18
投稿数: 7
投稿日時: 2007-01-11 17:19
To たお様

$telnet->put("\x1B");
でESCキーが入力されました!

本当に有り難うございます!
改行キー何て全く頭に入ってなかったです、、情けないorz

お忙しいところご教授頂き、本当に有り難うございました!
1

スキルアップ/キャリアアップ(JOB@IT)