2008年05月25日

ToggleKeyのini作成05「キャラクタコードとキーコードナンバー」

前回の16進数とキーコードについての話は理解できたでしょうか?

だいぶ難しい内容になってきてますが、頑張りましょう。

今回は前回の続きで、ToggleKeyがiniをどんな風に読み取っているのかの話です。
ToggleKeyのiniの基本的な定義の仕方の説明になります。

そのためにキャラクタコードというものを理解する必要があります。

今回の要点は

・コンピュータはキャラクタコードといわれる16進数の数値で英数記号文字を認識する
・ToggleKeyでは、キャラクタコード1文字を数値とみなして設定値に使うことができる
・[Keycode0]以降の意味不明な文字列は、コンピュータに渡すキーコードを設定している

の3点になります。

では、今回もがんばりましょう(^^;



まず、キャラクタコードについて。

コンピュータは計算機ですので、どんなものでも数値の状態で認識します。
前回は、押されたキーを入力キーコードという16進数値として認識するという話をしました。

同じように、テキストファイルに書かれた文字も16進数値として認識しています。

世界にはいろいろな文字があって、その文字ごとに定義されている16進数値も違うのですが、その中で、0x00〜0xFFまでの16進数値をキャラクタコードといいます。

主なものをキャラクタコード一覧として書いてみます。

0x20 「 」
0x21 「!」
0x22 「"」
0x23 「#」
0x24 「$」
0x25 「%」
0x26 「&」
0x27 「'」
0x28 「(」
0x29 「)」
0x2A 「*」
0x2B 「+」
0x2C 「,」
0x2D 「-」
0x2E 「.」
0x2F 「/」
0x30 「0」
0x31 「1」
0x32 「2」

0x39 「9」
0x3A 「:」
0x3B 「;」
0x3C 「<」
0x3D 「=」
0x3E 「>」
0x3F 「?」
0x40 「@」
0x41 「A」
0x42 「B」
0x43 「C」

0x5A 「Z」
0x5B 「[」
0x5C 「\」
0x5D 「]」
0x5E 「^」
0x5F 「_」
0x60 「`」
0x61 「a」
0x62 「b」
0x63 「c」

0x7A 「z」
0x7B 「{」
0x7C 「|」
0x7D 「}」
0x7E 「~」

…こんな感じで主要な英数記号文字が16進数値で定義されています。
アルファベットの大文字・小文字は違う文字なので、定義されている16進数値が違います。

これが、キャラクタコードです。


ToggleKeyでは、このキャラクタコード1文字を数値とみなして設定値に使うことができます。

具体例を見てみましょう。

2の入力キーコードは0x32です。よって、2のキーを押したときa,b,cとトグルする設定は

0x32=a,b,c

と書くのが正しいです。これで全く問題ありません。

ところでToggleKeyのiniでは、この0x32を1文字のキャラクタコードに置き換えて書くことが可能です。

キャラクタコード0x32の文字は、上記のキャラクタコード一覧によると「2」です。
よって、0x32を2に置き換えて、

2=a,b,c

と書くことができます。

0x32=a,b,c

より

2=a,b,c

と書く方が、わかりやすいですよね?


さて、この

2=a,b,c

という設定のaやbやcも、実は16進数値です。
aは0x61、bは0x62、cは0x63という16進数値を表しています。

これはなんの数値でしょう?

誤解しやすいですが、キーコードではありません。

実は今まで触れませんでしたが、

[Keycode0]

という行の後に書いてある、意味不明な文字列

0x00 None 16 0x00 0x00 0x00
0x03 Close 16 0x03 0x03 0x03


の、それぞれの行頭に書いてある16進数値を意味しています。

この行頭の16進数値を、ToggleKeyではキーコードナンバーといいます。

キーコードナンバーもまた、キャラクタコード1文字に置き換えることができます。


[Keycode0]より下に書いてある意味不明な文字列は、実際にどんなキーコードをコンピュータに渡すのかが書かれています。

もっと下の行を見てみると、

a a 1 A a A
b b 1 B b B
c c 1 C c C

と、書いてあります。

この行頭のaやbやcが、キーコードナンバーをキャラクタコード1文字で書いたものです。

つまり、

2=a,b,c

のaは、[Keycode0]より下の行に書いてある、

a a 1 A a A

の行頭のキーコードナンバーa、つまり0x61のことであり、この行の設定を使ってコンピュータにキーコードを渡す、ということになります。

もちろんbは

b b 1 B b B

cは

c c 1 C c C

を使うことになります。



整理しましょう。

トグル設定は

入力キーコード=キーコードナンバー,キーコードナンバー,…

という風に書きます。


2のキーを押したときa,b,cとトグルする設定は、16進数値を使って書くと

0x32=0x61,0x62,0x63

となります。


そして、入力キーコードもキーコードナンバーも、キャラクタコード1文字で書くことができます。

2のキーを押したときa,b,cとトグルする設定は、全部キャラクタコードを使って書くと

2=a,b,c

と書けます。


つまり、

0x32=0x61,0x62,0x63



2=a,b,c

も、まったく同じ設定です。



キーコードとキャラクタコード、キーコードナンバーについて説明しましたが、理解できたでしょうか?

特にキーコードとキーコードナンバーを誤解して、ごちゃごちゃになりやすいので、気をつけてください。



目次へ戻る
posted by さひろ at 17:45| 静岡 ☔| Comment(0) | TrackBack(0) | ToggleKey | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/97926222
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。