- ベストアンサー
Telnet接続時の端末によるF1キーの送信コードの違い
- Telnet接続時に端末から送られるF1キーのキーコードは複数存在し、それぞれ異なる使い方があります。
- TeraTermProではX'1B5B31317E'、ハイパーターミナルではX'1B4F50'のコードが送信されます。
- Windowsの添付TelnetではF1キーのキーコードが送信されないため、変更することができない可能性があります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> PF1とF1キーというのはどのような違いがあるか教えてください。 もともと VT100 端末のファンクションキーは、テンキーの上に PF1 ~ PF4 の四つありました。 いわゆる今時のファンクションキー F1 ~ F12 は、パソコン系ですよね。 > なぜF1キーを押すとTeraTermはデフォルトではX'1B5B31317E'キーを送るようにしているのでしょうか。 ちょっと調べました。このコード(\E[11~)は xterm などで割り当てられています。 どのような経緯で TeraTerm のデフォルトに採用されたかは分かりません。 でも、Terminal-ID で VT100 を入れたなら、\EOP の方を送って欲しいですよね。 キーボード上での位置は違いますが、ハイパーターミナルの方が実装としては素直だと(私は)思います。 # そういえば、昔、TeraTerm でファンクションキーを使いたくて、調べたときを # 思い出しました # 私は、これで、terminfo の存在を知ることになりました
その他の回答 (2)
- a-kuma
- ベストアンサー率50% (1122/2211)
> VT100だと X'1B4F50'を送信するということになりますね。 > 残りのコードはどの種類のときに送信されるかはご存知でしょうか。 質問のページに注釈がありますね。 X'1B5B31317E' と X'1B4F50' は VT220 7ビット制御モード(というのに、切り替えられるのでしょう)のときに。 X'9B31317E' と X'8F50' は機能キーが無い(押すキーが無いので、送信のしようが無い?)。 X'1B31' は VT220 7ビット制御モードではないときに送信される。 # この端末を知らないので、全部想像です
補足
>質問のページに注釈がありますね。 すみません、確認してませんでした。 わざわざ有難うございます。 先ほどからTera TermのF1キーのコードを変更してみようとやっています。 Tera Termのヘルプの検索でVT100 の PF1-PF4 キーの項目がありました。 そこに変更内容が記述していました。 そこでまた質問で恐縮なのですが、 ヘルプの内容によると キーボードの初期設定では VT100 の PF1-PF4 キーの機能はテンキーの一番上の列の4つのキー 『(IBM/PC の場合 "Num Lock", "/", "*", "-")に割り当てられています。 これを F1-F4 キーに割り当てるように・・・』とあります。 TeraTermからNumLockキーを押すとX'1B4F50'を送信することが確認できました。 PF1とF1キーというのはどのような違いがあるか教えてください。 なぜF1キーを押すとTeraTermはデフォルトではX'1B5B31317E'キーを送るようにしているのでしょうか。 ハイパーターミナルが逆なのでしょうか。
- a-kuma
- ベストアンサー率50% (1122/2211)
> どのコードが一般的(主要)なのでしょうか。 多分、大きな勘違いをしています。 unix は、その成り立ちから、いろいろなハードウェアで動作することを想定されています。 昔は、端末も、「端末装置」というひとつのハードウェアでした。 キーボードは似たり寄ったりであるものの、キーを押したときにホストに送信されるコードも まちまちでした。 そこで unix では、端末のデータベースを持ち、簡単な設定で、どのような端末を使うかを 切り替えられるようになってます。 ですから「どのコードが一般的」ではなく、「××という端末でF1キーを押すとどういうコードが送信される?」ということなのです。 質問にあるページは 5250 という端末(私は、聞いたこと無い)のエミュレーション(擬似動作)モードについての話です。 > またTeraTermProから送られるのはX'1B5B31317E'、 > ハイパーターミナルから送られるのはX'1B4F50'でした。 TeraTerm は、Terminal-ID は何に設定している(メニューのSetup→Terminal)のでしょうね。 ハイパーターミナルから送られているのは、VT100 用のものです。 > それぞれのソフトで送られているコードを変更することは可能でしょうか。 TeraTerm は変更できます。ハイパーターミナルは分かりません。 TeraTerm をインストールしたディレクトリにある KEYBOARD.CNF というファイルで設定します。 > またWindowsの添付TelnetはF1を押してもキーコードは送信されていません そういうふうに作られていないのでしょう。おまけだと考えてください。
補足
早速の御回答有難うございます。 >ですから「どのコードが一般的」ではなく、「××という端末でF1キーを押すとどういうコードが送信される?」ということなのです。 よく判りました。どの種類で使用しているかによるのですね。 VT100だと X'1B4F50'を送信するということになりますね。 残りのコードはどの種類のときに送信されるかはご存知でしょうか。 X'1B31' X'1B5B31317E' X'9B31317E' X'8F50' >TeraTerm をインストールしたディレクトリにある KEYBOARD.CNF というファイルで設定します。 有難うございます。早速やってみます。
お礼
>もともと VT100 端末のファンクションキーは、テンキーの上に PF1 ~ PF4 の四つありました。 そうなのですね。経験が浅いので知りませんでした。 > 私は、これで、terminfo の存在を知ることになりました 初めて知りました。知識を深めるため学習したいと思います。 問題は解決することができました。 私の返信に対して迅速な対応を採っていただき、 また何度も丁寧に教えていただき本当に有難うございました。