アプリ版:「スタンプのみでお礼する」機能のリリースについて

Telnet接続をして端末からF1キーを入力すると端末から送られるキーコードは
次のページを参照したところ
http://publib.boulder.ibm.com/iseries/v5r2/ic296 …
F1 X'1B31'
F1 X'1B5B31317E'
F1 X'9B31317E'
F1 X'1B4F50'
F1 X'8F50'
ということがわかりました。それぞれどういう違いで
各コードを送信するのかを教えていただけないでしょうか。
どのコードが一般的(主要)なのでしょうか。

またTeraTermProから送られるのはX'1B5B31317E'、
ハイパーターミナルから送られるのはX'1B4F50'でした。
それぞれのソフトで送られているコードを変更することは可能でしょうか。

またWindowsの添付TelnetはF1を押してもキーコードは送信されていません
コードを送信できるように変更することは可能でしょうか。

A 回答 (3件)

> PF1とF1キーというのはどのような違いがあるか教えてください。



もともと VT100 端末のファンクションキーは、テンキーの上に PF1 ~ PF4 の四つありました。

いわゆる今時のファンクションキー F1 ~ F12 は、パソコン系ですよね。

> なぜF1キーを押すとTeraTermはデフォルトではX'1B5B31317E'キーを送るようにしているのでしょうか。

ちょっと調べました。このコード(\E[11~)は xterm などで割り当てられています。

どのような経緯で TeraTerm のデフォルトに採用されたかは分かりません。
でも、Terminal-ID で VT100 を入れたなら、\EOP の方を送って欲しいですよね。
キーボード上での位置は違いますが、ハイパーターミナルの方が実装としては素直だと(私は)思います。

# そういえば、昔、TeraTerm でファンクションキーを使いたくて、調べたときを
# 思い出しました
# 私は、これで、terminfo の存在を知ることになりました
    • good
    • 0
この回答へのお礼

>もともと VT100 端末のファンクションキーは、テンキーの上に PF1 ~ PF4 の四つありました。

そうなのですね。経験が浅いので知りませんでした。

> 私は、これで、terminfo の存在を知ることになりました

初めて知りました。知識を深めるため学習したいと思います。

問題は解決することができました。
私の返信に対して迅速な対応を採っていただき、
また何度も丁寧に教えていただき本当に有難うございました。

お礼日時:2002/11/27 17:15

> 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'キーを送るようにしているのでしょうか。
ハイパーターミナルが逆なのでしょうか。

補足日時:2002/11/27 15:24
    • good
    • 0

> どのコードが一般的(主要)なのでしょうか。



多分、大きな勘違いをしています。

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 というファイルで設定します。
有難うございます。早速やってみます。

補足日時:2002/11/27 11:41
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!