(57)【要約】【課題】仮想コンソールを用いる場合に、入力用のキーボードから出力される文字が、そのままアプリケーションプログラムに入力される技術を提供する。【解決手段】スキャンコード対応情報４３１は、日本語キーボード１００と、英語キーボード情報２２２とを対象とする。英語キーボード情報２２２は、日本語キーボード１００のスキャンコードと同一のスキャンコードに、日本語キーボード１００のスキャンコードに対応付けられた文字と異なる文字が対応付けられている。スキャンコード対応情報４３１は、この同一のスキャンコードと、同一のスキャンコードに対応付けられた英語キーボード情報２２２の文字と同一の文字が対応付けられた日本語キーボード１００のスキャンコードとの対応を示す。判定部４１１は、日本語キーボード１００からスキャンコードを取得した場合、スキャンコード対応情報４３１に基づき、新たにスキャンコードを生成するかを判定する。【選択図】図６
2019168736.tif 000002
【特許請求の範囲】
【請求項１】
複数のキーの各キーに、文字が対応付けられているスキャンコードが設定されており、前記キーが押された場合に押された前記キーに設定されているスキャンコードを生成して出力する第１のキーボードと、複数のキーの各キーに、文字が対応付けられているスキャンコードが設定されており、前記第１のキーボードのスキャンコードと同一のスキャンコードに前記第１のキーボードのスキャンコードに対応付けられている文字と異なる文字が対応付けられている第２のキーボードとを対象とする情報であり、前記同一のスキャンコードと、前記同一のスキャンコードに対応付けられている前記第２のキーボードの文字と同一の文字が対応付けられている前記第１のキーボードのスキャンコードとの対応を示す情報であるスキャンコード対応情報を記憶する記憶部と、
前記第１のキーボードが出力する前記スキャンコードを取得し、取得した前記スキャンコードが前記スキャンコード対応情報に前記同一のスキャンコードとして存在するか判定し、存在する場合に、前記同一のスキャンコードに対応付けられている前記スキャンコードを生成し、生成した前記スキャンコードを出力する判定部と
を備えるスキャンコード判定装置。
【請求項２】
前記第２のキーボードは、プログラムによって実現される仮想キーボードであり、
前記スキャンコード判定装置は、
前記第１のキーボードに組み込まれている請求項１に記載のスキャンコード判定装置。
【請求項３】
前記スキャンコード判定装置は、さらに、
前記判定部が前記スキャンコードを取得した場合に、取得した前記スキャンコードが前記スキャンコード対応情報に前記同一のスキャンコードとして存在するか判定させることなく、取得した前記スキャンコードを前記判定部に出力させる指令部を備える請求項１または請求項２に記載のスキャンコード判定装置。
【請求項４】
前記第１のキーボードは、第１の言語のキーボードであり、
前記第２のキーボードは、第１の言語とは異なる第２の言語のキーボードである請求項１から請求項３のいずれか一項に記載のスキャンコード判定装置。
【請求項５】
複数のキーの各キーに、文字が対応付けられているスキャンコードが設定されており、前記キーが押された場合に押された前記キーに設定されているスキャンコードを生成して出力する第１のキーボードと、
複数のキーの各キーに、文字が対応付けられているスキャンコードが設定されており、前記第１のキーボードのスキャンコードと同一のスキャンコードに前記第１のキーボードのスキャンコードに対応付けられている文字と異なる文字が対応付けられている第２のキーボードとを対象とする情報であり、
前記同一のスキャンコードと、前記同一のスキャンコードに対応付けられている前記第２のキーボードの文字と同一の文字が対応付けられている前記第１のキーボードのスキャンコードとの対応を示す情報であるスキャンコード対応情報を記憶する処理、
前記第１のキーボードが出力する前記スキャンコードを取得し、取得した前記スキャンコードが前記スキャンコード対応情報に前記同一のスキャンコードとして存在するか判定し、存在する場合に、前記同一のスキャンコードに対応付けられている前記スキャンコードを生成し、生成した前記スキャンコードを出力する処理、
を実行させるスキャンコード判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、キーボードにおけるスキャンコードを生成するスキャンコード判定装置及びスキャンコード判定プログラムに関する。
【背景技術】
【０００２】
従来では、所望の使用言語による文字コードの入力について容易に対応できるシステムがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１６１２５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ブラウザベースの仮想コンソールでは、日本語配列のキーボードを用いて入力を行う場合に、入力を意図する文字と異なる文字が、仮想コンソールを介して、アプリケーションプログラムに入力される場合があった。従来の技術では、入力に使用する日本語配列のキーボードとは異なる配列のキーボードを差し替え、差し替えたキーボード用にドライバを変更する必要があった。
【０００５】
本発明は、仮想コンソールを用いる場合に、入力用のキーボードから出力される文字が、そのままアプリケーションプログラムに入力される技術の提供を目的とする。
【課題を解決するための手段】
【０００６】
この発明のスキャンコード判定装置は、
複数のキーの各キーに、文字が対応付けられているスキャンコードが設定されており、前記キーが押された場合に押された前記キーに設定されているスキャンコードを生成して出力する第１のキーボードと、複数のキーの各キーに、文字が対応付けられているスキャンコードが設定されており、前記第１のキーボードのスキャンコードと同一のスキャンコードに前記第１のキーボードのスキャンコードに対応付けられている文字と異なる文字が対応付けられている第２のキーボードとを対象とする情報であり、前記同一のスキャンコードと、前記同一のスキャンコードに対応付けられている前記第２のキーボードの文字と同一の文字が対応付けられている前記第１のキーボードのスキャンコードとの対応を示す情報であるスキャンコード対応情報を記憶する記憶部と、
前記第１のキーボードが出力する前記スキャンコードを取得し、取得した前記スキャンコードが前記スキャンコード対応情報に前記同一のスキャンコードとして存在するか判定し、存在する場合に、前記同一のスキャンコードに対応付けられている前記スキャンコードを生成し、生成した前記スキャンコードを出力する判定部と
を備える。
【０００７】
前記第２のキーボードは、プログラムによって実現される仮想キーボードであり、
前記スキャンコード判定装置は、
前記第１のキーボードに組み込まれている。
【０００８】
前記スキャンコード判定装置は、さらに、
前記判定部が前記スキャンコードを取得した場合に、取得した前記スキャンコードが前記スキャンコード対応情報に前記同一のスキャンコードとして存在するか判定させることなく、取得した前記スキャンコードを前記判定部に出力させる指令部を備える。
【０００９】
前記第１のキーボードは、第１の言語のキーボードであり、
前記第２のキーボードは、第１の言語とは異なる第２の言語のキーボードである。
【００１０】
この発明のスキャンコード判定プログラムは、
複数のキーの各キーに、文字が対応付けられているスキャンコードが設定されており、前記キーが押された場合に押された前記キーに設定されているスキャンコードを生成して出力する第１のキーボードと、
複数のキーの各キーに、文字が対応付けられているスキャンコードが設定されており、前記第１のキーボードのスキャンコードと同一のスキャンコードに前記第１のキーボードのスキャンコードに対応付けられている文字と異なる文字が対応付けられている第２のキーボードとを対象とする情報であり、
前記同一のスキャンコードと、前記同一のスキャンコードに対応付けられている前記第２のキーボードの文字と同一の文字が対応付けられている前記第１のキーボードのスキャンコードとの対応を示す情報であるスキャンコード対応情報を記憶する処理、
前記第１のキーボードが出力する前記スキャンコードを取得し、取得した前記スキャンコードが前記スキャンコード対応情報に前記同一のスキャンコードとして存在するか判定し、存在する場合に、前記同一のスキャンコードに対応付けられている前記スキャンコードを生成し、生成した前記スキャンコードを出力する処理、
を実行させる。
【発明の効果】
【００１１】
本発明によれば、仮想コンソールを用いる場合に、入力用のキーボードから出力される文字が、そのままアプリケーションプログラムに入力される技術を提供できる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１の図で、スキャンコード判定装置４００を使用しない場合の、比較例を示す図。
【図２】実施の形態１の図で、日本語キーボードと英語キーボードとを対応させた図。
【図３】実施の形態１の図で、スキャンコード判定装置４００の逆変換を説明する図。
【図４】実施の形態１の図で、第１対応情報４３１Ａを示す図。
【図５】実施の形態１の図で、第２対応情報４３１Ｂを示す図。
【図６】実施の形態１の図で、スキャンコード判定装置４００のハードウェア構成を示す図。
【図７】実施の形態１の図で、スキャンコード判定装置４００の動作を説明する図。
【図８】実施の形態１の図で、スキャンコード判定装置４００の動作を説明するためのキーボードの図。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
【００１４】
実施の形態１．
以下、図１から図８を参照して実施の形態１のスキャンコード判定装置４００を説明する。実施の形態１の特徴は、スキャンコード判定装置４００にある。
【００１５】
図１は、スキャンコード判定装置４００を使用しない場合の、比較例を示す。図１は日本語キーボード１００を用いて、ホストサーバ３００のアプリケーション３１４に入力する状況を示している。日本語キーボード１００は、日本語配列のキーボードである。
図２は、図１の流れを示すため、日本語キーボードと英語キーボードとを対応させた図である。以下の説明の（１）から（６）は図２の（１）から（６）に対応している。
【００１６】
パーソナルコンピュータ２００は、ＯＳドライバ２１０、ブラウザ２２０を有する。ＯＳドライバ２１０には日本語キーボード情報２１１が設定されている。日本語キーボード情報２１１とは、日本語キーボード１００のスキャンコードと文字コードとの対応付けがされている情報である。文字コードは以下では単に文字と表記する場合がある。ブラウザ２２０は仮想マシン用コンソール２２１を表示する。仮想マシン用コンソール２２１には英語キーボード情報２２２が設定されている。英語キーボード情報２２２は、英語配列のキーボードの情報を有する。英語キーボード情報２２２とは、英語キーボードにおけるスキャンコードと文字との対応付けがされている情報である。ホストサーバ３００は、仮想マシン３１０を有する。仮想マシン３１０は、仮想キーボード３１１、仮想ＯＳドライバ３１２、アプリケーション３１４を有する。仮想ＯＳドライバ３１２には日本語キーボード情報３１３が設定されている。
【００１７】
図１は、日本語キーボード１００で、ｓｈｉｆｔキーと２のキーを押した場合に、仮想ＯＳドライバ３１２からアプリケーション３１４へ、＊の文字コードが入力される状態を示している。図２を参照して図１の流れを説明する。
【００１８】
＜日本語キーボード１００＞
（１）日本語キーボード１００では、日本語キーボード１００において、ｓｈｉｆｔキーと２のキーが押されたとする。日本語キーボード１００は、押されたキーに相当するスキャンコードを生成して、ＯＳドライバ２１０に通知する。スキャンコードは位置情報である。
（２）ｓｈｉｆｔキーが押された場合、ｓｈｉｆｔキーが押された情報も日本語キーボード１００から出力される。この場合は、「ｓｈｉｆｔ＋ＳＣ（０３）」が日本語キーボード１００から出力される。「ｓｈｉｆｔ＋ＳＣ（０３）」の表記は、スキャンコードと、ｓｈｉｆｔキーとが押されたことを示す。「ｓｈｉｆｔ＋」はｓｈｉｆｔキーの押されたことを示し、ＳＣ（０３）はスキャンコード０３を示すとする。
【００１９】
＜ＯＳドライバ２１０＞
（３）ＯＳドライバ２１０には、日本語キーボード情報２１１が設定されている。ＯＳドライバ２１０は日本語キーボード情報２１１を参照して、入力されたスキャンコード、つまり「ｓｈｉｆｔ＋ＳＣ（０３）」に対応付けられている文字コードを選択する。
ＯＳドライバ２１０は位置情報が「ｓｈｉｆｔ＋ＳＣ（０３）」である文字を日本語キーボード情報２１１から選択する。この場合、選択される文字は「”」（ダブルクウォート）である。ＯＳドライバ２１０は、選択した文字「”」（ダブルクウォート）を、仮想マシン用コンソール２２１へ出力する。
【００２０】
＜仮想マシン用コンソール２２１＞
（４）仮想マシン用コンソール２２１は、文字が入力され、スキャンコードを出力する。仮想マシン用コンソール２２１には英語キーボード情報２２２が設定されている。仮想マシン用コンソール２２１は、英語キーボード情報２２２を参照して、入力された文字「”」のスキャンコードを決定する。
【００２１】
（５）図２に示すように、英語キーボード情報２２２での文字「”」の位置は、日本語キーボード１００での文字「”」の位置と異なる。英語キーボード情報２２２における文字「”」のスキャンコードは、「ｓｈｉｆｔ＋ＳＣ（２８）」である。仮想マシン用コンソール２２１は、スキャンコードとして「ｓｈｉｆｔ＋ＳＣ（２８）」を仮想キーボード３１１に出力する。
【００２２】
＜仮想キーボード３１１＞
仮想キーボード３１１は、仮想マシン用コンソール２２１の出力したスキャンコード「ｓｈｉｆｔ＋ＳＣ（２８）」を受け取り、スキャンコード「ｓｈｉｆｔ＋ＳＣ（２８）」を仮想ＯＳドライバ３１２に送る。
【００２３】
＜仮想ＯＳドライバ３１２＞
（６）仮想ＯＳドライバ３１２は、スキャンコードが入力され、文字を出力する。仮想ＯＳドライバ３１２には、日本語キーボード情報３１３が設定されている。仮想ＯＳドライバ３１２は、スキャンコード「ｓｈｉｆｔ＋ＳＣ（２８）」が入力された場合、日本語キーボード情報３１３を参照して、スキャンコード「ｓｈｉｆｔ＋ＳＣ（２８）」に対応付けられた文字を決定する。この場合、図２に示すように、日本語キーボード情報３１３においてＳＣ（２８）は「＊」のあるキー位置であり、ｓｈｉｆｔキーがされた場合は「＊」の文字が該当する。よって、仮想ＯＳドライバ３１２は文字として「＊」を決定し、「＊」をアプリケーション３１４へ出力する。
【００２４】
以上が図１の流れである。このため、日本語キーボード１００から、文字「”」をアプリケーション３１４に入力しようとする場合、意図に反して、文字「”」ではなく、文字「＊」がアプリケーション３１４に入力されてしまう。以上のように、文字「”」ではなく、文字「＊」がアプリケーション３１４に入力されてしまうのは、仮想マシン用コンソール２２１が英語キーボード情報２２２を使用するからである。
【００２５】
図３は、スキャンコード判定装置４００の機能である逆変換の考え方を説明する図である。「逆変換」とは、アプリケーション３１４に入力したい文字を、アプリケーション３１４から遡り、日本語キーボード１００から出力される文字を変換することを意味する。日本語キーボード１００から出力される文字は、アプリケーション３１４に入力したい文字であるが、上記のように、仮想マシン用コンソール２２１が英語キーボード情報２２２を使用するため、日本語キーボード１００から出力される文字は、アプリケーション３１４に入力される文字と異なる場合が生じる。
【００２６】
ステップＳ１１において、アプリケーション３１４に入力した文字を決める。ここでは図１の場合と同様に、入力したい文字は「”」（ダブルクウォート）とする。
ステップＳ１２において、「”」（ダブルクウォート）の日本語キーボード１００のスキャンコードを調べる。スキャンコードは「ｓｈｉｆｔ＋ＳＣ（０３）」である。
ステップＳ１３において、英語キーボード情報２２２で要求されるスキャンコードは「ｓｈｉｆｔ＋ＳＣ（０３）」と決まる。
ステップＳ１４において、スキャンコード「ｓｈｉｆｔ＋ＳＣ（０３）」に対応する英語キーボード情報２２２での文字「＠」が決まる。
ステップＳ１５において、日本語キーボード１００における文字「＠」のスキャンコード「ｓｈｉｆｔ＋ＳＣ（１Ａ）」が決まる。
よって、ステップＳ１６において、日本語キーボード１００でｓｈｉｆｔキーと２のキーが押され、スキャンコード「ｓｈｉｆｔ＋ＳＣ（０３）」が日本語キーボード１００
から出力された場合、スキャンコード「ｓｈｉｆｔ＋ＳＣ（１Ａ）」に、「逆変換」すればよいことがわかる。
【００２７】
図４は第１対応情報４３１Ａを示し、図５は第２対応情報４３１Ｂを示す。第１対応情報４３１Ａと第２対応情報４３１Ｂとは、両方でスキャンコード対応情報４３１を構成する。図４の第１対応情報４３１Ａでは、日本語キーボード１００のスキャンコードと、英語キーボード情報２２２において日本語キーボード１００のスキャンコードと同一のスキャンコードに対応付けられている文字とが、対応付けられている。日本語キーボード１００のスキャンコードのかっこ内は、スキャンコードに対応付けられている文字を示している。第１対応情報４３１Ａの左側の日本語キーボード１００のスキャンコードに対応付けられている文字と、その文字の日本語キーボード１００におけるスキャンコードとが対応付けられている。
【００２８】
具体的にはスキャンコード対応情報４３１は以下のようである。スキャンコード対応情報４３１は、第１のキーボードと第２のキーボードとを対象とする情報である。第１のキーボードは日本語キーボード１００であり、第２のキーボードは英語キーボード情報２２２である。第２のキーボードは、プログラムによって実現される仮想キーボードである。第１のキーボードは、第１の言語のキーボードであり、第２のキーボードは、第１の言語とは異なる第２の言語のキーボードである。第１のキーボードである日本語キーボード１００は、複数のキーの各キーに、文字が対応付けられているスキャンコードが設定されており、キーが押された場合に押されたキーに設定されているスキャンコードを生成して出力する。第２のキーボードである英語キーボード情報２２２は、複数のキーの各キーに、文字が対応付けられているスキャンコードが設定されている。英語キーボード情報２２２は、日本語キーボード１００のスキャンコードと同一のスキャンコード４０１に日本語キーボード１００のスキャンコードに対応付けられている文字と異なる文字が対応付けられている。ここで、「同一のスキャンコード４０１」とは、図４の第１対応情報４３１Ａにおいて左側のｓｈｉｆｔ＋ＳＣ（０３）、ｓｈｉｆｔ＋ＳＣ（０７）・・・である。
スキャンコード対応情報４３１は、同一のスキャンコード４０１と、英語キーボード情報２２２で同一のスキャンコード４０１に対応付けられている文字と同一の文字が対応付けられている日本語キーボード１００のスキャンコードとの対応を示す情報である。図４、図５の第１対応情報４３１Ａ、第２対応情報４３１Ｂにおいて文字＠を例に述べれば、スキャンコード対応情報４３１は以下のようである。
スキャンコード対応情報４３１は、同一のスキャンコード４０１である「ｓｈｉｆｔ＋ＳＣ（０３）」と、英語キーボード情報２２２で、この「ｓｈｉｆｔ＋ＳＣ（０３）」に対応付けられている文字＠と同一文字＠が対応付けられている日本語キーボード１００でのスキャンコード「ＳＣ（１Ａ）」との対応を示す情報である。
【００２９】
図６は、実施の形態１のスキャンコード判定装置４００のハードウェア構成を示す。また図６に示すように、日本語キーボード１００は、キーボード入力部１１０、スキャンコード生成部１２０、キーボードインタフェース部１３０を有する。
【００３０】
キーボード入力部１１０は、日本語キーボード１００のキースイッチである。スキャンコード生成部１２０は、押されたキーに対応するスキャンコードを生成する。キーボードインタフェース部１３０はパーソナルコンピュータ２００とのインタフェースである。
【００３１】
＊＊＊構成の説明＊＊＊
スキャンコード判定装置４００は、コンピュータである。スキャンコード判定装置４００は、プロセッサ４１０を備えるとともに、主記憶装置４２０、補助記憶装置４３０及び入出力インタフェース装置４４０といった他のハードウェアを備える。プロセッサ４１０は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。スキャンコード判定装置４００は、日本語キーボード１００に組み込まれている。
【００３２】
スキャンコード判定装置４００は、機能要素として、判定部４１１及び指令部４１２を備える。判定部４１１及び指令部４１２の機能は、プログラムにより実現される。
【００３３】
プロセッサ４１０は、スキャンコード判定プログラムを実行する装置である。スキャンコード判定プログラムは、判定部４１１及び指令部４１２の機能を実現するプログラムである。プロセッサ４１０は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ４１０の具体例は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。プロセッサ４１０は、プロセッシングサーキットリとよばれることもある。
【００３４】
主記憶装置４２０は、データを一時的に記憶する記憶装置である。主記憶装置４２０の具体例は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。主記憶装置４２０は、プロセッサ４１０の演算結果を保持する。
【００３５】
補助記憶装置４３０は、データを不揮発的に保管する記憶装置である。補助記憶装置４３０はスキャンコード対応情報４３１を記憶している。補助記憶装置４３０には、スキャンコード判定プログラムが記憶されている。補助記憶装置４３０には、スキャンコード判定プログラムだけでなく、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。なお、プロセッサ４１０は、スキャンコード対応情報４３１を補助記憶装置４３０に記憶する。補助記憶装置４３０の具体例は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、補助記憶装置４３０は、ＳＤ（登録商標）（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記録媒体であってもよい。
【００３６】
入出力インタフェース装置４４０は、プロセッサ４１０と外部装置との間でデータを入出力するための装置である。
【００３７】
スキャンコード判定プログラムは、プロセッサ４１０に読み込まれ、プロセッサ４１０によって実行される。
【００３８】
スキャンコード判定装置４００は、プロセッサ４１０を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、スキャンコード判定プログラムの実行を分担する。
【００３９】
スキャンコード判定プログラムは判定部４１１及び指令部４１２の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程をコンピュータに実行させるプログラムである。また、スキャンコード判定方法は、コンピュータであるスキャンコード判定装置４００がスキャンコード判定プログラムを実行することにより行われる方法である。スキャンコード判定プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
【００４０】
＊＊＊動作の説明＊＊＊
図７、図８を参照して、スキャンコード判定装置４００の動作を説明する。
図７は、スキャンコード判定装置４００の動作を説明する図であり、図１に対応する。
図８は、スキャンコード判定装置４００の動作を説明するためのキーボードの図であり、図２に対応する。
以下の（１）から（５）は図８に示す（１）から（５）に対応する。
【００４１】
（１）日本語キーボード１００では、日本語キーボード１００において、ｓｈｉｆｔキーと２のキーが押されたとする。対応する文字は「”」（ダブルクウォート）である。
（２）日本語キーボード１００では、キーボード入力部１１０及びスキャンコード生成部１２０によって押されたキーに相当するスキャンコード「ｓｈｉｆｔ＋ＳＣ（０３）」を生成する。
（３）日本語キーボード１００はスキャンコード「ｓｈｉｆｔ＋ＳＣ（０３）」を入出力インタフェース装置４４０へ出力する。
【００４２】
（４）判定部４１１は、入出力インタフェース装置４４０から「ｓｈｉｆｔ＋ＳＣ（０３）」を取得して以下の処理を実施する。判定部４１１は、取得したスキャンコード「ｓｈｉｆｔ＋ＳＣ（０３）」が、スキャンコード対応情報４３１に同一のスキャンコード４０１として存在するか判定する。判定部４１１は、同一のスキャンコード４０１として存在する場合に、同一のスキャンコード４０１に対応付けられているスキャンコードを生成し、生成したスキャンコードを出力する。具体的には、判定部４１１は、第１対応情報４３１Ａを参照して、「ｓｈｉｆｔ＋ＳＣ（０３）」に対応する文字を選択する。第１対応情報４３１Ａでは、「ｓｈｉｆｔ＋ＳＣ（０３）」に対応する文字は「＠」である。
【００４３】
（５）次に、判定部４１１は、第２対応情報４３１Ｂを参照して、文字「＠」に対応するスキャンコードを選択する。第２対応情報４３１Ｂでは「ｓｈｉｆｔ＋ＳＣ（１Ａ）」である。判定部４１１は、入出力インタフェース装置４４０を介して、スキャンコード「ｓｈｉｆｔ＋ＳＣ（１Ａ）」をキーボードインタフェース部１３０に出力する。
【００４４】
キーボードインタフェース部１３０は、スキャンコード「ｓｈｉｆｔ＋ＳＣ（１Ａ）」を、パーソナルコンピュータ２００に出力する。
【００４５】
以下の処理は図１と同様であるが、ＯＳドライバ２１０には、スキャンコード「ｓｈｉｆｔ＋ＳＣ（１Ａ）」が入力される。つまり日本語キーボード１００からは「ｓｈｉｆｔ＋ＳＣ（０３）」が出力されたが、スキャンコード判定装置４００による逆変換によって、ＯＳドライバ２１０には、スキャンコード「ｓｈｉｆｔ＋ＳＣ（１Ａ）」が入力される。
【００４６】
＜ＯＳドライバ２１０＞
ＯＳドライバ２１０は日本語キーボード情報２１１を参照して、入力されたスキャンコード、つまり「ｓｈｉｆｔ＋ＳＣ（１Ａ）」に対応付けられている文字コードを選択する。図７に示すように、ＯＳドライバ２１０は位置情報が「ｓｈｉｆｔ＋ＳＣ（１Ａ）」である文字を日本語キーボード情報２１１から選択する。この場合、選択される文字は「＠」である。ＯＳドライバ２１０は、選択した文字「＠」を、仮想マシン用コンソール２２１へ出力する。
【００４７】
＜仮想マシン用コンソール２２１＞
仮想マシン用コンソール２２１は、英語キーボード情報２２２を参照して、入力された文字「＠」のスキャンコードを決定する。図７に示すように、英語キーボード情報２２２での文字「＠」の位置は、「ｓｈｉｆｔ＋ＳＣ（０３）」である。仮想マシン用コンソール２２１は、スキャンコードとして「ｓｈｉｆｔ＋ＳＣ（０３）」を仮想キーボード３１１に出力する。
【００４８】
＜仮想キーボード３１１＞
仮想キーボード３１１は、仮想マシン用コンソール２２１の出力したスキャンコード「ｓｈｉｆｔ＋ＳＣ（０３）」を受け取り、スキャンコード「ｓｈｉｆｔ＋ＳＣ（０３）」を仮想ＯＳドライバ３１２に送る。
【００４９】
＜仮想ＯＳドライバ３１２＞
仮想ＯＳドライバ３１２は、スキャンコード「ｓｈｉｆｔ＋ＳＣ（０３）」が入力された場合、日本語キーボード情報３１３を参照して、スキャンコード「ｓｈｉｆｔ＋ＳＣ（０３）」に対応付けられた文字を決定する。この場合、仮想ＯＳドライバ３１２はスキャンコード「ｓｈｉｆｔ＋ＳＣ（０３）」から「”」（ダブルクウォート）を決定する。
【００５０】
以上により、アプリケーション３１４には、「”」（ダブルクウォート）が入力される。
【００５１】
図６に示す指令部４１２は、判定部４１１がスキャンコードをスキャンコード生成部１２０から取得した場合に、取得したスキャンコードがスキャンコード対応情報４３１に同一のスキャンコードとして存在するか判定させることなく、取得したスキャンコードを判定部４１１に出力させる。図６では、指令部４１２は、プログラムで実現される場合を示しているが、指令部４１２は、物理的な切り替えスイッチで実現されてもよい。物理的な切り替えスイッチでは、指令部４１２に判定をさせる、判定をさせない、の切り替えを行う。
【００５２】
＊＊＊実施の形態１の効果＊＊＊
実施の形態１のスキャンコード判定装置４００は、スキャンコード対応情報４３１、判定部４１１を備えたので、仮想コンソールを用いる場合に、入力用のキーボードから出力される文字が、そのままアプリケーションプログラムに入力される技術を提供できる。
また、スキャンコード判定装置４００の動作を実行するスキャンコード判定プログラムによれば、既存の日本語キーボード１００のハードウェア構成、及びパーソナルコンピュータ２００のハードウェア構成を変更することなく、スキャンコード判定装置４００の機能を実現できる。
【符号の説明】
【００５３】
１００  日本語キーボード、１１０  キーボード入力部、１２０  スキャンコード生成部、１３０  キーボードインタフェース部、２００  パーソナルコンピュータ、２１０  ＯＳドライバ、２１１  日本語キーボード情報、２２０  ブラウザ、２２１  仮想マシン用コンソール、２２２  英語キーボード情報、３００  ホストサーバ、３１０  仮想マシン、３１１  仮想キーボード、３１２  仮想ＯＳドライバ、３１３  日本語キーボード情報、３１４  アプリケーション、４００  スキャンコード判定装置、４０１  同一のスキャンコード、４１０  プロセッサ、４１１  判定部、４１２  指令部、４２０  主記憶装置、４３０  補助記憶装置、４３１  スキャンコード対応情報、４３１Ａ  第１対応情報、４３２Ｂ  第２対応情報、４４０  入出力インタフェース装置。
【図１】
2019168736.tif 000003
【図２】
2019168736.tif 000004
【図３】
2019168736.tif 000005
【図４】
2019168736.tif 000006
【図５】
2019168736.tif 000007
【図６】
2019168736.tif 000008
【図７】
2019168736.tif 000009
【図８】
2019168736.tif 000010