"タッチスクリーンディスプレイと、複数のキーを含む仮想キーボードを前記タッチスクリーンディスプレイ上に表示するキーボード表示手段と、前記仮想キーボードに対するユーザ操作に応じてキーコードを入力する制御手段とを具備し、前記制御手段は、前記タッチスクリーンディスプレイ上の複数の位置と外部オブジェクトそれぞれとの接触に応答して、前記複数の位置にそれぞれ対応する前記複数のキー内の複数の第1キーを検出する検出手段と、前記複数の第1の位置の内のいずれか一つの第1位置の接触状態の解除に応答して、前記いずれか一つの第1位置に前記外部オブジェクトが接触されてから前記いずれか一つの第1位置の接触状態が解除されるまでの接触時間が閾時間よりも短いか否かを判定し、前記接触時間が前記閾時間よりも短い場合、前記いずれか一つの第1位置に対応する前記複数の第1キー内の一つの第1キーに関連づけられたキーコードを入力する入力処理を実行し、前記接触時間が前記閾時間よりも短くない場合、前記入力処理の実行をスキップする入力制御手段とを具備する電子機器。前記複数のキーはホームキーポジションの識別に使用される2つの特定のキーを含み、前記複数の第1キーのいずれかが前記2つの特定のキーの一つである場合、前記ホームキーポジションに対応する位置に前記外部オブジェクトが接触されたこと示す通知を発生する第1のフィードバック制御手段をさらに具備する請求項1記載の電子機器。前記接触時間が前記閾時間よりも短い場合、前記入力処理が実行されたことを示す通知を発生する第2のフィードバック制御手段をさらに具備する請求項1または2記載の電子機器。前記第2のフィードバック制御手段は、前記接触時間が前記閾時間よりも短くない場合、前記入力処理がスキップされたことを示す通知を発生する請求項3記載の電子機器。前記電子機器に加わる衝撃度を検知するセンサをさらに具備し、前記入力制御手段は、前記複数の第1の位置の内のいずれか一つの第1位置と前記外部オブジェクトとの接触の解除に応答して、前記センサによって検知された衝撃度が第1閾値よりも大きいか否かをさらに判定し、前記衝撃度が前記第1閾値よりも大きくない場合、前記入力処理の実行をスキップする請求項1記載の電子機器。前記入力制御手段は、前記複数の第1の位置の内のいずれか一つの第1位置と前記外部オブジェクトとの接触の解除に応答して、前記いずれか一つの第1位置と前記外部オブジェクトとの接触圧力が第2閾値よりも大きいか否かをさらに判定し、前記接触圧力が前記第1閾値よりも大きくない場合、前記入力処理の実行をスキップする請求項1または5に記載の電子機器。外部機器と通信するための通信手段と、前記入力されたキーコードを前記通信手段を介して前記外部機器に送信するキーコード送信手段とをさらに具備する請求項1記載の電子機器。前記タッチスクリーンディスプレイ上の2つの位置が前記外部オブジェクトと接触されたことに応答して、前記2つの位置間の距離が閾距離よりも短いか否かを判定し、前記2つの位置間の距離が前記閾距離よりも短い場合、前記制御手段の動作モードを、前記仮想キーボードに対するユーザ操作に応じてキーコードを入力するモードから、前記外部オブジェクトが接触される前記タッチスクリーンディスプレイ上の接触位置の移動に応じて、前記接触位置の移動の方向および距離を示す相対座標データを入力するマウスモードに切り替えるモード切り替え手段をさらに具備することを特徴とする請求項1または7記載の電子機器。タッチスクリーンディスプレイを備えた電子機器に適用される入力方法であって、複数のキーを含む仮想キーボードを前記タッチスクリーンディスプレイ上に表示し、前記タッチスクリーンディスプレイ上の複数の位置と外部オブジェクトそれぞれとの接触に応答して、前記複数の位置にそれぞれ対応する前記複数のキー内の複数の第1キーを検出し、前記複数の第1の位置の内のいずれか一つの第1位置の接触状態の解除に応答して、前記いずれか一つの第1位置に前記外部オブジェクトが接触されてから前記いずれか一つの第1位置の接触状態が解除されるまでの接触時間が閾時間よりも短いか否かを判定し、前記接触時間が前記閾時間よりも短い場合、前記いずれか一つの第1位置に対応する前記複数の第1キー内の一つの第1キーに関連づけられたキーコードを入力する入力処理を実行し、前記接触時間が前記閾時間よりも短くない場合、前記入力処理の実行をスキップする入力方法。タッチスクリーンディスプレイを備えたコンピュータに、複数のキーを含む仮想キーボードを前記タッチスクリーンディスプレイ上に表示する手順と、前記タッチスクリーンディスプレイ上の第1位置と外部オブジェクトとの接触に応答して、前記タッチスクリーンディスプレイ上の前記第1位置に対応する前記複数のキー内の第1キーを検出する手順と、前記タッチスクリーンディスプレイ上の複数の位置と外部オブジェクトそれぞれとの接触に応答して、前記複数の位置にそれぞれ対応する前記複数のキー内の複数の第1キーを検出する手順と、前記複数の第1の位置の内のいずれか一つの第1位置の接触状態の解除に応答して、前記いずれか一つの第1位置に前記外部オブジェクトが接触されてから前記いずれか一つの第1位置の接触状態が解除されるまでの接触時間が閾時間よりも短いか否かを判定する手順と、前記接触時間が前記閾時間よりも短い場合、前記いずれか一つの第1位置に対応する前記複数の第1キー内の一つの第1キーに関連づけられたキーコードを入力する入力処理を実行する手順と、前記接触時間が前記閾時間よりも短くない場合、前記入力処理の実行をスキップする手順とを実行させるプログラム。ところで、最近では、ボタン、メニュー、ドキュメント、画像といった様々なグラフィックコンテンツを視認しやすくするために、比較的大きなサイズのタッチスクリーンディスプレイを備えた電子機器も開発されている。このような電子機器においては、仮想キーボードを両手で操作できるような大きなサイズでタッチスクリーンディスプレイ上に表示することができる。ハードウェアキーボードを使用する場合においては、ユーザは、両手の指をホームキーポジションに対応する幾つかのキー上に置いた状態で、タイプ入力操作を行うことができる。例えば、ホームキーポジションに対応する幾つかのキー上に指を触れておくことにより、いわゆるタッチタイプ操作キーボードを見ずにタイプ入力する操作を行うことができる。しかし、通常の仮想キーボードにおいては、ユーザの指がタッチスクリーンディスプレイ上のある位置に触れた時点で、その触れた位置に対応するキーのキーコードが入力される。したがって、ユーザは、ハードウェアキーボードの場合とは異なり、何本かの指を幾つかのキー上に置いて手を休ませたり、あるいはタッチタイプ操作を行うことはできない。ユーザは、両手の指をタッチスクリーンディスプレイの上方に浮かせておき、その状態で、目的のキーを指でタッチすることが必要となる。このため、ユーザの手にかかる負担が大きくなる場合がある。あるキーから指が離れたことをトリガに、そのキーのキーコードを入力する仮想キーボードもある。しかし、この種の仮想キーボードにおいても、1以上の指をキー上に置いて休ませることは難しい。ユーザが、目的のキーをタッチするために、あるキー上に置いてある指をこのキーから離した瞬間に、指が離されたキーのキーコードが入力されてしまう可能性があるからである。本発明は、タッチスクリーンディスプレイを用いて容易にキー入力を行うことができる電子機器および入力方法を提供することを目的とする。実施形態によれば、電子機器は、タッチスクリーンディスプレイと、キーボード表示手段と、制御手段とを具備する。前記キーボード表示手段は、複数のキーを含む仮想キーボードを前記タッチスクリーンディスプレイ上に表示する。前記制御手段は、前記仮想キーボードに対するユーザ操作に応じてキーコードを入力する。前記制御手段は、検出手段と、入力制御手段とを備える。前記検出手段は、前記タッチスクリーンディスプレイ上の複数の位置と外部オブジェクトそれぞれとの接触に応答して、前記複数の位置にそれぞれ対応する前記複数のキー内の複数の第1キーを検出する。前記入力制御手段は、前記複数の第1の位置の内のいずれか一つの第1位置の接触状態の解除に応答して、前記いずれか一つの第1位置に前記外部オブジェクトが接触されてから前記いずれか一つの第1位置の接触状態が解除されるまでの接触時間が閾時間よりも短いか否かを判定し、前記接触時間が前記閾時間よりも短い場合、前記いずれか一つの第1位置に対応する前記複数の第1キー内の一つの第1キーに関連づけられたキーコードを入力する入力処理を実行し、前記接触時間が前記閾時間よりも短くない場合、前記入力処理の実行をスキップする。以下、実施の形態について図面を参照して説明する。図1は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、タブレット型パーソナルコンピュータPC、スマートフォン、またはPDA等として実現され得る。以下では、この電子機器がタブレット型パーソナルコンピュータ10として実現されている場合を想定する。タブレット型パーソナルコンピュータ10は、図1に示すように、コンピュータ本体11とタッチスクリーンディスプレイ17とから構成される。コンピュータ本体11は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ17には、液晶表示装置LCD及びタッチパネルが組み込まれている。タッチパネルは、LCDの画面を覆うように設けられる。タッチスクリーンディスプレイ17は、コンピュータ本体11の上面に重ね合わせるように取り付けられている。このタッチスクリーンディスプレイ17は、外部オブジェクトペン又は手の指と接触された表示画面上の位置タッチ位置、または接触位置とも云うを検知することができる。このタッチスクリーンディスプレイ17は同時に複数の接触位置を検知可能なマルチタッチ機能をサポートしている。コンピュータ本体11の上面上には、カメラ19およびマイクロフォン20が配置されている。また、コンピュータ本体11の長手方向に伸びた側面には2つのスピーカ18A,18Bが配置されている。本コンピュータ10においては、タッチスクリーンディスプレイ17は、各種アプリケーションプログラムの画面を表示するためのメインディスプレイとして使用される。さらに、タッチスクリーンディスプレイ17は、図2に示されているように、仮想キーボードソフトウェアキーボードとも云う171の表示にも用いられる。タッチスクリーンディスプレイ17の表示画面の向きは縦向きポートレートと横向きランドスケープとの間で切り替えることができる。図2は、ランドスケープ時における仮想キーボード171のレイアウトを示している。仮想キーボード171は、複数のキーコードをそれぞれ入力するための複数のキー複数の数字キー、複数のアルファベットキー、複数の矢印キー等を含む。より詳しくは、仮想キーボード151は、複数のキーそれぞれに対応する複数のボタンソフトウェアボタンを含む。タッチスクリーンディスプレイ17の表示画面上には、仮想キーボード171と一緒に、仮想キーボード171の操作によって入力されたキーコードに対応する文字を表示するための文字入力エリアテキストボックス172を表示してもよい。本実施形態では、ユーザが1以上の指を仮想キーボード171上のキーに置いたままの状態で、つまり1以上の指がタッチスクリーンディスプレイ17に接触している状態で、タイプ入力操作を実行できるようするためのキー入力制御機能を有している。このキー入力制御機能においては、キーが入力操作されたか否かの判定は、キーが指などでタッチされた瞬間では無く、キーから指が離された瞬間に実行される。ユーザが何本かの指を幾つかのキー上にそれぞれ触れた状態では、それら個々のキーを検出する処理のみが実行される。キーから指が離されない限り、キーコードの入力処理は実行されない。すなわち、キー入力制御機能は、タッチスクリーンディスプレイ17上のある第1位置が指などによって触られると、その第1位置に対応するキー第1キーを検出する。さらに、第1位置が指などによって触られている状態でタッチスクリーンディスプレイ17上の別の位置第2位置が指などによって触られると、キー入力制御機能は、その第2位置に対応するキー第2キーも検出する。さらに、第1位置、第2位置がそれぞれ指などによって触られている状態でタッチスクリーンディスプレイ17上の別の位置第3位置が指などによって触られると、キー入力制御機能は、その第3位置に対応するキー第3キーも検出する。これら第1キー、第2キー、第3キー上にそれぞれ3つの指が接触されている状態では、キー入力処理等は実行されない。第1位置、第2位置または第3位置のいずれかと指との接触が解除された時、キー入力制御機能は、この接触の解除の操作リリース操作が入力操作であるか否かを判定するための判定処理を実行する。判定処理は、例えば、接触時間、タッチ衝撃度、接触圧力、接触回数、接触位置の内の少なくともひとつの情報に基づいて実行される。接触時間は、あるキーに指が接触されてからこのキーと指との接触が解除されるまでの時間長である。本実施形態の判定処理では、主としてこの接触時間が用いられる。接触時間は、タッチアンドリリース操作タップ操作に用いられた時間に相当する。タッチアンドリリース操作タップ操作は、あるキーを指でタッチし、その後、指をこのキーから離すという操作である。判定処理では、接触時間が閾時間よりも短いか否かが判定される。接触時間が閾時間よりも短い場合、指との接触が解除されたキーに関連づけられたキーコード、つまりタッチアンドリリース操作されたキーに関連づけられたキーコード、を入力するための入力処理が実行される。一方、接触時間が閾時間よりも短くない場合、入力処理の実行はスキップされ、タッチアンドリリース操作されたキーに関連づけられたキーコードは入力されない。よって、たとえユーザが、目的のキーをタップするために、あるキーの上に置いて休めておいた指をこのキーから離しても、この離されたキーのキーコードは入力されない。多くの場合、この離されたキーの接触時間は閾時間よりも長いからである。また、あるキーの上に指をおいたまま、別の指で別のキーをタッチアンドリリース操作タップ操作することにより、この別のキーに関連づけられたキーコードを正常に入力することができる。さらに、複数の指をホームキーポジションに置いておくことができるので、上述のタッチタイピング操作も可能となる。タッチ衝撃度は、タッチアンドリリース操作タップ操作によってコンピュータ10に加わる衝撃度を示す。本実施形態では、接触時間のみならず、タッチ衝撃度も入力判定のために使用することができる。タッチ衝撃度が閾値よりも大きいことを条件に入力操作が行われたと判定される。これにより、たとえ誤ってユーザの指があるキーに一時的に触れた場合であっても、そのキーのキーコードが入力されることを防止することができる。接触圧力は、あるキーと指との接触の圧力である。キーに指が接触されている面積が大きいほど、接触圧力は大きくなる。したがって、接触圧力を入力判定に使用することも、誤入力を防ぐことを可能にする。接触回数は、同一キーが連続してタップ操作された回数を示す。指の挙動によっては、ある短時間の間に同一キーが連続してタップ操作されたと誤って判定される可能性もある。接触回数を入力判定に使用した場合には、このような連続タップ操作は一つのタップ操作として取り扱われる。接触位置はタップ操作された位置を示す。接触位置を入力判定に使用することにより、タップ操作されたタッチスクリーンディスプレイ17上の位置が、キーが配置された位置であるか否かを判定することができる。よって、接触位置を入力判定に使用することにより、たとえタッチスクリーンディスプレイ17上のキー配置位置以外の位置がタップ操作されても、誤入力が発生することを防ぐことができる。さらに、本実施形態のキー入力制御機能は、仮想キーボード171に対する入力操作状況をユーザにフィードバックするためのフィードバック制御処理も実行する。このフィードバック制御処理では、画像、動画アニメーション、音、振動の少なくとも一つを用いて現在の入力操作状況を示す通知を発生する。例えば、仮想キーボード171上のあるキーが指などでタッチされると、そのタッチされているキーの色は特定の色色1に変化される図2では、色が色1に変化されたキーはハッチングによって示されている。これにより、タッチされたキーそれぞれが検知されていることを、ユーザに知らせることができる。触れられたキーがホームキーポジションの識別に使用される2つの特定のキーFキー、Jキーのいずれかである時には、特定の音を出力するというフィードバックが行われる。例えば、Fキーが指などでタッチされると、ある音音1が出力される。Jキーが指などでタッチされると、別の音音2が出力される。あるいは、Fキーが指などでタッチされたならば、左側のスピーカ18Aから音音1を出力し、Jキーが指などでタッチされたならば、右側のスピーカ18Bから音音2を出力してもよい。この場合、音1と音2は同じ音であってもよい。また、これら音を出力する代わりに、振動を発生するようにしてもよい。タッチアンドリリース操作によってあるキーのキーコードが入力された時接触時間が閾時間よりも短い場合には、そのキーの色は特定の色色2に変化される図2では、色が色2に変化されたキーはダブルハッチングによって示されている。なお、キーコードが入力される度に、キーがタッチされた時に発生される音とは異なる別の音を発生してもよく、またはキーがタッチされた時に発生される振動とは異なる別の振動を発生するようにしてもよい。このようなフィードバック制御処理により、ユーザは、タッチスクリーンディスプレイ17を見なくても、キーをタッチしているか、さらに、指がホームキーポジションの対応するキー上に置かれているか否かが分かる。よって、ユーザによる仮想キーボード171を用いたタッチタイプ操作を支援することができる。図3は、本コンピュータ10のシステム構成を示す図である。本コンピュータ10は、図3に示されるように、CPU101、ノースブリッジ102、主メモリ103、サウスブリッジ104、グラフィクスコントローラ105、サウンドコントローラ106、BIOS-ROM107、LANコントローラ108、不揮発性メモリ109、バイブレータ110、加速度センサ111、無線LANコントローラ112、エンベデッドコントローラEC113、EEPROM114、HDMI制御回路3等を備える。CPU101は、コンピュータ10内の各部の動作を制御するプロセッサである。CPU101は、不揮発性メモリ109から主メモリ103にロードされる、オペレーティングシステムOS201、および各種アプリケーションプログラムを実行する。アプリケーションプログラムには、入力制御プログラム202が含まれている。この入力制御プログラムは、上述の仮想キーボード171を用いてキー入力処理を実行するためのソフトウェアであり、オペレーティングシステムOS201上で実行される。また、CPU101は、BIOS-ROM107に格納されたBIOSも実行する。BIOSは、ハードウェア制御のためのプログラムである。ノースブリッジ102は、CPU101のローカルバスとサウスブリッジ104との間を接続するブリッジデバイスである。ノースブリッジ102には、主メモリ103をアクセス制御するメモリコントローラも内蔵されている。また、ノースブリッジ102は、PCIEXPRESS規格のシリアルバスなどを介してグラフィクスコントローラ105との通信を実行する機能も有している。グラフィクスコントローラ105は、本コンピュータ10のディスプレイモニタとして使用されるLCD17Aを制御する表示コントローラである。このグラフィクスコントローラ105によって生成される表示信号はLCD17Aに送られる。LCD17Aは、表示信号に基づいて映像を表示する。このLCD17A上にはタッチパネル17Bが配置されている。タッチパネル17Bは、LCD17Aの画面上で入力を行うためのポインティングデバイスである。ユーザは、タッチパネル17Bを用いて、LCD17Aの画面に表示されたグラフィカルユーザインタフェースGUI等を操作することができる。例えば、ユーザは、画面に表示されたボタンをタッチすることによって、当該ボタンに対応する機能の実行を指示することができる。HDMI端子2は、外部ディスプレイ接続端子である。HDMI端子2は、非圧縮のデジタル映像信号とデジタルオーディオ信号とを1本のケーブルで外部ディスプレイ装置1に送出することができる。HDMI制御回路3は、HDMIモニタと称される外部ディスプレイ装置1にデジタル映像信号をHDMI端子2を介して送出するためのインタフェースである。つまり、コンピュータ10は、HDMI端子2等を介して、外部ディスプレイ装置1に接続可能である。サウスブリッジ104は、PCIPeripheralComponentInterconnectバス上の各デバイス及びLPCLowPinCountバス上の各デバイスを制御する。また、サウスブリッジ104は、不揮発性メモリ109を制御するためのATAコントローラを内蔵している。サウスブリッジ104は、各種USBデバイスを制御するためのUSBコントローラを内蔵している。さらに、サウスブリッジ104は、サウンドコントローラ106との通信を実行する機能も有している。サウンドコントローラ106は音源デバイスであり、再生対象のオーディオデータをスピーカ18A,18Bに出力する。LANコントローラ108は、例えばIEEE802.3規格の有線通信を実行する有線通信デバイスである。無線LANコントローラ112は、例えばIEEE802.11規格の無線通信を実行する無線通信デバイスである。EC113は、電力管理のためのエンベデッドコントローラを含む1チップマイクロコンピュータである。EC113は、ユーザによるパワーボタンの操作に応じて本コンピュータ10を電源オン/電源オフする機能を有している。次に、図4を参照して、キー入力制御プログラム201の構成を説明する。キー入力制御プログラム201は、タッチ情報受信部301、制御部302、フィードバック処理部303、仮想キーボード表示処理部304を備える。タッチ情報受信部301は、タッチイベントが発生する度に、OS201内のタッチパネルドライバ201Aからその発生したタッチイベントに関する情報を受信することができる。ここで、タッチイベントとは、以下のイベントを示す。イベント1:タッチ数が増えたタッチスクリーンディスプレイ17が指でタッチされたイベント2:タッチ数が減ったタッチスクリーンディスプレイ17から指が離されたイベント3:タッチ状態が変化した指の位置が移動したより詳しくは、タッチイベントには、タッチ開始イベントイベント1、リリースイベントイベント2、および移動イベントイベント3等がある。タッチ開始イベントは、タッチスクリーンディスプレイ17上に外部オブジェクトが接触された時に発生される。すなわち、外部オブジェクトが接触されるタッチスクリーンディスプレイ17上の位置タッチ位置の数が増えた時タッチスクリーンディスプレイ17が指でタッチされた時にタッチ開始イベントが発生される。タッチ開始イベントの情報は、タッチスクリーンディスプレイ17上のタッチ位置の座標情報x,yを含む。リリースイベントは、タッチスクリーンディスプレイ17と外部オブジェクトとの間の接触が解除された時に発生される。すなわち、外部オブジェクトが接触されるタッチスクリーンディスプレイ17上の位置タッチ位置の数が減少した時タッチスクリーンディスプレイ17から指が離された時にリリースイベントが発生される。リリースイベントの情報は、指が離されたタッチ位置の座標情報x,yを含む。移動イベントは、タッチスクリーンディスプレイ17のタッチ位置の座標が変化したとき、例えば、指がタッチスクリーンディスプレイ17に触れたまま移動した時に発生される。移動イベントの情報は、タッチ位置の移動先位置の座標情報x,yを含む。制御部302は、2つの動作モード、つまり、キーボードモードとマウスモードとを有している。キーボードモードは、仮想キーボード171に対するユーザ操作に応じてキーコードを入力する動作モードである。マウスモードは、タッチスクリーンディスプレイ17上の接触位置の移動に応じて、その接触位置の移動の方向および距離を示す相対座標データを出力する動作モードである。制御部302は、キーボードモードを実行するための機能モジュールとして、検出部311、入力制御部312、キーコード送信部313等を備える。検出部311は、タッチ開始イベントタッチ数の増加および移動イベントタッチ状態の変化に応じて、現在タッチされているキーそれぞれを検出する。より詳しくは、検出部311は、タッチスクリーンディスプレイ17の複数の第1位置と外部オブジェクト複数の指それぞれとの接触に応答して、これら複数の第1位置にそれぞれ対応する仮想キーボード171上の複数のキー複数の第1キーを検出する。入力制御部312は、リリースイベント等に応じて、上述の入力判定処理を実行する。より詳しくは、入力制御部312は、上述の複数の第1の位置の内のいずれか一つの第1位置の接触状態の解除に応答して、いずれか一つの第1位置に外部オブジェクトが接触されてから、上述のいずれか一つの第1位置の接触状態が解除されるまでの接触時間が閾時間よりも短いか否かを判定する。接触時間が閾時間よりも短い場合、入力制御部312は、上述のいずれか一つの第1位置に対応する、上述の複数の第1キー内の一つの第1キーに関連づけられたキーコードを入力するための入力処理を実行する。この場合、このキーコードは本コンピュータ10によって実行されるアプリケーションプログラム401などに入力される。接触時間が閾時間よりも短くない場合、入力制御部312は、この入力処理の実行をスキップする。入力判定処理においては、上述のように、接触時間のみならず、タッチ衝撃度等を用いてもよい。タッチ衝撃度は、加速度センサ111によって検知することができる。また、マイクロフォン20によって入力される音の大きさを用いてタッチ衝撃度を検出するようにしてもよい。入力制御部312は、第1および第2の位置のいずれか一方の位置と外部オブジェクトとの接触の解除に応答して、加速度センサ111等のセンサによって検知されたタッチ衝撃度が閾値よりも大きいか否かを判定する。タッチ衝撃度が閾値よりも大きくない場合、入力制御部312は、入力処理の実行をスキップする。キーコード送信部313は、入力されたキーコードを外部機器402に送信する。この場合、入力されたキーコードは、外部機器402との通信を実行する通信部例えば、無線LANコントローラ112等の無線通信デバイスを介して外部機器402に無線送信される。外部機器402はTVのような電子機器である。このキーコード送信部313により、本コンピュータ10を、外部機器402にデータキーコードを入力するための入力デバイスとして機能させることができる。キーコードを外部機器402に送信する機能は、TV上に表示された検索窓などへのテキスト入力時に効果を発揮する。さらに、制御部302は、モード切替部314を備える。このモード切替部314は、制御部302の動作モードを上述のキーボードモードとマウスモードとの間で切り替える。モード切替部314は、タッチスクリーンディスプレイ17上の2つの位置が外部オブジェクトと接触されたことに応答して、これら2つの位置間の距離が閾距離よりも短いか否かを判定する。閾距離は隣接する2つのキー間の距離キーピッチよりも短い値に設定してもよい。2つの位置間の距離が閾距離よりも短い場合、モード切替部314は、制御部302の動作モードを、キーボードモードからマウスモードに切り替える。ユーザは、例えば、2本の指でタッチスクリーンディスプレイ17上の隣接する2点をタッチすることにより、動作モードを、キーボードモードからマウスモードに切り替えることができる。ユーザは、タッチスクリーンディスプレイ17上の2本の指のタッチ位置を移動することにより、画面上のマウスカーソル等を移動させることができる。マウスモードにおいては、2本の指の内の一方の指例えば左側の指でタップ操作が行われると、制御部302は、左クリックを示すイベントをアプリケケーションプログラム401に入力するか、もしくは、左クリックを示すイベントを外部機器402に送信する。また、マウスモードにおいて、2本の指の内の他方の指例えば右側の指でタップ操作が行われると、制御部302は、右クリックを示すイベントをアプリケケーションプログラム401に入力するか、もしくは、右クリックを示すイベントを外部機器402に送信する。マウスモードにおいて、タッチスクリーンディスプレイ17上に接触されている指の数がゼロになると、このモード切替部314は、マウスモードを終了させる。この場合、モード切替部314は、制御部302の動作モードを上述のキーボードモードに戻してもよい。フィードバック処理部303は、サウンドコントローラ106、バイブレータ110、OS201内の表示ドライバ201B等を使用して、上述のフィードバック制御処理を実行する。仮想キーボード表示処理部304は、仮想キーボード171をタッチスクリーンディスプレイ17上に表示する。次に、図5のフローチャートを参照して、入力制御プログラム202によって実行されるキーボード処理の手順の例を説明する。図5のキーボード処理の手順は、例えば、タッチイベントタッチ開始イベント、リリースイベント、移動イベントが発生する度に実行される。図5のフローチャートにおいて、最大タッチ数Nは、現在のタッチ数を示す。タッチ開始イベントの発生時には、最大タッチ数Nは、タッチ開始イベントの発生直後のタッチ数である。リリースイベントの発生時には、最大タッチ数Nは、リリースイベントの発生直前のタッチ数である。タッチイベントが発生した時、つまりタッチ開始イベント、リリースイベント、または移動イベントのいずれかが発生した時、入力制御プログラム202は、現在タッチされているキーボタンそれぞれについて、以下の処理を実行する。入力制御プログラム202は、まず、タッチスクリーンディスプレイ17上のタッチ位置それぞれの座標に基づき、タッチされているキーボタンをそれぞれ検出する。これら検出されたキーボタンには異なる識別子Btnn=1~Nが付与される。そして、検出された個々のキーに対して以下の処理が実行される。入力制御プログラム202は、まず、処理対象のボタンBtnを取得しステップS11、その処理対象のボタンBtnが新たにタッチされたボタンであるか否かを判定するステップS12。タッチ開始イベントが発生し、且つこのタッチ開始イベントによって示されるタッチ位置の座標が、処理対象のボタンBtnの座標に一致する場合、処理対象のボタンBtnは、新たにタッチされたボタンであると判定することができる。ボタンBtnが新たにタッチされたボタンであるならばステップS12のYES、入力制御プログラム202は、ボタンBtnのキーコードまたはキー識別番号をボタンBtnに対応する変数Btn0に格納すると共に、現在時間をボタンBtnに対応する変数Tn0にタッチ開始時間として格納するステップS13。そして、入力制御プログラム202は、新たにタッチされたボタンを特定の色で表示するといったフィードバック処理を実行するステップS14。そして、入力制御プログラム202は、次の処理対象のボタンの処理に移る。処理対象のボタンBtnが新たにタッチされたボタンではないならばステップS12のNO、入力制御プログラム202は、処理対象のボタンBtnがタッチが継続している状態のボタンであるか、あるいはリリースされたボタンであるかを判定するステップS15。タッチが継続している状態は、指がタッチ位置上に止まっている状態、または指がタッチスクリーンディスプレイ17上に接触したまま他のキーに対応する位置に移動した状態に対応する。リリースされたボタンは、指が離された位置に対応するボタンである。リリースイベントが発生し、且つこのリリースイベントによって示されるタッチ位置の座標が、処理対象のボタンBtnの座標に一致する場合、処理対象のボタンBtnは、リリースされたボタンであると判定することができる。処理対象のボタンBtnがタッチが継続している状態のボタンであるならばステップS15のYES、入力制御プログラム202は、処理対象のボタンBtnがすでにタッチされており且つ現在もタッチされているボタン、つまり指が止まっているタッチ位置に対応するボタン、であるか否かを判定するステップS16。ステップS16では、入力制御プログラム202は、処理対象のボタンBtnのキーコードが、処理対象のボタンBtnに対応する変数Btn0にすでに格納されているキーコードと一致するか否かを判定する。これらキーコードが一致するならば、処理対象のボタンBtnは、指が止まっているタッチ位置に対応するボタンであると判定されるステップS16のYES。この場合、入力制御プログラム202は、次の処理対象のボタンの処理に移る。一方、これらキーコードが一致しないならば、処理対象のボタンBtnは、指が移動された先のタッチ位置に対応するボタンであると判定されるステップS16のNO。この場合、入力制御プログラム202は、処理対象のボタンBtn、つまり移動先のボタンの色を変えるなどのフィードバック処理を実行すると共に、処理対象のボタンBtnに対応する変数Btn0を、移動先のボタンのキーコードに変更するステップS17。処理対象のボタンBtnに対応する変数Tn0の値は更新する必要はない。指の移動に起因してキー入力が実行されてしまうことを防止できるようにするためである。そして、入力制御プログラム202は、次の処理対象のボタンの処理に移る。処理対象のボタンBtnがリリースされたボタンであるならばステップS15のNO、入力制御プログラム202は、処理対象のボタンBtnの接触時間等に基づき、処理対象のボタンBtnに対するリリース操作が入力操作であるか否かを判定するための入力判定処理を実行するステップS18。この入力判定処理の手順は図6のフローチャートを参照して後述する。処理対象のボタンBtnに対するリリース操作が入力操作であると判定されたならばステップS19のYES、入力制御プログラム202は、入力操作が行われたことを示す通知をキー色の変化、音または振動等を用いて発生すると共にステップS20、処理対象のボタンBtnに対応する変数Btn0に格納されているキーコードを入力するステップS21。ステップS21では、処理対象のボタンBtnに関連づけられたキーコードに対応する文字がテキストボックス172に表示される。あるいは、処理対象のボタンBtnに関連づけられたキーコードが外部機器402に送信され、外部機器402の画面上に、処理対象のボタンBtnに関連づけられたキーコードに対応する文字が表示される。そして、入力制御プログラム202は、次の処理対象のボタンの処理に移る。処理対象のボタンBtnに対するリリース操作が入力操作であると判定されなかったならばステップS19のYES、入力制御プログラム202は、ステップS20、S21の処理の実行をスキップし、次の処理対象のボタンの処理に移る。なお、リリース操作が入力操作であると判定されなかった場合、入力制御プログラム202は、入力操作が行われなかったこと入力処理のスキップを示す通知を、キー色の変化、音または振動等を用いて発生してもよい。いま、第1のユースケースとして、ユーザがあるキー例えばJキー上に指人差し指を置いたまま、別の指中指で例えばKキーをタップする場合を想定する。この場合、まず、Jキーと人差し指との接触に応答してタッチ開始イベントが発生し、ステップS12、S13の処理によって、Jキーが検出される。そして、Jキーと人差し指とが接触されている状態でKキーと中指が接触されると、タッチ開始イベントが再び発生し、ステップS12、S13の処理によって、Kキーがさらに検出される。右手の中指がKキーから離された時、リリースイベントが発生される。この場合、ステップS18、S19の処理によって、指が離されたKキーの接触時間が閾時間よりも短いか否かが判定される。Kキーの接触時間が閾時間よりも短いならば、Kキーの入力処理が実行される。ここで、ユーザが目的のキー、例えばUキーをタップするために、右手の人差し指をJキーから離した場合を想定する。この場合、リリースイベントが発生され、指が離されたJキーの接触時間が閾時間よりも短いか否かが判定される。このケースでは、通常、Jキーの接触時間は閾時間を超えている。したがって、Jキーの入力処理は実行されない。このように、本実施形態では、あるキーの上に指をおいたまま、別の指で別のキーをタップすることにより、この別のキーに関連づけられたキーコードを正常に入力することができる。また、たとえユーザが、目的のキーをタップするために、あるキーの上に置いて休めておいた指をこのキーから離しても、この離されたキーのキーコードは入力されない。次に、第2のユースケースとして、ユーザの両手の指がホームキーポジションに置かれた場合、つまり、Aキー、Sキー、Dキー、Fキー上に左手の小指、薬指、中指、人差し指が置かれ、Jキー、Kキー、Lキー、;キー上に右手の人差し指、中指、薬指、小指が置かれた場合を想定する。この場合、何回か最大8回のタッチ開始イベントが発生し、タッチスクリーンディスプレイ17上の8つの接触位置それぞれに対応する8つのキーAキー、Sキー、Dキー、Fキー、Jキー、Kキー、Lキー、;キーがそれぞれ検出される。また、各キー毎に、そのキーがタッチされた瞬間の時間が検出される。ここで、ユーザが目的のキー、例えばUキーをタップするために、右手の人差し指をJキーから離した場合を想定する。この場合、リリースイベントが発生され、指が離されたJキーの接触時間Jキーがタッチされたからリリーされるまでの時間が閾時間よりも短いか否かが判定される。通常、Jキーの接触時間は閾時間を超えている。このため、Jキーの入力処理は実行されない。この後、Uキーと右手の人差し指との接触に応答して接触開始イベントが発生され、Uキーが検出される。さらに、Uキーがタッチされた時間が検出される。この直後に、Uキーと右手の人差し指との接触が解除される。この場合、リリースイベントが発生され、指が離されたUキーの接触時間が閾時間よりも短いか否かが判定される。Uキーの接触時間は閾時間よりも短いならば、Uキーの入力処理が実行される。このように、本実施形態では、複数の指をホームキーポジションに置いた状態でタイプ入力操作を行うことができる。次に、図6のフローチャートを参照して、入力判定処理の手順の例を説明する。入力制御プログラム202は、リリースされたボタンの接触時間が閾時間よりも短いか否かを判定するステップS41。ステップS41では、入力制御プログラム202は、現在時間から、リリースされたボタンに対応する変数Tn0に格納されている時間タッチされた時間を減算して、接触時間Now-T0を算出する。そして、接触時間Now-T0が閾時間Tthよりも短いか否かを判定する。接触時間が閾時間よりも短いならばステップS41のYES、入力制御プログラム202は、リリースされたボタンBtnのキーコードが、このボタンBtnに対応する変数Btn0にすでに格納されているキーコードと一致するか否かを判定するステップS42。これは、リリースされたボタンBtnが、タッチアンドリリースされたボタンであることを再確認するためである。リリースされたボタンBtnのキーコードが、このボタンBtnに対応する変数Btn0にすでに格納されているキーコードと一致するならばステップS42のYES、入力制御プログラム202は、リリースされたボタンBtnに対応する接触圧力タッチ圧力が閾値Pthよりも大きいか否かを判定するステップS43。リリースされたボタンBtnに対応する接触圧力タッチ圧力が閾値Pthよりも大きいならばステップS43のYES、入力制御プログラム202は、タッチ衝撃度例えば、リリースイベントが発生した直前の期間に対応するタッチ衝撃度が閾値Ithよりも大きいか否かを判定するステップS44。タッチ衝撃度は、タッチスクリーンティスプレイ17を指で弾くようにタッチタップ操作したかどうかを判定するために使用される。誤って指がタッチスクリーンティスプレイ17に触れた場合は、タッチ衝撃度は低い値になるので、タッチ衝撃度を入力判定に使用することにより、誤入力を低減することができる。タッチ衝撃度の算出には、加速度センサ111を用いることができる。タッチスクリーンティスプレイ17を指でタップすると、X、Y、Zの3軸の加速度の変化量ΔX、ΔY、ΔZが瞬間的に増加する。ΔX、ΔY、ΔZぞれぞれの二乗値の和のルートの値をタッチ衝撃度の値として算出することができる。タッチ衝撃度を検知するためのセンサとして、内蔵マイク20を使用してもよい。タッチスクリーンティスプレイ17を指でタップすると、内蔵マイク20によって収音される音はパルス的な音になる。このパルス的な音の周波数特性は、低域周波数から高域周波数までのパワーが瞬間的に上昇し、そして瞬間的に下がるという特性を有する。したがって、内蔵マイク20によって収音される音の信号を解析することにより、タッチ衝撃度を算出することができる。また、加速度センサ111と内蔵マイク20の双方を用いてタッチ衝撃度を算出してもよい。この場合、タッチ衝撃度の値は、加速度センサ111によって得られる値と音の信号を解析することによって得られる値との線形和によって求めることができる。環境ノイズが大きい場合には、タッチ衝撃度の算出では、音に対する線形和重みを小さくしてもよい。タッチ衝撃度が閾値Ithよりも大きいならばステップS44のYES、入力制御プログラム202は、処理対象のボタンBtnに対するリリース操作が入力操作であると判定するステップS45。一方、ステップS41~S44に対応する4つの条件のいずれかが満たされなかったならば、入力制御プログラム202は、処理対象のボタンBtnに対するリリース操作が入力操作ではないと判定するステップS46。接触時間に加え、タッチ圧力とタッチ衝撃度の双方を入力判定に使用することにより、誤入力を効率よく防止することができる。なお、接触時間のみを用いて入力判定してもよいし、接触時間とタッチ衝撃度とを用いて入力判定してもよいし、接触時間とタッチ圧力とを用いて入力判定してもよい。次に、図7のフローチャートを参照して、入力制御プログラム202によって実行されるモード判定処理とマウス処理の手順の例について説明する。モード判定処理はキーボードモードとマウスモードを切り替えるための処理である。モード判定処理は、例えば、タッチイベントタッチ開始イベント、リリースイベント、移動イベントが発生する度に実行される。タッチイベントが発生した時、つまりタッチ開始イベント、リリースイベント、または移動イベントのいずれかが発生した時、入力制御プログラム202は、現在のタッチ数、つまり現在タッチされているキーの数を検出し、現在のタッチ数がゼロであるか否かを判定する。現在のタッチ数がゼロであるならばステップS51のYES、入力制御プログラム202は、その動作モードをキーボードモードに設定するステップS52。現在のタッチ数がゼロではないならばステップS51のNO、ステップS52の処理はスキップされる。次いで、入力制御プログラム202は、現在の動作モードがキーボードモードであるか否かを判定するステップS53。キーボードモードであるならばステップS53のYES、入力制御プログラム202は、現在のタッチ数が2で且つこれら2つのタッチ位置間の距離が閾距離Dthよりも短いという条件が成立するか否かを判定するステップS54。現在のタッチ数が2で且つこれら2つのタッチ位置間の距離が閾距離Dthよりも短いという条件が成立していないならばステップS54のNO、入力制御プログラム202は、変数Tcntをゼロに初期化しステップS57、そして図5で説明したキーボード処理を実行する。一方、現在のタッチ数が2で且つこれら2つのタッチ位置間の距離が閾距離Dthよりも短いという条件が成立しているならばステップS54のYES、入力制御プログラム202は、これら2つのタッチ位置がほぼ同時にタッチされたか否かを判定するステップS55、S56。ステップS55では、入力制御プログラム202は、これら2つのタッチ位置それぞれがタッチされた時間タッチ開始時間の差ΔTを算出し、差ΔTと現在の変数Tcntの和を、変数Tcntに代入する。現在の変数Tcntはゼロに設定されている。したがって、変数Tcntは差ΔTを示す。ステップS56では、入力制御プログラム202は、変数Tcntが閾値時間Tmthよりも短いか否かを判定する。変数Tcntが閾値時間Tmthよりも短くないならばステップS56のNO、入力制御プログラム202は、図5で説明したキーボード処理を実行する。変数Tcntが閾値時間Tmthよりも短いならばステップS56のYES、入力制御プログラム202は、その動作モードをマウスモードに設定するステップS61。この場合、現在の動作モードがマウスモードであることをユーザに提示するために、画像を表示したり、音を出したり、あるいは振動を発生させてもよい。マウスモードでは、入力制御プログラム202は、2つのタッチ値の代表位置x1,y1を算出する。代表位置x1,y1は2つのタッチ値間の中間位置であってもよい。入力制御プログラム202は、タッチスクリーンディスプレイ17上の代表位置x1,y1の移動に応じて、代表位置x1,y1の移動の距離および方向を示す相対座標データを出力するステップS63、S64。ステップS63では、入力制御プログラム202は、タッチスクリーンディスプレイ17上の代表位置x1,y1が移動されたか否かを判定する。代表位置x1,y1が移動されたならばステップS63のYES、入力制御プログラム202は、ステップS64に進む。そして、入力制御プログラム202は、画面上のマウスカーソルの位置を動かすために、X方向およびY方向それぞれの移動距離を示す相対座標データを入力する。ステップS64では、入力された相対座標データに応じてマウスカーソルを移動する処理が行われる。なお、制御対象が外部機器402である場合には、相対座標データが外部機器402に送信され、外部機器402の画面上のマウスカーソルが移動される。次に、入力制御プログラム202は、左クリックに対応する操作または右クリックに対応する操作が実行されたか否かを判定するステップS64~S68。本実施形態では、タッチスクリーンディスプレイ17上をタッチしている二本の指のいずれか一方の指でタッチスクリーンディスプレイ17が再タッチされたか否かが判定され、その再タッチ操作が、左クリックに対応する操作または右クリックに対応する操作として検出される。タッチスクリーンディスプレイ17上をタッチしている二本の指のいずれか一方の指でタッチスクリーンディスプレイ17を再タッチする操作を行う場合、タッチ数が2から1に一時的に変化し、その直後に、タッチ数が1から2に変化する。本実施形態では、タッチ数の1から2への変化が左クリックまたは右クリックに対応する操作として検出される。すなわち、入力制御プログラム202は、タッチ数が1から2に変化したか否かを判定するステップS65。タッチ数が1から2に変化したならばステップS65のYES、入力制御プログラム202は、追加のタッチ位置新たなタッチ位置が既存のタッチ位置の左側または右側のいずれの側に位置するかを判定するステップS66。追加のタッチ位置が既存のタッチ位置の左側の位置であるならばステップS66のYES、入力制御プログラム202は、左クリックを示すイベントを入力する処理を実行するステップS67。なお、制御対象が外部機器402である場合には、左クリックを示すイベントが外部機器402に送信される。追加のタッチ位置が既存のタッチ位置の右側の位置であるならばステップS66のNO、入力制御プログラム202は、右クリックを示すイベントを入力する処理を実行するステップS68。なお、制御対象が外部機器402である場合には、右クリックを示すイベントが外部機器402に送信される。タッチ数がゼロになるまで、マウスモードは継続される。したがって、マウスモードに一旦遷移された後は、タッチ位置が1に変化しても、その一つのタッチ位置の移動に応じてマウスカーソルを移動させることができる。この場合、その一つのタッチ位置を上述の代表位置として使用すればよい。以上説明したように、本実施形態によれば、タッチスクリーンディスプレイ17上の複数の第1位置と外部オブジェクトそれぞれとの接触に応答して、タッチスクリーンディスプレイ上17の複数の第1位置に対応する仮想キーボード171内の複数の第1キーが検出される。そして、複数の第1位置のいずれか一つの第1位置の接触状態の解除に応答して、いずれか一つの第1位置に外部オブジェクトが接触されてから、いずれか一つの第1位置の接触状態が解除されるまでの接触時間が閾時間よりも短いか否かが判定される。接触時間が閾時間よりも短い場合、いずれか一つの第1位置に対応する、複数の第1キー内の一つの第1キーに関連づけられたキーコードを入力するための入力処理が実行される。したがって、ユーザがある1以上の第1のキー上に指を置いたまま、別の指等で別の第1のキーをタッチアンドリリース操作タップ操作した場合には、この別の第1キーに関連づけられたキーコードを正常に入力することができる。さらに、たとえユーザが、別の第1キーをタッチアンドリリース操作した後に、ある目的のキーをタップするために、ある第1キーの上に置いて休めておいた指をこの第1キーから離しても、この離された第1キーのキーコードは入力されない。よって、複数の指をタッチスクリーンディスプレイ17上に触れた状態で、タイプ入力操作を行うことができる。よって、タッチスクリーンディスプレイ17を用いて容易にキー入力を行うことができる。また、TVなどの他の機器を操作するための入力デバイスとして、タブレットコンピュータ10を利用することが可能となる。なお、本実施形態の処理手順は全てソフトウェアによって実行することができるので、この処理手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムをタッチスクリーンディスプレイを備える通常のコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。"