US配列と日本語配列のキーの位置とスキャンコードは同じで、キートップの刻印が異なるだけである。これが問題で、キーボードの種類をパソコン側で見分けることができない。OSでキーボードの種類を設定するため、そのままキーボードを繋ぎ換えたら刻印どおりの記号が入らなくなる。
SHIFTキーについては特別な扱いとなる。@マークを入力するには、日本語配列ではそのまま@だが、US配列だとSHIFT+2となる。つまり、US配列のキーボードでSHIFTが押された状態で2が押された時に、日本語配列で@に相当するスキャンコードを送出しなければならない。この時はいったんSHIFTキーを離したように見せかけた後、再度SHIFTキーのスキャンコードを送る。
あと、キーリピートが発生するが、変換にかかる時間がキーリピートの時間よりも充分に短ければ問題にならないだろう。
SHIFTキーについては特別な扱いとなる。@マークを入力するには、日本語配列ではそのまま@だが、US配列だとSHIFT+2となる。つまり、US配列のキーボードでSHIFTが押された状態で2が押された時に、日本語配列で@に相当するスキャンコードを送出しなければならない。この時はいったんSHIFTキーを離したように見せかけた後、再度SHIFTキーのスキャンコードを送る。
ALTキーやCTRLキー併用の場合は問題ない。機能が独立しているためだ。
英 [SFT] [2] [2解除] [SFT解除]
和 [SFT] [SFT解除][@][SFT] [SFT解除][@解除][SFT] [SFT解除]
あと、キーリピートが発生するが、変換にかかる時間がキーリピートの時間よりも充分に短ければ問題にならないだろう。