指トリガ型センサ付マウス
指トリガ型センサ付のコンピュータ入力装置(例えばマウス)である。このセンサは、クリックボタン、トラッキングデバイスおよびスクロールホイールにより生成される従来のマウス信号に加えて入力信号を生成する。前記センサは、光学センサ、タッチ感応型センサまたは他の種類のセンサでもよい。センサにより生成された前記信号は、単独、またはボタン、トラッキングデバイスまたはスクロールホイールにより生成された他の信号との組み合わせのいずれかであり、操作システムおよび/またはアプリケーションプログラムの様々なメッセージを生成するために解釈されてもよい。解釈は、入力装置の回路、ホストコンピュータのドライバプログラム、またはその両方により実行されてもよい。前記センサは、マウス、ポインティングデバイスを有するラップトップ型キーボード、ポインティングデバイスを具える外付けキーボード、または空いているポートを介してコンピュータに電気的に接続可能な独立型デバイスに設けられてもよい。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータ用の入力装置に関し、特に、指で操作可能なセンサを有するマウスまたは他の種類のポインティングデバイスに関する。
【背景技術】
【0002】
従来のコンピュータのポインティングデバイス(マウスとしても知られる)は、ボタン信号を生成する1以上のクリックボタンと、スクロール信号を生成するホイール型のスクロールデバイスと、運動信号を生成する運動トラッキングデバイスとを有する。最も使用されているソフトウェアのGUI(グラフィカルユーザインターフェース)操作のうち2つを実行するため、通常のマウスの複数のボタンのうち、左ボタンが最も使用頻度の高いボタンであり、第1にクリックすることによりオブジェクトを選択し、第2にまずクリックして、左ボタンを押さえながらマウスをドラッグして、ある位置から他の位置へオブジェクトを移動させる。オブジェクトを選択する操作が非常に簡単な一方、ドラッグ操作中ユーザは左ボタンを押さえておかねばならないため、ドラッグ操作は難しくマウス操作を誤りがちである。ユーザの操作を簡単かつ間違えにくくする更に人間工学的な入力装置を設計することで、他の入力操作にも利益があるかもしれない。
【発明の概要】
【0003】
本発明は、関連技術の制限および欠点による1以上の問題を実質的に取り除く、コンピュータの入力装置に関する。
【0004】
本発明の複数の実施形態は、多くの一般のマウス操作を従来のマウスよりも効率的かつ人間工学的に行うために、ポインティングデバイスおよびキーボードといったコンピュータの入力装置と一緒に機能する指トリガ型センサを提供する。指トリガ型センサは、キーボードまたはコンピュータのポインティングデバイス(マウス)に内蔵され、あるいは別個のデバイスとして設計され、コンピュータにインストールされたソフトウェアプログラムを介してキーボードまたはマウス操作と相互に作用することもできる。
【0005】
センサの一適用例は、マウスボタンを全く押すことなくコンピュータスクリーン上のグラフィックオブジェクトをドラッグする代替の方法を提供する。本発明のドラッグ方法は、左ボタンと完全に取って代わるソフトウェアおよびハードウェアが付属されたセンサを使用するため、コンピュータのグラフィックオブジェクトをドラッグする操作を簡単かつ安全にする。
【0006】
本発明のさらなる特徴および利点は以下の説明に記載され、部分的にはこの説明から明らかとなり、あるいは本発明を実施することにより理解されるであろう。本発明の目的および他の利点は、記載された本明細書、その特許請求の範囲また添付の図面において特に指摘された構造により認識かつ達成されるであろう。
【0007】
これらの利点と他の利点の達成と本発明の目的により、例示かつ広く記載したように、本発明はコンピュータの入力装置の動きを追跡するデバイス運動トラッキング機構と;指で押すことにより作動可能な1以上のボタンと;指でトリガ可能なセンサと;を具えるコンピュータの入力装置を提供する。
【0008】
他の態様では、本発明は、コンピュータ入力装置と、このコンピュータ入力装置に接続されたホストコンピュータとを具えるシステムを提供しており、このコンピュータ入力装置は、コンピュータ入力装置の動きを追跡するデバイス運動トラッキング機構と;指で押すことにより作動可能な1以上のボタンと;指でトリガ可能なセンサと;センサの状態の変化を検出して、センサ活性化信号およびセンサ非活性化信号を含む1以上の信号を生成する制御回路とを具え、;前記ホストコンピュータが、前記コンピュータ入力装置からセンサ活性化およびセンサ非活性化信号を受信して対応するセンサ活性化およびセンサ非活性化のメッセージを生成する制御部を具える。
【0009】
本発明は、上記デバイスにより実行される方法も提供する。
【0010】
前述の一般的な説明および後述の詳細の説明は例示的かつ説明的であり、クレームにかかる本発明をさらに説明することを意図している。
【図面の簡単な説明】
【0011】
【図1A】図1Aは、本発明の実施形態による指トリガ型センサ付のマウスを示す。
【図1B】図1Bは、本発明の実施形態による図1Aのマウスの操作を図示する。図1Aはセンサが露出した状態だが、図1Bはセンサが覆われた状態を示している。
【図2】図2は、図1Aのマウスの構成部品を示す概略ブロック図である。
【図3】図3は、ホストに接続した図1Aのマウスを示す概略ブロック図である。
【図4】図4は、本発明のさらなる他の実施形態によるマウスを示す。
【図5】図5は、本発明の実施形態によるタッチ感応型パッドおよび指トリガ型センサ付のラップトップ型キーボードを示す。
【図6A】図6Aは、本発明の他の実施形態によるタッチ感応型パッドおよび複数のセンサ部を有する指トリガ型センサ付のラップトップ型キーボードを示す。
【図6B】図6Bは、本発明の他の実施形態によるタッチ感応型パッドおよび複数のセンサ部を有する指トリガ型センサ付のラップトップ型キーボードを示す。
【図7】図7は、マウスの制御回路によりドラッグアンドドロップ操作を実行する方法を示す。
【図8】図8は、マウスの制御回路によりドラッグアンドドロップ操作を実行する他の方法を示す。
【図9】図9は、マウスドライバによりドラッグアンドドロップ操作を実行する方法を示す。
【図10A】図10Aは、装置のデバイスドライバからアクティブアプリケーションまでのマウス信号の経路を示す。
【図10B】図10Bは、装置のデバイスドライバからアクティブアプリケーションまでのマウス信号の経路を示す。
【図11】図11は、マウスデバイスドライバによって実行される処理の例を示す。
【図12A】図12Aは、ドラッグ操作においてマウスのフックプログラムにより実行される処理の例を示す。
【図12B】図12Bは、ドラッグ操作においてマウスのフックプログラムにより実行される処理の例を示す。
【図13A】図13Aは、ドラッグ操作においてマウスデバイスドライバによって実行される処理の例を示す。
【図13B】図13Bは、ドラッグ操作においてマウスデバイスドライバによって実行される処理の例を示す。
【発明を実施するための形態】
【0012】
本発明の実施形態は、クリックボタンにより生成される従来のボタン信号、運動トラッキングデバイスにより生成される運動信号、およびスクロールホイールにより生成されるスクロール信号に加えて、入力信号を生成する指トリガ型センサ付のマウスとして通常称されるコンピュータの入力装置を提供する。より広義には、このセンサは1以上の指の存在または動きを検出する指トリガ型センサである。本開示で使用される場合、用語「指」は親指を含む。
【0013】
図1A、図1Bおよび図2に示されるように、本発明の実施形態によるマウス10は、左ボタン11と、右ボタン12(任意)と、スクロールホイール13(任意)と、マウスの運動信号を生成するマウスの運動トラッキング機構14(機械式または光学式のいずれか)(図1Aおよび図1Bには図示せず)と、指トリガ型センサ15とを具える。制御回路16は、マウスの様々な構成部品を制御し、これらの構成部品から生成された様々な信号を解釈し、インターフェイス17を介してホストコンピュータに送信される論理信号(時々、プログラムのコンテクストにおいてメッセージと称される)を生成するために提供されている。代替例では、マウス10は様々な構成部品11乃至15により生成された信号をホストコンピュータに送信し、当該ホストコンピュータは信号を解釈して適当なメッセージを生成する好適な回路を具備してもよい。左ボタン11、右ボタン12、スクロールホイール13およびマウスの運動トラッキング機構14は従来の構成部品であり、それらの構造については本明細書でさらに詳しく記載しない。指トリガ型センサ15は、露出した状態から指で覆われた時に1のセンサ信号を生成し、および/または覆われた状態から露出された時に他のセンサ信号を生成する光学式センサ(例えば、LED(発光ダイオード)を用いたもの)として実装されてもよい。センサ15は、非接触の状態から指が接触した時に1のセンサ信号を生成し、および/または接触した状態から指が離れた時に他のセンサ信号を生成するタッチ感応型センサ(例えば、タッチ感応型パッドを用いたもの)として実装されてもよい。温度センサ等のような、他のものを実装することも可能である。下記の説明では、光学式センサが実装例として使用されているが、この説明はタッチ感応型センサまたは他のものにも適用される。
【0014】
図1Aおよび図1Bに示されるように、ユーザは通常、手の親指と小指および/または薬指とでマウス10を握り、左右のマウスボタン11および12を押すのに人差し指および中指を使う。下記の説明では例として右利き用マウスを用いるが、左利き用デバイスとして製造してもよい。本発明の実施形態によると、指トリガ型センサ15は、マウスを握る時に親指が通常置かれる場所に近い、マウス10の左側に配置される。一実施形態では、指トリガ型センサ15は、通常は露出しているが親指を動かすことで覆われる場所に配置される。例えば、図1Aに示されるように、親指の通常の位置より上に配置されてもよい。図1Bで図示されるように、親指がセンサ15を覆うように動いた時に第1のセンサ信号が生成され、親指がセンサを露出するように戻った時に第2のセンサ信号が生成される。他の実施形態(図示せず)では、指トリガ型センサ15は、通常は親指で覆われているが親指を離すことで露出される場所に配置される。親指がセンサ15を露出するように動いた時に第1のセンサ信号が生成され、親指がセンサを覆うように戻った時に第2のセンサ信号が生成される。
【0015】
代替の実施形態では、センサ信号を生成するには2の継続的な指の動きが必要とされる。図1Aおよび図1Bに示されたセンサが通常露出している位置にあるマウス10では、親指がセンサ15を覆うように動き、その後(既定の時間内に)センサを露出するように動いた時にセンサ信号が生成される。同様に、センサが通常覆われる場所にあるマウス10は、親指がセンサ15を露出するように動き、その後(既定の時間内に)センサを覆うように動いた時にセンサ信号が生成される。このような代替の実施形態は、ユーザが意図せず親指を動かしてセンサを覆った場合に、誤ってセンサが作動するのを防ぐ。しかしながら、前段落に記載した実施形態は異なる第1および第2のセンサ信号を生成できるが、代替の実施形態では1のセンサ信号のみが生成される。
【0016】
さらに他の実施形態では、図4に示されるように、指トリガ型センサ15は、2の物理センサ部15aおよび15b(例えば、2のLEDまたは2のタッチ感応型ポイント)を具えており、第1のセンサ部は通常は露出している場所に配置され、第2のセンサ部は通常は親指で覆われている場所に配置される。親指が第1のセンサ部15aを露出すると共に第2のセンサ部15bを覆うように動いた時に第1のセンサ信号が生成され、親指が第1のセンサ部15aを覆うと共に第2のセンサ部15bを露出するように動いた時に第2のセンサ信号が生成される。換言すると、第2のセンサ部15bが覆われる前後の既定の時間内に第1のセンサ部15aが露出された場合に第1のセンサ信号が生成され、第1のセンサ部15aが覆われる前後の既定の時間内に第2のセンサ部15bが露出された場合に第2のセンサ信号が生成される。単一部分に実装した時と比較すると、意図しない親指の動きによって生成された望ましくないセンサ信号を好適に防ぐことが出来るため、2の部分にセンサを実装した時の方が信頼度が高い。
【0017】
代替例では、図1A、図1Bおよび図4に示される実施形態は、人差し指または中指といった、手の他の指を動かすことによって覆われてかつ露出されうる位置にセンサ15が配置されるように変更されてもよい。
【0018】
上述した3つの実施形態(図1A、図1B および図4)では、指トリガ型センサ15は2の状態(覆われたおよび覆われていない)を有しており、センサの状態が変化した時にセンサ信号が生成される。第1のセンサの状態は「ノーマル」状態と呼ばれ、センサ信号を生成する動作をすることなく、ユーザが普通にマウスを握っている時に起こり;第2の状態は「アクション」状態と呼ばれ、センサ信号を生成させるためにユーザが指を動かした時に起こる(2つの部分にセンサを実装している場合、両方が覆われたまたは露出した状態は、未定義状態として無視することができる)。指トリガ型センサ15の「ノーマル」および「アクション」状態は、従来のマウスのクリックボタンが押されていないおよび押された状態に相当すると考えてもよい。指トリガ型センサ15が第1の状態から第2の状態に変化した時に第1のセンサ信号が生成され、センサが第2の状態から第1の状態に変化した時に第2のセンサ信号が生成される。(2のセンサ部を有する実施形態では、第1および第2の状態に加えて、両方のセンサ部が覆われたまたは両方が露出している場合といった、他の未定義状態が存在する。このような実施形態では、既定の時間内に第1の状態から第2の状態またはその逆に変化が起こった時にセンサ信号が生成される。従って、長時間の未定義状態によって状態の変化が中断された場合、信号は生成されない。)便宜上、これら2のセンサ信号は、「センサ活性化」信号 および「センサ非活性化」信号と称する。これらは、従来のマウスにおいてクリックボタンを押下げて放すことにより生成される、ボタンダウンとボタンアップ信号(このような信号は、当業者によってしばしばメッセージと称される)に相当すると考えてもよい。ボタンダウンおよびボタンアップ信号が異なる2の信号であるように、2のセンサ信号は好適には異なる信号(またはトグル信号)である。さらに詳細は以下に記載するが、マウス10は所望の意味を持つ2のセンサ信号を与えるようにプログラムすることができる。
【0019】
指トリガ型センサ15は、ラップトップ型コンピュータのポインティングデバイスのようなマウス以外の他のポインティングデバイスに設けられてもよい。図5は、本発明の実施形態による指トリガ型センサ25を具備したキーボード28およびタッチ感応型パッド形式のポインティングデバイス20を有するラップトップ型コンピュータの一部を示す。ポインティングデバイス20は、タッチ感応型パッド24と、左ボタン21と、右ボタン22(任意)と、タッチ感応型パッド24の近くに位置する光学式センサまたはタッチ感応型センサにより実装された指トリガ型センサ25とを具える。センサ25は、パッド24の左側、右側、上側、または下側に配置されてもよい。指トリガ型センサ25は、好適には2つのセンサ部25aおよび25bを具える。第1のセンサ部25aが覆われて第2のセンサ部25bが露出した時に第1のセンサ状態が規定され、第1のセンサ部25aが露出して第2のセンサ部25bが覆われた時に第2のセンサ状態が規定される。センサの状態が既定の時間内に第1の状態から第2の状態に変化した時に第1のセンサ信号が生成される。その反対が起こった時に第2のセンサ信号が生成される。
【0020】
いくつかのラップトップ型コンピュータは、タッチ感応型パッドの代わりに、シンクパッドのラップトップのトラックポイントのような他のトラッキングデバイスを使っている。上記のセンサ25は、このようなラップトップ型のキーボードにも提供できる。加えて、図5に示されるセンサ構造は、デスクトップ型またはラップトップ型コンピュータ用の外付けキーボードに提供されてもよい。いくつかの外付けキーボードにはポインティングデバイスとしてタッチ感応型パッドおよびボタンが具備されている。上記のセンサ25は、このようなキーボードにも提供できる。上記のセンサ25は、ポインティングデバイスがない通常のキーボードにも提供できる。
【0021】
図6Aおよび図6Bは、ラップトップ型コンピュータのポインティングデバイスに設けられた指トリガ型センサの他の実施形態を示す。4つのセンサ部25a、25b、25cおよび25dが提供されており、一括してセンサ25を構成している。タッチパッド24の各側に2つのセンサ部が配置されている。図6Bに示されるように、ユーザは一方の手の指を使って選択したセンサ部を覆い、通常の方法で他の手の指を使って運動信号を生成させる。さらに、第5のセンサ部25eは、運動信号を生成するのと同じ手の親指で覆うことが可能なキーボードの縁に設けられている。第5のセンサ部25eは、親指で覆われている部分が図6Aに破線で示されている。第5のセンサ部25eを使用することにより、ユーザはセンサ25およびトラッキング運動の両方を制御するのに同じ手を使うことが出来る。トラッキングデバイスは、ユーザが左利きか右利きか、あるいはユーザが様々なタスクを実行するのに同一の手または異なる手を使うのを好むかといったユーザの好みに基づいて、様々なセンサ部が操作可能または操作不能なようにプログラムされてもよい。
【0022】
他の実施形態(図示せず)では、センサは、マウスボタンまたはスクロールホイールを有しない独立型デバイスに提供される。
【0023】
指トリガ型センサ15により生成されたセンサ信号は、クリックボタン11、12、スクロールホイール13および運動トラッキングデバイス14により生成されたボタン信号、スクロール信号および運動信号とは異なる物理信号である。センサ信号(物理信号)は、単独またはマウスの他の構成部品により生成された他の物理センサと組み合せて様々な方法で用いられ、ホストコンピュータに送信する様々な論理信号を生成する。センサ信号または信号の組み合わせの意義は、マウスのハードウェア/ファームウェアにより規定され、または操作システム、マウスのドライバプログラムおよび/またはアプリケーションプログラムによりプログラムで規定されてもよい。特に、センサ信号は従来のマウスに現在ある論理信号(メッセージ)として解釈され、それにより本発明の実施形態による指トリガ型センサを実装するマウスは、現行の従来のマウスのドライバ、操作システムおよびアプリケーションプログラムと互換性を持って使用できる。センサ信号が如何に解釈され利用されるかの例を以下に示す。
【0024】
第1の実施例では、センサ活性化およびセンサ非活性化信号は、従来のマウスの左ボタンダウンおよび左ボタンアップのメッセージとしてそれぞれ解釈される。従って、センサは左ボタンのように機能していると考えることが出来る。これは2つの方法で実行できる。第1に、全てをマウスのハードウェア/ファームウェア内に実装することである。マウスのハードウェア/ファームウェアはセンサの状態の変化を検出し、左ボタンダウンおよび左ボタンアップのメッセージを生成して、ホストコンピュータのマウスドライバに送信する。マウスドライバは、ボタンの代わりにセンサが具えられているとは認識しない。この実装例での利点は、従来のマウスドライバの変更を必要としないことである。この実装例での欠点の1つは、センサをオン/オフする機能がマウスのハードウェアを使用することでしか実行出来ず、ホストコンピュータからは出来ないということである。第2の実行方法は、マウスのハードウェア/ファームウェアおよび改良したホストコンピュータのマウスドライバのソフトウェアを利用することである。マウスのハードウェア/ファームウェアは、ホストコンピュータのマウスドライバにセンサ信号を送信し、マウスドライバは、これらの信号を左ボタンダウンおよび左ボタンアップのメッセージに適宜解釈する。この実装例での利点は、ホストコンピュータのソフトウェアを用いてセンサ機能をオン/オフ出来るという点である。この実装例での他の利点は、後にさらに詳細が記載されるように、ホストコンピュータのマウスのフックプログラムが、様々な操作を実行するために他のキーボードまたはマウス信号と併用してセンサ信号を利用可能になる。
【0025】
第2の実施例では、センサ活性化信号を受信した後、左ボタンダウンのメッセージが生成される前に、既定の時間内に少なくとも多少のマウス運動を必要とし、さもなくばセンサ活性化信号は無視される。ユーザが意図せずにセンサを作動させた場合、マウスを動かさずに停止させれば、左クリック(左ボタンアップが続く左ボタンダウン)メッセージは操作システムおよび/またはアクティブアプリケーションに送信されないので、この実施例は第1の実施例よりも安全かつ簡単に利用できる。ラップトップ型タッチパッドまたはタッチパッドのマウスを具えたキーボードにセンサが設けられた場合、この機能は特に便利である。やはり、この実施例は2つの方法で実行できる。第1に、全てをマウスのハードウェア/ファームウェア内に実装することである。マウスのハードウェア/ファームウェアがセンサ活性化信号の後の既定の時間内に少なくとも多少のマウスの運動信号を検出した場合、左ボタンダウンのメッセージを生成して、ホストコンピュータのマウスドライバに送信する。第2の実装例は、マウスのハードウェア/ファームウェアおよび変更したホストコンピュータのマウスドライバのソフトウェアを利用する。マウスのハードウェア/ファームウェアはセンサ活性化およびセンサ非活性化信号、およびマウスの運動信号を送信し、ホストコンピュータのマウスドライバを検出する。マウスドライバが、センサ活性化信号の後の既定の時間内に少なくとも多少のマウスの運動信号を受信した場合、左ボタンダウンのメッセージを操作システムおよび/またはアクティブアプリケーションに送信して;さもなければセンサ活性化信号を無視する。第1および第2の実装例は、第1の実施例における第1および第2の実装例と同様の利点および欠点を有している。
【0026】
上記の第2の実施例は機械式のマウスボタン、特に非常に高感度ボタンに利用できることに留意されたい。換言すると、このようなボタンからのボタンダウンの物理信号は、多少のマウスの運動信号が後に続かない限り無視され、そうでない場合はボタンダウンのメッセージが生成される。
【0027】
第3の実施例では、センサは図4に示されるような2部分のセンサである。図1Aおよび図1Bに示した1部分のセンサを上回る利点を有する。1部分のセンサを利用すると、ユーザが最初にマウスをつかんだ時に、つかんだ動作の後にセンサを覆ってマウスを動かしてしまった場合は左ボタンダウンのメッセージが誤って生成される。2部分のセンサを利用すると、このように左ボタンダウンのメッセージが誤って生成されないようになる。この例示は2つの方法で実行できる。やはり、第1に、全てをマウスのハードウェア/ファームウェア内に実装することである。マウスのハードウェア/ファームウェアは両方のセンサ部(および任意でマウスの運動信号)からのセンサ信号を検出し、左ボタンダウンおよび左ボタンアップのメッセージを生成して、ホストコンピュータのマウスドライバに送信する。第2の実装例は、マウスのハードウェア/ファームウェアおよび改良したホストコンピュータのマウスドライバのソフトウェアを利用する。マウスのハードウェア/ファームウェアは、センサ信号(および任意でマウスの運動信号)を送信して、ホストコンピュータのマウスドライバを検出し、マウスドライバはこれらの信号を左ボタンダウンおよび左ボタンアップのメッセージに適宜解釈する。第2の実装例の利点の1つは、ボタンアップ/ダウンのメッセージの生成を制御する特定のパラメータがプログラムできる点である。前述したように、2部分のセンサを利用する時、センサ活性化またはセンサ非活性化信号を生成させるために既定の時間内で1のセンサ部を覆い、かつ他のセンサ部を露出させねばならない。この時間間隔は、第2の実装例においてプログラム可能である。第1の実装例が利用された場合、この時間間隔はマウスのハードウェア/ファームウェアにより既定される。
【0028】
第4の実施例では、センサ信号は、操作システムおよび/またはアプリケーションプログラム用のセンサ活性化およびセンサ非活性化メッセージを生成するために利用される。これらのメッセージは、従来のマウスのボタンまたはマウスホイールにより生成された従来のマウスのメッセージに追加される。従来のマウスのメッセージをアクティブアプリケーションプログラムに転送するのに利用したのと同じメッセージ通信路を通って、センサ活性化およびセンサ非活性化メッセージはアクティブアプリケーションのソフトウェアに転送される。これらの通信路は図10Aおよび図10Bに示され、さらに詳細は後述する。操作システムおよび/またはアプリケーションプログラムは、従来のマウスにはない機能を実行するためにセンサ活性化およびセンサ非活性化メッセージを利用することが出来る。この実施例は2つの方法で実施することが出来る。第1に、全てをマウスのハードウェア/ファームウェア内に実装することである。マウスのハードウェア/ファームウェアはセンサの状態の変化を検出して、センサ活性化およびセンサ非活性化メッセージを生成し、ホストコンピュータのマウスドライバに送信する。第2の実装例は、マウスのハードウェア/ファームウェアおよび変更したホストコンピュータのマウスドライバのソフトウェアを利用する。マウスのハードウェア/ファームウェアはホストコンピュータのマウスドライバにセンサ活性化およびセンサ非活性化信号を送信し、マウスドライバはこれらの信号を解釈し、マウスの運動またはマウスのボタン信号(任意)といった他のマウス信号と共に、センサ活性化およびセンサ非活性化メッセージを生成する。第2の実装例の利点は、マウスドライバがマウスからの様々な信号をどのように解釈するかをユーザが構築可能にする。これは、ユーザに幅広い自由度をもたらす。
【0029】
第5の実施例では、センサ信号は、第4の実施例のように操作システムおよび/またはアプリケーションプログラム用のセンサ活性化およびセンサ非活性化メッセージを生成するために利用されるが、センサ活性化およびセンサ非活性化メッセージを認識しないプログラムとの互換性を与える。この実施例では、センサ活性化メッセージの直後に左ボタンダウンのメッセージが生成され、センサ非活性化メッセージの直後に左ボタンアップのメッセージが生成される。センサ活性化およびセンサ非活性化メッセージを認識するプログラムでは、直後の左ボタンダウンおよび左ボタンアップのメッセージは無視される。センサ活性化およびセンサ非活性化メッセージを認識しないプログラムでは、プログラムは代わりに左ボタンダウンおよび左ボタンアップ信号に通常通り応答することが求められる。この方法では、マウスは「下位互換性」において利用することが出来る。
【0030】
実用的な適用例では、指トリガ型センサ15によって生成されたセンサ信号がドラッグアンドドロップ操作を実行する場合を以下に記載する。従来のマウスを利用すると、まずドラッグするオブジェクト(例えばアイコン)をマウスポインタで指示し、左ボタンを押し、左ボタンを押したままマウスポインタを所望の位置まで移動させ、ポインタが所望の場所(例えば、目標のアイコン上)にある時に左ボタンを放すことにより、ドラッグアンドドロップが実行される(選択したテキストまたは画像の領域はドラッグした形状で示されることに留意する)。時々、ユーザはポインタが所望の位置に達する前に誤って左ボタンを放してしまい、オブジェクトが間違った場所にドロップされてしまう。本発明の実施形態によると、指トリガ型センサはドラッグアンドドロップをさらに便利かつ間違えにくい方法で実行するために使用することが出来る。さらに具体的には、ユーザは普通の状態でマウスを握り、ドラッグするオブジェクトをマウスポインタで指示し、親指を動かしてセンサ活性化信号を生成させる。ユーザは、マウスポインタが所望の目標位置に来るまで親指をその位置に置いたままマウスを動かし、親指を通常握る位置に戻してセンサ非活性化信号を生成させる。指トリガ型センサ15を利用したこのようなドラッグアンドドロップ操作は、ユーザがボタンを押したままでいる必要がないため実行するのが簡単である。これはさらに人間工学的であり、操作の信頼度をより高める。
【0031】
図7は、本発明の実施形態によるドラッグアンドドロップ操作において、マウスの制御回路16により実行される方法を図示している。制御回路16がセンサ活性化信号を受信した時(ステップS71)、左ボタンダウン信号(従来のマウスにより生成される信号)をホストに送信する(ステップS72)。マウスの制御回路16はその後、運動信号を受信してホストに送信する(ステップS73およびS74)。センサ非活性化信号を続いて受信した時(ステップS75)、制御回路16は左ボタンアップ信号(従来のマウスにより生成された他の信号)をホストに送信する(ステップS76)。この実施例では、センサ15は従来のマウスの左ボタンをシミュレートしているとみなすことが出来る。ホストが受信する次の信号(左ボタンダウン、マウス運動、左ボタンアップ)は、ドラッグアンドドロップ操作を実行する従来のマウスによって生成された連続の信号として識別される。
【0032】
図8は、本発明の他の実施形態によるドラッグアンドドロップ操作において、マウスの制御回路16により実行される代替の方法を図示している。制御回路16が最初にセンサ活性化信号を受信する時(ステップS81)、信号を記録するが(例えば、レジスタ値を変更する等)(ステップS82)、ホストコンピュータには信号を送信はしない。1以上のマウスの運動信号を続いて受信した時(ステップS83)、左ボタンダウン信号(従来のマウスにより生成される信号)および運動信号がホストに送信される(ステップS84)。追加の運動信号を受信した場合(ステップS85)、ホストに送信される(ステップS86)。センサ非活性化信号を続いて受信した時(ステップS87)、制御回路16は左ボタンアップ信号(従来のマウスにより生成された他の信号)をホストに送信する(ステップS88)。このように、ホストが受信した連続の信号(左ボタンダウン、マウス運動、左ボタンアップ)は、ドラッグアンドドロップ操作を実行する従来のマウスによって生成された連続の信号として識別される。
【0033】
センサ信号を解釈するためにマウス10において回路16を利用する利点は、従来のマウスデバイス、マウスドライバ、およびアプリケーションプログラムと互換性がある点であり、新しいマウスの設計を実現するためにホストコンピュータのオペレーティングシステムを変更する必要がない。代替の実施形態では、図3に概略図が示されるように、マウスの回路16は従来のマウス信号ではなくセンサ活性化およびセンサ非活性化の事象を示す論理信号をホストコンピュータに送信する。ホストコンピュータ30のマウスドライバのプログラム31はこれらの信号を受信し、操作システム32および/またはアプリケーションプログラム33用の従来のマウス信号(例えば、左ボタンダウン等)を生成する。換言すると、ドライバプログラム31は図8に示されるステップS81乃至S88と同様のステップを実行する。この実施形態は、従来型ではないマウスドライバをホストコンピュータにインストールする必要がある。図9はこのような方法のステップを図示している。このステップは、回路16の代わりにドライバのプログラム31によって実行されていることを除いて図8に示すステップと同様であり、詳細は再度説明しない。ユーザにとって、ドラッグアンドドロップする一連の操作は、図7および図8に図示された方法と同様である。
【0034】
さらに他の代替の実施形態では、図3にも概略的に示されているように、マウスドライバのプログラム31は、直接利用のためにセンサ活性化およびセンサ非活性化信号を操作システムプログラムおよび/またはアプリケーションプログラムに送信する。この実施形態は、従来の操作システムプログラムおよび/またはアプリケーションプログラムに特定の変更を加える必要がある。この実施形態の利点は、従来のマウスにより生成されるよりも多い種類のマウス信号を供給し、操作システムおよび/またはアプリケーションプログラムをさらに自由に制御可能にする。本発明の実施形態によるマウスは広く受け入れられ、センサ信号は操作システムおよび/またはアプリケーションプログラムに組み込まれた一部となるであろう。
【0035】
上記の実用的な適用例では、センサは従来のマウスにより生成された、シミュレートされた左ボタンダウンと左ボタンアップのメッセージを生成するのに用いられている。上記で指摘したように、センサは従来のマウスでは生成されないメッセージを生成するために使用することもできるため、アプリケーションプログラムはさらに多くの機能を実行可能にする。例えば、Adobe(商標登録)Reader(商標登録)では、ユーザがそれぞれテキストを選択および画像領域を選択出来るように、一般に「選択ツール」ボタンおよび「スナップショットツール」ボタンがツールバー上に設けられている。ユーザが「選択ツール」ボタンをクリックした場合、左マウスボタンを用いたドラッグシーケンスがテキストを選択し;ユーザが「スナップショットツール」ボタンをクリックした場合、同じドラッグシーケンスが画像領域を選択する。センサ付のマウスを利用すると、例えばセンサを用いたドラッグシーケンスがテキストを選択し、左マウスボタンを用いたドラッグシーケンスが画像領域を選択してもよい。これにより「選択ツール」および「スナップショットツール」ボタンをクリックする必要がなくなる。他の例のように、インターネットエクスプローラといった多くのウェブブラウザは、テキストを選択するのに左マウスのボタンでシーケンスをドラッグするが、(Adobe(商標登録)Reader(商標登録)における「手のひらツール」のように)ドラッグシーケンスでウィンドウ内で画像を移動させる方法はない。センサ付のマウスを利用した場合、センサを利用したドラッグシーケンスを用いて画像をスクロールするようにしてもよい。
【0036】
他の実践的な適用例では、タッチパッドマウス付のラップトップ型キーボード上の2部分のセンサ(図5参照)は、簡単かつ正確なドラッグ操作に役立つようにドラッグ操作に利用される。第1のセンサ部15が覆われた時(両センサ部は通常は露出していると仮定する)、左ボタンダウンのメッセージが生成される。第1のセンサ部がその後すぐに露出された場合、ドラッグを終了すべく左ボタンアップのメッセージが生成される。これは、短くかつ突然のドラッグ操作に役立つ。しかしながら、第1のセンサ部がまだ覆われている間に第2のセンサ部が覆われた場合、すなわちユーザが指を伸ばして両センサ部を同時に覆った場合、左クリックのロックモードが展開される。左クリックのロックモードでは両センサ部が露出しても左ボタンアップのメッセージは生成されないため、ユーザはポインタを動かすことでドラッグ操作を実行できる。1つのセンサ部が再度覆われた時(または任意のボタンがクリックされたとき)、ドラッグ処理を終了するよう左ボタンアップのメッセージが生成される。このような左クリックのロックモードは、長いドラッグまたは正確性を必要とするドラッグ操作に役立つ。この実施例では、様々なメッセージがマウスのハードウェア/ファームウェアまたはホストコンピュータによって生成されてもよい。
【0037】
マウスドライバのプログラムは上に例示したが、マウスドライバと操作システムとの間のフックプログラムが適宜または必要に応じて利用されてもよい。例えば、センサ活性化メッセージの意味はメッセージが生成された時にマウスのカーソルがどこに位置しているかによってもよい。従って、フックプログラムは、適当なメッセージが適当なアプリケーションプログラムに送信されるように利用されてもよい。マウスドライバおよびフックプログラムは、マウスのメッセージを制御するソフトウェアとして一括して参照されてもよい。
【0038】
図10Aは、フックプログラムがインストールされていない場合における、デバイスドライバからアクティブアプリケーションまでのマウス信号の経路上の様々な構成部品を図示している。マウスのハードウェアは、マウス信号をマウスデバイスドライバに送信する。マウスデバイスドライバのソフトウェアは、マウス信号を左ボタンダウンのメッセージ、左ボタンアップのメッセージ、右ボタンダウンのメッセージ、右ボタンダウンのメッセージ、ホイールのメッセージ等といったマウスのメッセージに解釈する。マウスのメッセージ発信モジュールは、マウスデバイスドライバから生成されたマウスのメッセージを一度に1つ受信し、このマウスメッセージを受信するアプリケーションを決定して、そこにマウスメッセージを送信する。アクティブアプリケーションプログラムは、マウスのメッセージを受信し、マウスのメッセージに基づいて適当な操作を実行する。図10Bは、1以上のフックプログラムがインストールされている場合における、デバイスドライバからアクティブアプリケーションまでのマウス信号の経路上の様々な構成部品を図示している。図10Bのマウスのハードウェア、マウスデバイスドライバおよびマウスのメッセージ発信モジュールは、図10Aにおける対応する構成部品と類似している。多くのマウスのフックプログラムが、マウスのメッセージ発信モジュールとアクティブアプリケーションプログラムとの間に挿入されている。各マウスのフックプログラムは、アクティブアプリケーションがメッセージを受信するのを妨害する、あるいはメッセージを変更して、アクティブアプリケーションプログラムに送信されるマウスのメッセージを処理することができる。多くのマウスのフックプログラムは連続的に機能する。アクティブアプリケーションプログラムは、最後のマウスのフックプログラムからマウスのメッセージを受信し、マウスのメッセージに基づいて適当な操作を実行する。インストールされた多くのマウス/キーボードのフックプログラムは、OSに同時に存在しうるということに留意されたい。一連の最後のフックプログラムは、他のフックプログラムで実行される論理またはアルゴリズムを無効化できるため、最も重要となる。フックプログラムは広く利用され;アクティブアプリケーションに処理される前にマウスまたはキーボードのメッセージを制御する手段となりうるため有用である。フックプログラムの欠点の1つは、安全性のリスクを招きうることである。
【0039】
1つのマウスのハードウェアユニットのみ図10Bに示されているが、複数のユニット(マウス)がコンピュータに接続できることに留意されたい。現在のセンサの状態を認識するマウスのフックプログラムを利用する利点の1つは、コンピュータが従来のマウスおよび本発明によるセンサ付のマウスの両方に接続されている場合、様々な操作を達成するためにマウスのフックプログラムによって両方のマウスからの信号を組み合わせられることである。換言すると、センサ付のマウスにより生成されたセンサ信号を利用する従来のマウス用の方法を提供する。例えば、ユーザが本発明のセンサを具えるラップトップを利用し、かつ当該ラップトップに接続した外付けの従来のマウスがある場合、彼または彼女が外付けマウスを動かしている間、ラップトップ上のセンサを単に覆うだけでドラッグ操作を実行できる。
【0040】
マウスのフックプログラムを利用する他の利点は、何れのアプリケーションがセンサ活性化およびセンサ非活性化メッセージに影響され、何れのアプリケーションがこれらのメッセージで実行されるかを、ユーザが選択的に決めることが出来る点である。例えば、ユーザは、いくつかの「過敏な」アプリケーションがセンサ活性化およびセンサ非活性化メッセージに反応しないよう希望する場合がある。これを達成するため、ユーザは何れのアプリケーションプログラムがセンサ活性化およびセンサ非活性化メッセージに影響されるまたは影響されないかを指定する。その後、マウスのフックプログラムがセンサ活性化またはセンサ非活性化メッセージを受信した時、プログラムで何れのアプリケーションが作動しているかを確認し、ユーザの指定に基づいてアクティブアプリケーションにメッセージを転送するか否かを決定する。換言すると、マウスのフックプログラムは、何れのアプリケーションプログラムがこれらのメッセージに影響されるかのユーザの指示に基づいて、センサ活性化およびセンサ非活性化メッセージをアクティブアプリケーションプログラムに選択的に転送することが出来る(例えば、後述する図12Bにおけるステップ1209Aを参照)。マウスのフックプログラムがユーザモードで実行されている間はカーネルモードで動作するため、デバイスドライバではこの機能を達成できないことに留意されたい。
【0041】
さらに本発明の他の実施形態では、カーソルがスクロールバー(ユーザは、マウスを左クリックしドラッグして、ウィンドウの内容を上/下、左/右にスクロールできるが、データは変更出来ない領域)またはキャプションバー(ユーザがアプリケーションウィンドウを四方にドラッグできる領域)といった、アプリケーションウィンドウの特定の部分に配置されている時のみ「過敏な」アプリケーションがセンサ活性化およびセンサ非活性化信号に影響されるようにすることも可能である。ファイルおよびフォルダアイコンが含まれているウィンドウのクライアントエリアのような、マウスのカーソルがオブジェクトを編集または再配置できるアプリケーションの領域に配置されている時、センサ活性化およびセンサ非活性化信号はこのアプリケーションソフトウェアに影響を及ぼすことは出来ないであろう。
【0042】
図11は、図10Bに示されたマウス信号の経路上のマウスデバイスドライバにより実行される処理の例を図示している。マウスデバイスドライバは指トリガ型センサを具えるマウスのハードウェアから信号を受信し、解釈し、メッセージをマウスのメッセージ発信モジュールに送信し、さらにマウスのフックプログラムにそれらを転送する。より具体的には、マウスデバイスドライバが指トリガ型センサ付のマウスのハードウェアから信号を受信した時(ステップS1101)、信号がセンサ活性化信号(ステップS1102における「Yes」)の場合、ドライバはセンサ活性化メッセージをマウスのメッセージ発信モジュールに送信する(ステップS1103)。一方、信号がセンサ非活性化信号(ステップS1102における「No」およびステップS1104における「Yes」)の場合、ドライバはセンサ非活性化メッセージをマウスのメッセージ発信モジュールに送信する(ステップS1105)。マウスのハードウェアから受信した信号が、センサ活性化信号でもセンサ非活性化信号でもない場合(ステップS1104における「No」)、例えば信号は左ボタン信号、右ボタン信号、マウスの運動信号、またはホイール信号といった従来のマウス信号の場合、対応するマウスのメッセージに変換され、マウスのメッセージ発信モジュールに転送する(ステップS1106)。マウスデバイスドライバはその後、他のハードウェアのマウス信号をポーリングする(ステップS1107)。
【0043】
図12Aおよび図12Bは、ドラッグ操作においてマウスのフックプログラムで実行される処理の例を図示している。この例では、マウスのフックプログラムはマウスのメッセージ発信モジュールからのメッセージを傍受し、センサの状態およびマウスの運動メッセージのタイミングにより左ボタンダウンまたはアップメッセージをシミュレートするために分析し、適切なメッセージをアクティブアプリケーションに転送する。フックプログラムにより傍受されたマウスのメッセージは、OSに接続されたマウスから発信されることもある。従って、例えば2つのマウスがOSに接続されており、一方は指トリガ型センサ付で、もう一方は実装していない場合、2つのマウスからの様々な信号はドラッグ操作を完成させるために連動させることが出来る。例えば、ユーザは一方のマウスでセンサを覆い、ドラッグ操作を達成するためにもう一方のマウスを動かしてもよい。2つのマウスの一方は、指トリガ型センサが具えられたラップトップ型コンピュータのタッチパネルでもよい。下記では、用語「マウス」を便宜上使用するが、指定がない限りは任意の好適なコンピュータのポインティングデバイスについて広く言及しているということを理解されたい。
【0044】
図12Aおよび図12Bに示されるように、マウスのフックプログラムはまず、偽(false)のドラッグフラグを立てる(ステップS1201)。その後、マウス(1以上ある場合は、コンピュータに接続されているマウスのうち1つでよい)からマウスのメッセージ発信モジュールを介して転送されたマウスのメッセージを解釈する(ステップS1202)。マウスのメッセージがセンサ活性化メッセージの場合(ステップS1203における「Yes」)、マウスのフックプログラムは真(true)のセンサ活性化フラグを立てる(ステップS1204)。一方、マウスのメッセージがセンサ非活性化メッセージの場合(ステップS1203における「No」およびステップS1205における「Yes」)、マウスのフックプログラムは偽のセンサ活性化フラグを立て(ステップS1206)、ドラッグ処理を終了するため左ボタンアップのメッセージをシミュレートしてアクティブアプリケーションに転送する(ステップS1207)。マウスのメッセージが、センサ活性化メッセージでもセンサ非活性化メッセージでもなく(ステップS1205における「No」)、マウス運動のメッセージの場合(ステップS1208における「Yes」)、マウスのフックプログラムはセンサ活性化フラグが真か偽かを決定する(ステップS1209)。センサ活性化フラグが真の場合、マウスのフックプログラムはさらに、アクティブアプリケーション用に左ボタンダウンのメッセージをシミュレートするか否かを決定する(ステップS1209A)。このステップは任意である。前述のように、ユーザは、何れのアプリケーションがセンサに影響されるかを指定できる。ステップS1209Aにおけるこの決定は、アクティブアプリケーションのプログラムがセンサに影響されるか影響されないかについてユーザが指定したものか否かに基づいている。ステップS1209Aにおける決定が肯定的である場合、ドラッグ処理を開始するためにマウスのフックプログラムは左ボタンダウンのメッセージをシミュレートし、アクティブアプリケーションに転送(ステップS1210)して、その後マウス運動のメッセージをアクティブアプリケーションに転送する(ステップS1211)。センサ活性化フラグが偽の場合(ステップS1209における「No」)、または活性化プログラムがセンサに影響されないものである場合(ステップS1209Aにおける「No」)、マウスのフックプログラムは単にマウス運動のメッセージをアクティブアプリケーションに転送する(ステップS1211)。ステップS1208において、マウスのメッセージがマウス運動のメッセージではない場合(「No」)、例えばこのメッセージが従来の左ボタンのメッセージ、右ボタンのメッセージ、またはホイールのメッセージの場合、マウスのフックプログラムは単にメッセージをアクティブアプリケーションに転送する(ステップS1212)。メッセージをアプリケーションプログラムに転送した後(すなわちステップS1207、S1211およびS1212の後)、マウスのフックプログラムは他のマウスのメッセージを傍受する。
【0045】
図13Aおよび図13Bは、図12Aおよび図12Bに示された処理と同様のドラッグ操作の例を図示しているが、図12Aおよび図12Bのようにマウスのフックプログラムではなく、マウスデバイスドライバによってステップが実行されている。ステップS1301乃至S1312は、マウスデバイスドライバから受信したマウスのメッセージではなくマウスのハードウェアから受信したマウス信号で実行するステップS1303、S1305およびS1308を除いて、図12Aおよび図12BのS1201乃至S1212と類似している。さらに、図13Bにおける処理は、図12BにおけるステップS1209Aに対応する決定ステップを含まない。さらに、ステップS1312は、マウス信号を対応するマウスのメッセージに変換する操作を含む。図13Aおよび図13Bのさらに詳しい説明は省略する。
【0046】
ホストPCに接続されている各マウスは、独自のデバイスドライバを有しており、マウスデバイスドライバは通常、相互に影響し合わないことに留意されたい。従って、図13Aおよび図13Bに示された処理では、OSに接続されている2つのマウスは図12Aおよび図12Bの処理で実現する方法で互いに協力することができない。
【0047】
図11、図12A、図12Bおよび図13A、図13Bに示された以上の実施例は、指トリガ型センサ付のマウスから発信される処理信号には有用だが、同様の方法は、従来の左および右ボタンと異なる特殊なボタンを有するマウスといった、異なる種類のマウスから発信される特殊な信号を処理するためにも利用できることに留意されたい。このような方法を実行するためには、図12A、図12Bおよび図13A、図13Bは、「センサ活性化信号/メッセージ」から「特殊なボタンダウン信号/メッセージ」に変更、「センサ非活性化信号/メッセージ」から「特殊なボタンアップ信号/メッセージ」に変更、および「センサ活性化フラグ」から「特殊なボタン活性化フラグ」に変更する等、多少変更する必要がある。さらに詳しい説明は省略する。
【0048】
図1Aに示されるように、センサをオンまたはオフするスイッチ19がマウス10に設けられてもよい。代替例またはスイッチ19に追加して、マウスのハードウェア/ファームウェアがホストコンピュータおよびホストコンピュータのマウスドライバにセンサ信号を送る実装例では、これらの信号を適当なメッセージに解釈して、マウスドライバはセンサ機能をオンまたはオフするように構成されてもよい。
【0049】
様々な改良例および変形が、本発明の指トリガ型センサ付のマウスについて本発明の精神および範囲を超えることなく実行できることは当業者において自明である。従って、本発明は、添付の特許請求の範囲およびその同等品の範囲内で成立する改良例および変形を包含することを意図している。
【技術分野】
【0001】
本発明は、コンピュータ用の入力装置に関し、特に、指で操作可能なセンサを有するマウスまたは他の種類のポインティングデバイスに関する。
【背景技術】
【0002】
従来のコンピュータのポインティングデバイス(マウスとしても知られる)は、ボタン信号を生成する1以上のクリックボタンと、スクロール信号を生成するホイール型のスクロールデバイスと、運動信号を生成する運動トラッキングデバイスとを有する。最も使用されているソフトウェアのGUI(グラフィカルユーザインターフェース)操作のうち2つを実行するため、通常のマウスの複数のボタンのうち、左ボタンが最も使用頻度の高いボタンであり、第1にクリックすることによりオブジェクトを選択し、第2にまずクリックして、左ボタンを押さえながらマウスをドラッグして、ある位置から他の位置へオブジェクトを移動させる。オブジェクトを選択する操作が非常に簡単な一方、ドラッグ操作中ユーザは左ボタンを押さえておかねばならないため、ドラッグ操作は難しくマウス操作を誤りがちである。ユーザの操作を簡単かつ間違えにくくする更に人間工学的な入力装置を設計することで、他の入力操作にも利益があるかもしれない。
【発明の概要】
【0003】
本発明は、関連技術の制限および欠点による1以上の問題を実質的に取り除く、コンピュータの入力装置に関する。
【0004】
本発明の複数の実施形態は、多くの一般のマウス操作を従来のマウスよりも効率的かつ人間工学的に行うために、ポインティングデバイスおよびキーボードといったコンピュータの入力装置と一緒に機能する指トリガ型センサを提供する。指トリガ型センサは、キーボードまたはコンピュータのポインティングデバイス(マウス)に内蔵され、あるいは別個のデバイスとして設計され、コンピュータにインストールされたソフトウェアプログラムを介してキーボードまたはマウス操作と相互に作用することもできる。
【0005】
センサの一適用例は、マウスボタンを全く押すことなくコンピュータスクリーン上のグラフィックオブジェクトをドラッグする代替の方法を提供する。本発明のドラッグ方法は、左ボタンと完全に取って代わるソフトウェアおよびハードウェアが付属されたセンサを使用するため、コンピュータのグラフィックオブジェクトをドラッグする操作を簡単かつ安全にする。
【0006】
本発明のさらなる特徴および利点は以下の説明に記載され、部分的にはこの説明から明らかとなり、あるいは本発明を実施することにより理解されるであろう。本発明の目的および他の利点は、記載された本明細書、その特許請求の範囲また添付の図面において特に指摘された構造により認識かつ達成されるであろう。
【0007】
これらの利点と他の利点の達成と本発明の目的により、例示かつ広く記載したように、本発明はコンピュータの入力装置の動きを追跡するデバイス運動トラッキング機構と;指で押すことにより作動可能な1以上のボタンと;指でトリガ可能なセンサと;を具えるコンピュータの入力装置を提供する。
【0008】
他の態様では、本発明は、コンピュータ入力装置と、このコンピュータ入力装置に接続されたホストコンピュータとを具えるシステムを提供しており、このコンピュータ入力装置は、コンピュータ入力装置の動きを追跡するデバイス運動トラッキング機構と;指で押すことにより作動可能な1以上のボタンと;指でトリガ可能なセンサと;センサの状態の変化を検出して、センサ活性化信号およびセンサ非活性化信号を含む1以上の信号を生成する制御回路とを具え、;前記ホストコンピュータが、前記コンピュータ入力装置からセンサ活性化およびセンサ非活性化信号を受信して対応するセンサ活性化およびセンサ非活性化のメッセージを生成する制御部を具える。
【0009】
本発明は、上記デバイスにより実行される方法も提供する。
【0010】
前述の一般的な説明および後述の詳細の説明は例示的かつ説明的であり、クレームにかかる本発明をさらに説明することを意図している。
【図面の簡単な説明】
【0011】
【図1A】図1Aは、本発明の実施形態による指トリガ型センサ付のマウスを示す。
【図1B】図1Bは、本発明の実施形態による図1Aのマウスの操作を図示する。図1Aはセンサが露出した状態だが、図1Bはセンサが覆われた状態を示している。
【図2】図2は、図1Aのマウスの構成部品を示す概略ブロック図である。
【図3】図3は、ホストに接続した図1Aのマウスを示す概略ブロック図である。
【図4】図4は、本発明のさらなる他の実施形態によるマウスを示す。
【図5】図5は、本発明の実施形態によるタッチ感応型パッドおよび指トリガ型センサ付のラップトップ型キーボードを示す。
【図6A】図6Aは、本発明の他の実施形態によるタッチ感応型パッドおよび複数のセンサ部を有する指トリガ型センサ付のラップトップ型キーボードを示す。
【図6B】図6Bは、本発明の他の実施形態によるタッチ感応型パッドおよび複数のセンサ部を有する指トリガ型センサ付のラップトップ型キーボードを示す。
【図7】図7は、マウスの制御回路によりドラッグアンドドロップ操作を実行する方法を示す。
【図8】図8は、マウスの制御回路によりドラッグアンドドロップ操作を実行する他の方法を示す。
【図9】図9は、マウスドライバによりドラッグアンドドロップ操作を実行する方法を示す。
【図10A】図10Aは、装置のデバイスドライバからアクティブアプリケーションまでのマウス信号の経路を示す。
【図10B】図10Bは、装置のデバイスドライバからアクティブアプリケーションまでのマウス信号の経路を示す。
【図11】図11は、マウスデバイスドライバによって実行される処理の例を示す。
【図12A】図12Aは、ドラッグ操作においてマウスのフックプログラムにより実行される処理の例を示す。
【図12B】図12Bは、ドラッグ操作においてマウスのフックプログラムにより実行される処理の例を示す。
【図13A】図13Aは、ドラッグ操作においてマウスデバイスドライバによって実行される処理の例を示す。
【図13B】図13Bは、ドラッグ操作においてマウスデバイスドライバによって実行される処理の例を示す。
【発明を実施するための形態】
【0012】
本発明の実施形態は、クリックボタンにより生成される従来のボタン信号、運動トラッキングデバイスにより生成される運動信号、およびスクロールホイールにより生成されるスクロール信号に加えて、入力信号を生成する指トリガ型センサ付のマウスとして通常称されるコンピュータの入力装置を提供する。より広義には、このセンサは1以上の指の存在または動きを検出する指トリガ型センサである。本開示で使用される場合、用語「指」は親指を含む。
【0013】
図1A、図1Bおよび図2に示されるように、本発明の実施形態によるマウス10は、左ボタン11と、右ボタン12(任意)と、スクロールホイール13(任意)と、マウスの運動信号を生成するマウスの運動トラッキング機構14(機械式または光学式のいずれか)(図1Aおよび図1Bには図示せず)と、指トリガ型センサ15とを具える。制御回路16は、マウスの様々な構成部品を制御し、これらの構成部品から生成された様々な信号を解釈し、インターフェイス17を介してホストコンピュータに送信される論理信号(時々、プログラムのコンテクストにおいてメッセージと称される)を生成するために提供されている。代替例では、マウス10は様々な構成部品11乃至15により生成された信号をホストコンピュータに送信し、当該ホストコンピュータは信号を解釈して適当なメッセージを生成する好適な回路を具備してもよい。左ボタン11、右ボタン12、スクロールホイール13およびマウスの運動トラッキング機構14は従来の構成部品であり、それらの構造については本明細書でさらに詳しく記載しない。指トリガ型センサ15は、露出した状態から指で覆われた時に1のセンサ信号を生成し、および/または覆われた状態から露出された時に他のセンサ信号を生成する光学式センサ(例えば、LED(発光ダイオード)を用いたもの)として実装されてもよい。センサ15は、非接触の状態から指が接触した時に1のセンサ信号を生成し、および/または接触した状態から指が離れた時に他のセンサ信号を生成するタッチ感応型センサ(例えば、タッチ感応型パッドを用いたもの)として実装されてもよい。温度センサ等のような、他のものを実装することも可能である。下記の説明では、光学式センサが実装例として使用されているが、この説明はタッチ感応型センサまたは他のものにも適用される。
【0014】
図1Aおよび図1Bに示されるように、ユーザは通常、手の親指と小指および/または薬指とでマウス10を握り、左右のマウスボタン11および12を押すのに人差し指および中指を使う。下記の説明では例として右利き用マウスを用いるが、左利き用デバイスとして製造してもよい。本発明の実施形態によると、指トリガ型センサ15は、マウスを握る時に親指が通常置かれる場所に近い、マウス10の左側に配置される。一実施形態では、指トリガ型センサ15は、通常は露出しているが親指を動かすことで覆われる場所に配置される。例えば、図1Aに示されるように、親指の通常の位置より上に配置されてもよい。図1Bで図示されるように、親指がセンサ15を覆うように動いた時に第1のセンサ信号が生成され、親指がセンサを露出するように戻った時に第2のセンサ信号が生成される。他の実施形態(図示せず)では、指トリガ型センサ15は、通常は親指で覆われているが親指を離すことで露出される場所に配置される。親指がセンサ15を露出するように動いた時に第1のセンサ信号が生成され、親指がセンサを覆うように戻った時に第2のセンサ信号が生成される。
【0015】
代替の実施形態では、センサ信号を生成するには2の継続的な指の動きが必要とされる。図1Aおよび図1Bに示されたセンサが通常露出している位置にあるマウス10では、親指がセンサ15を覆うように動き、その後(既定の時間内に)センサを露出するように動いた時にセンサ信号が生成される。同様に、センサが通常覆われる場所にあるマウス10は、親指がセンサ15を露出するように動き、その後(既定の時間内に)センサを覆うように動いた時にセンサ信号が生成される。このような代替の実施形態は、ユーザが意図せず親指を動かしてセンサを覆った場合に、誤ってセンサが作動するのを防ぐ。しかしながら、前段落に記載した実施形態は異なる第1および第2のセンサ信号を生成できるが、代替の実施形態では1のセンサ信号のみが生成される。
【0016】
さらに他の実施形態では、図4に示されるように、指トリガ型センサ15は、2の物理センサ部15aおよび15b(例えば、2のLEDまたは2のタッチ感応型ポイント)を具えており、第1のセンサ部は通常は露出している場所に配置され、第2のセンサ部は通常は親指で覆われている場所に配置される。親指が第1のセンサ部15aを露出すると共に第2のセンサ部15bを覆うように動いた時に第1のセンサ信号が生成され、親指が第1のセンサ部15aを覆うと共に第2のセンサ部15bを露出するように動いた時に第2のセンサ信号が生成される。換言すると、第2のセンサ部15bが覆われる前後の既定の時間内に第1のセンサ部15aが露出された場合に第1のセンサ信号が生成され、第1のセンサ部15aが覆われる前後の既定の時間内に第2のセンサ部15bが露出された場合に第2のセンサ信号が生成される。単一部分に実装した時と比較すると、意図しない親指の動きによって生成された望ましくないセンサ信号を好適に防ぐことが出来るため、2の部分にセンサを実装した時の方が信頼度が高い。
【0017】
代替例では、図1A、図1Bおよび図4に示される実施形態は、人差し指または中指といった、手の他の指を動かすことによって覆われてかつ露出されうる位置にセンサ15が配置されるように変更されてもよい。
【0018】
上述した3つの実施形態(図1A、図1B および図4)では、指トリガ型センサ15は2の状態(覆われたおよび覆われていない)を有しており、センサの状態が変化した時にセンサ信号が生成される。第1のセンサの状態は「ノーマル」状態と呼ばれ、センサ信号を生成する動作をすることなく、ユーザが普通にマウスを握っている時に起こり;第2の状態は「アクション」状態と呼ばれ、センサ信号を生成させるためにユーザが指を動かした時に起こる(2つの部分にセンサを実装している場合、両方が覆われたまたは露出した状態は、未定義状態として無視することができる)。指トリガ型センサ15の「ノーマル」および「アクション」状態は、従来のマウスのクリックボタンが押されていないおよび押された状態に相当すると考えてもよい。指トリガ型センサ15が第1の状態から第2の状態に変化した時に第1のセンサ信号が生成され、センサが第2の状態から第1の状態に変化した時に第2のセンサ信号が生成される。(2のセンサ部を有する実施形態では、第1および第2の状態に加えて、両方のセンサ部が覆われたまたは両方が露出している場合といった、他の未定義状態が存在する。このような実施形態では、既定の時間内に第1の状態から第2の状態またはその逆に変化が起こった時にセンサ信号が生成される。従って、長時間の未定義状態によって状態の変化が中断された場合、信号は生成されない。)便宜上、これら2のセンサ信号は、「センサ活性化」信号 および「センサ非活性化」信号と称する。これらは、従来のマウスにおいてクリックボタンを押下げて放すことにより生成される、ボタンダウンとボタンアップ信号(このような信号は、当業者によってしばしばメッセージと称される)に相当すると考えてもよい。ボタンダウンおよびボタンアップ信号が異なる2の信号であるように、2のセンサ信号は好適には異なる信号(またはトグル信号)である。さらに詳細は以下に記載するが、マウス10は所望の意味を持つ2のセンサ信号を与えるようにプログラムすることができる。
【0019】
指トリガ型センサ15は、ラップトップ型コンピュータのポインティングデバイスのようなマウス以外の他のポインティングデバイスに設けられてもよい。図5は、本発明の実施形態による指トリガ型センサ25を具備したキーボード28およびタッチ感応型パッド形式のポインティングデバイス20を有するラップトップ型コンピュータの一部を示す。ポインティングデバイス20は、タッチ感応型パッド24と、左ボタン21と、右ボタン22(任意)と、タッチ感応型パッド24の近くに位置する光学式センサまたはタッチ感応型センサにより実装された指トリガ型センサ25とを具える。センサ25は、パッド24の左側、右側、上側、または下側に配置されてもよい。指トリガ型センサ25は、好適には2つのセンサ部25aおよび25bを具える。第1のセンサ部25aが覆われて第2のセンサ部25bが露出した時に第1のセンサ状態が規定され、第1のセンサ部25aが露出して第2のセンサ部25bが覆われた時に第2のセンサ状態が規定される。センサの状態が既定の時間内に第1の状態から第2の状態に変化した時に第1のセンサ信号が生成される。その反対が起こった時に第2のセンサ信号が生成される。
【0020】
いくつかのラップトップ型コンピュータは、タッチ感応型パッドの代わりに、シンクパッドのラップトップのトラックポイントのような他のトラッキングデバイスを使っている。上記のセンサ25は、このようなラップトップ型のキーボードにも提供できる。加えて、図5に示されるセンサ構造は、デスクトップ型またはラップトップ型コンピュータ用の外付けキーボードに提供されてもよい。いくつかの外付けキーボードにはポインティングデバイスとしてタッチ感応型パッドおよびボタンが具備されている。上記のセンサ25は、このようなキーボードにも提供できる。上記のセンサ25は、ポインティングデバイスがない通常のキーボードにも提供できる。
【0021】
図6Aおよび図6Bは、ラップトップ型コンピュータのポインティングデバイスに設けられた指トリガ型センサの他の実施形態を示す。4つのセンサ部25a、25b、25cおよび25dが提供されており、一括してセンサ25を構成している。タッチパッド24の各側に2つのセンサ部が配置されている。図6Bに示されるように、ユーザは一方の手の指を使って選択したセンサ部を覆い、通常の方法で他の手の指を使って運動信号を生成させる。さらに、第5のセンサ部25eは、運動信号を生成するのと同じ手の親指で覆うことが可能なキーボードの縁に設けられている。第5のセンサ部25eは、親指で覆われている部分が図6Aに破線で示されている。第5のセンサ部25eを使用することにより、ユーザはセンサ25およびトラッキング運動の両方を制御するのに同じ手を使うことが出来る。トラッキングデバイスは、ユーザが左利きか右利きか、あるいはユーザが様々なタスクを実行するのに同一の手または異なる手を使うのを好むかといったユーザの好みに基づいて、様々なセンサ部が操作可能または操作不能なようにプログラムされてもよい。
【0022】
他の実施形態(図示せず)では、センサは、マウスボタンまたはスクロールホイールを有しない独立型デバイスに提供される。
【0023】
指トリガ型センサ15により生成されたセンサ信号は、クリックボタン11、12、スクロールホイール13および運動トラッキングデバイス14により生成されたボタン信号、スクロール信号および運動信号とは異なる物理信号である。センサ信号(物理信号)は、単独またはマウスの他の構成部品により生成された他の物理センサと組み合せて様々な方法で用いられ、ホストコンピュータに送信する様々な論理信号を生成する。センサ信号または信号の組み合わせの意義は、マウスのハードウェア/ファームウェアにより規定され、または操作システム、マウスのドライバプログラムおよび/またはアプリケーションプログラムによりプログラムで規定されてもよい。特に、センサ信号は従来のマウスに現在ある論理信号(メッセージ)として解釈され、それにより本発明の実施形態による指トリガ型センサを実装するマウスは、現行の従来のマウスのドライバ、操作システムおよびアプリケーションプログラムと互換性を持って使用できる。センサ信号が如何に解釈され利用されるかの例を以下に示す。
【0024】
第1の実施例では、センサ活性化およびセンサ非活性化信号は、従来のマウスの左ボタンダウンおよび左ボタンアップのメッセージとしてそれぞれ解釈される。従って、センサは左ボタンのように機能していると考えることが出来る。これは2つの方法で実行できる。第1に、全てをマウスのハードウェア/ファームウェア内に実装することである。マウスのハードウェア/ファームウェアはセンサの状態の変化を検出し、左ボタンダウンおよび左ボタンアップのメッセージを生成して、ホストコンピュータのマウスドライバに送信する。マウスドライバは、ボタンの代わりにセンサが具えられているとは認識しない。この実装例での利点は、従来のマウスドライバの変更を必要としないことである。この実装例での欠点の1つは、センサをオン/オフする機能がマウスのハードウェアを使用することでしか実行出来ず、ホストコンピュータからは出来ないということである。第2の実行方法は、マウスのハードウェア/ファームウェアおよび改良したホストコンピュータのマウスドライバのソフトウェアを利用することである。マウスのハードウェア/ファームウェアは、ホストコンピュータのマウスドライバにセンサ信号を送信し、マウスドライバは、これらの信号を左ボタンダウンおよび左ボタンアップのメッセージに適宜解釈する。この実装例での利点は、ホストコンピュータのソフトウェアを用いてセンサ機能をオン/オフ出来るという点である。この実装例での他の利点は、後にさらに詳細が記載されるように、ホストコンピュータのマウスのフックプログラムが、様々な操作を実行するために他のキーボードまたはマウス信号と併用してセンサ信号を利用可能になる。
【0025】
第2の実施例では、センサ活性化信号を受信した後、左ボタンダウンのメッセージが生成される前に、既定の時間内に少なくとも多少のマウス運動を必要とし、さもなくばセンサ活性化信号は無視される。ユーザが意図せずにセンサを作動させた場合、マウスを動かさずに停止させれば、左クリック(左ボタンアップが続く左ボタンダウン)メッセージは操作システムおよび/またはアクティブアプリケーションに送信されないので、この実施例は第1の実施例よりも安全かつ簡単に利用できる。ラップトップ型タッチパッドまたはタッチパッドのマウスを具えたキーボードにセンサが設けられた場合、この機能は特に便利である。やはり、この実施例は2つの方法で実行できる。第1に、全てをマウスのハードウェア/ファームウェア内に実装することである。マウスのハードウェア/ファームウェアがセンサ活性化信号の後の既定の時間内に少なくとも多少のマウスの運動信号を検出した場合、左ボタンダウンのメッセージを生成して、ホストコンピュータのマウスドライバに送信する。第2の実装例は、マウスのハードウェア/ファームウェアおよび変更したホストコンピュータのマウスドライバのソフトウェアを利用する。マウスのハードウェア/ファームウェアはセンサ活性化およびセンサ非活性化信号、およびマウスの運動信号を送信し、ホストコンピュータのマウスドライバを検出する。マウスドライバが、センサ活性化信号の後の既定の時間内に少なくとも多少のマウスの運動信号を受信した場合、左ボタンダウンのメッセージを操作システムおよび/またはアクティブアプリケーションに送信して;さもなければセンサ活性化信号を無視する。第1および第2の実装例は、第1の実施例における第1および第2の実装例と同様の利点および欠点を有している。
【0026】
上記の第2の実施例は機械式のマウスボタン、特に非常に高感度ボタンに利用できることに留意されたい。換言すると、このようなボタンからのボタンダウンの物理信号は、多少のマウスの運動信号が後に続かない限り無視され、そうでない場合はボタンダウンのメッセージが生成される。
【0027】
第3の実施例では、センサは図4に示されるような2部分のセンサである。図1Aおよび図1Bに示した1部分のセンサを上回る利点を有する。1部分のセンサを利用すると、ユーザが最初にマウスをつかんだ時に、つかんだ動作の後にセンサを覆ってマウスを動かしてしまった場合は左ボタンダウンのメッセージが誤って生成される。2部分のセンサを利用すると、このように左ボタンダウンのメッセージが誤って生成されないようになる。この例示は2つの方法で実行できる。やはり、第1に、全てをマウスのハードウェア/ファームウェア内に実装することである。マウスのハードウェア/ファームウェアは両方のセンサ部(および任意でマウスの運動信号)からのセンサ信号を検出し、左ボタンダウンおよび左ボタンアップのメッセージを生成して、ホストコンピュータのマウスドライバに送信する。第2の実装例は、マウスのハードウェア/ファームウェアおよび改良したホストコンピュータのマウスドライバのソフトウェアを利用する。マウスのハードウェア/ファームウェアは、センサ信号(および任意でマウスの運動信号)を送信して、ホストコンピュータのマウスドライバを検出し、マウスドライバはこれらの信号を左ボタンダウンおよび左ボタンアップのメッセージに適宜解釈する。第2の実装例の利点の1つは、ボタンアップ/ダウンのメッセージの生成を制御する特定のパラメータがプログラムできる点である。前述したように、2部分のセンサを利用する時、センサ活性化またはセンサ非活性化信号を生成させるために既定の時間内で1のセンサ部を覆い、かつ他のセンサ部を露出させねばならない。この時間間隔は、第2の実装例においてプログラム可能である。第1の実装例が利用された場合、この時間間隔はマウスのハードウェア/ファームウェアにより既定される。
【0028】
第4の実施例では、センサ信号は、操作システムおよび/またはアプリケーションプログラム用のセンサ活性化およびセンサ非活性化メッセージを生成するために利用される。これらのメッセージは、従来のマウスのボタンまたはマウスホイールにより生成された従来のマウスのメッセージに追加される。従来のマウスのメッセージをアクティブアプリケーションプログラムに転送するのに利用したのと同じメッセージ通信路を通って、センサ活性化およびセンサ非活性化メッセージはアクティブアプリケーションのソフトウェアに転送される。これらの通信路は図10Aおよび図10Bに示され、さらに詳細は後述する。操作システムおよび/またはアプリケーションプログラムは、従来のマウスにはない機能を実行するためにセンサ活性化およびセンサ非活性化メッセージを利用することが出来る。この実施例は2つの方法で実施することが出来る。第1に、全てをマウスのハードウェア/ファームウェア内に実装することである。マウスのハードウェア/ファームウェアはセンサの状態の変化を検出して、センサ活性化およびセンサ非活性化メッセージを生成し、ホストコンピュータのマウスドライバに送信する。第2の実装例は、マウスのハードウェア/ファームウェアおよび変更したホストコンピュータのマウスドライバのソフトウェアを利用する。マウスのハードウェア/ファームウェアはホストコンピュータのマウスドライバにセンサ活性化およびセンサ非活性化信号を送信し、マウスドライバはこれらの信号を解釈し、マウスの運動またはマウスのボタン信号(任意)といった他のマウス信号と共に、センサ活性化およびセンサ非活性化メッセージを生成する。第2の実装例の利点は、マウスドライバがマウスからの様々な信号をどのように解釈するかをユーザが構築可能にする。これは、ユーザに幅広い自由度をもたらす。
【0029】
第5の実施例では、センサ信号は、第4の実施例のように操作システムおよび/またはアプリケーションプログラム用のセンサ活性化およびセンサ非活性化メッセージを生成するために利用されるが、センサ活性化およびセンサ非活性化メッセージを認識しないプログラムとの互換性を与える。この実施例では、センサ活性化メッセージの直後に左ボタンダウンのメッセージが生成され、センサ非活性化メッセージの直後に左ボタンアップのメッセージが生成される。センサ活性化およびセンサ非活性化メッセージを認識するプログラムでは、直後の左ボタンダウンおよび左ボタンアップのメッセージは無視される。センサ活性化およびセンサ非活性化メッセージを認識しないプログラムでは、プログラムは代わりに左ボタンダウンおよび左ボタンアップ信号に通常通り応答することが求められる。この方法では、マウスは「下位互換性」において利用することが出来る。
【0030】
実用的な適用例では、指トリガ型センサ15によって生成されたセンサ信号がドラッグアンドドロップ操作を実行する場合を以下に記載する。従来のマウスを利用すると、まずドラッグするオブジェクト(例えばアイコン)をマウスポインタで指示し、左ボタンを押し、左ボタンを押したままマウスポインタを所望の位置まで移動させ、ポインタが所望の場所(例えば、目標のアイコン上)にある時に左ボタンを放すことにより、ドラッグアンドドロップが実行される(選択したテキストまたは画像の領域はドラッグした形状で示されることに留意する)。時々、ユーザはポインタが所望の位置に達する前に誤って左ボタンを放してしまい、オブジェクトが間違った場所にドロップされてしまう。本発明の実施形態によると、指トリガ型センサはドラッグアンドドロップをさらに便利かつ間違えにくい方法で実行するために使用することが出来る。さらに具体的には、ユーザは普通の状態でマウスを握り、ドラッグするオブジェクトをマウスポインタで指示し、親指を動かしてセンサ活性化信号を生成させる。ユーザは、マウスポインタが所望の目標位置に来るまで親指をその位置に置いたままマウスを動かし、親指を通常握る位置に戻してセンサ非活性化信号を生成させる。指トリガ型センサ15を利用したこのようなドラッグアンドドロップ操作は、ユーザがボタンを押したままでいる必要がないため実行するのが簡単である。これはさらに人間工学的であり、操作の信頼度をより高める。
【0031】
図7は、本発明の実施形態によるドラッグアンドドロップ操作において、マウスの制御回路16により実行される方法を図示している。制御回路16がセンサ活性化信号を受信した時(ステップS71)、左ボタンダウン信号(従来のマウスにより生成される信号)をホストに送信する(ステップS72)。マウスの制御回路16はその後、運動信号を受信してホストに送信する(ステップS73およびS74)。センサ非活性化信号を続いて受信した時(ステップS75)、制御回路16は左ボタンアップ信号(従来のマウスにより生成された他の信号)をホストに送信する(ステップS76)。この実施例では、センサ15は従来のマウスの左ボタンをシミュレートしているとみなすことが出来る。ホストが受信する次の信号(左ボタンダウン、マウス運動、左ボタンアップ)は、ドラッグアンドドロップ操作を実行する従来のマウスによって生成された連続の信号として識別される。
【0032】
図8は、本発明の他の実施形態によるドラッグアンドドロップ操作において、マウスの制御回路16により実行される代替の方法を図示している。制御回路16が最初にセンサ活性化信号を受信する時(ステップS81)、信号を記録するが(例えば、レジスタ値を変更する等)(ステップS82)、ホストコンピュータには信号を送信はしない。1以上のマウスの運動信号を続いて受信した時(ステップS83)、左ボタンダウン信号(従来のマウスにより生成される信号)および運動信号がホストに送信される(ステップS84)。追加の運動信号を受信した場合(ステップS85)、ホストに送信される(ステップS86)。センサ非活性化信号を続いて受信した時(ステップS87)、制御回路16は左ボタンアップ信号(従来のマウスにより生成された他の信号)をホストに送信する(ステップS88)。このように、ホストが受信した連続の信号(左ボタンダウン、マウス運動、左ボタンアップ)は、ドラッグアンドドロップ操作を実行する従来のマウスによって生成された連続の信号として識別される。
【0033】
センサ信号を解釈するためにマウス10において回路16を利用する利点は、従来のマウスデバイス、マウスドライバ、およびアプリケーションプログラムと互換性がある点であり、新しいマウスの設計を実現するためにホストコンピュータのオペレーティングシステムを変更する必要がない。代替の実施形態では、図3に概略図が示されるように、マウスの回路16は従来のマウス信号ではなくセンサ活性化およびセンサ非活性化の事象を示す論理信号をホストコンピュータに送信する。ホストコンピュータ30のマウスドライバのプログラム31はこれらの信号を受信し、操作システム32および/またはアプリケーションプログラム33用の従来のマウス信号(例えば、左ボタンダウン等)を生成する。換言すると、ドライバプログラム31は図8に示されるステップS81乃至S88と同様のステップを実行する。この実施形態は、従来型ではないマウスドライバをホストコンピュータにインストールする必要がある。図9はこのような方法のステップを図示している。このステップは、回路16の代わりにドライバのプログラム31によって実行されていることを除いて図8に示すステップと同様であり、詳細は再度説明しない。ユーザにとって、ドラッグアンドドロップする一連の操作は、図7および図8に図示された方法と同様である。
【0034】
さらに他の代替の実施形態では、図3にも概略的に示されているように、マウスドライバのプログラム31は、直接利用のためにセンサ活性化およびセンサ非活性化信号を操作システムプログラムおよび/またはアプリケーションプログラムに送信する。この実施形態は、従来の操作システムプログラムおよび/またはアプリケーションプログラムに特定の変更を加える必要がある。この実施形態の利点は、従来のマウスにより生成されるよりも多い種類のマウス信号を供給し、操作システムおよび/またはアプリケーションプログラムをさらに自由に制御可能にする。本発明の実施形態によるマウスは広く受け入れられ、センサ信号は操作システムおよび/またはアプリケーションプログラムに組み込まれた一部となるであろう。
【0035】
上記の実用的な適用例では、センサは従来のマウスにより生成された、シミュレートされた左ボタンダウンと左ボタンアップのメッセージを生成するのに用いられている。上記で指摘したように、センサは従来のマウスでは生成されないメッセージを生成するために使用することもできるため、アプリケーションプログラムはさらに多くの機能を実行可能にする。例えば、Adobe(商標登録)Reader(商標登録)では、ユーザがそれぞれテキストを選択および画像領域を選択出来るように、一般に「選択ツール」ボタンおよび「スナップショットツール」ボタンがツールバー上に設けられている。ユーザが「選択ツール」ボタンをクリックした場合、左マウスボタンを用いたドラッグシーケンスがテキストを選択し;ユーザが「スナップショットツール」ボタンをクリックした場合、同じドラッグシーケンスが画像領域を選択する。センサ付のマウスを利用すると、例えばセンサを用いたドラッグシーケンスがテキストを選択し、左マウスボタンを用いたドラッグシーケンスが画像領域を選択してもよい。これにより「選択ツール」および「スナップショットツール」ボタンをクリックする必要がなくなる。他の例のように、インターネットエクスプローラといった多くのウェブブラウザは、テキストを選択するのに左マウスのボタンでシーケンスをドラッグするが、(Adobe(商標登録)Reader(商標登録)における「手のひらツール」のように)ドラッグシーケンスでウィンドウ内で画像を移動させる方法はない。センサ付のマウスを利用した場合、センサを利用したドラッグシーケンスを用いて画像をスクロールするようにしてもよい。
【0036】
他の実践的な適用例では、タッチパッドマウス付のラップトップ型キーボード上の2部分のセンサ(図5参照)は、簡単かつ正確なドラッグ操作に役立つようにドラッグ操作に利用される。第1のセンサ部15が覆われた時(両センサ部は通常は露出していると仮定する)、左ボタンダウンのメッセージが生成される。第1のセンサ部がその後すぐに露出された場合、ドラッグを終了すべく左ボタンアップのメッセージが生成される。これは、短くかつ突然のドラッグ操作に役立つ。しかしながら、第1のセンサ部がまだ覆われている間に第2のセンサ部が覆われた場合、すなわちユーザが指を伸ばして両センサ部を同時に覆った場合、左クリックのロックモードが展開される。左クリックのロックモードでは両センサ部が露出しても左ボタンアップのメッセージは生成されないため、ユーザはポインタを動かすことでドラッグ操作を実行できる。1つのセンサ部が再度覆われた時(または任意のボタンがクリックされたとき)、ドラッグ処理を終了するよう左ボタンアップのメッセージが生成される。このような左クリックのロックモードは、長いドラッグまたは正確性を必要とするドラッグ操作に役立つ。この実施例では、様々なメッセージがマウスのハードウェア/ファームウェアまたはホストコンピュータによって生成されてもよい。
【0037】
マウスドライバのプログラムは上に例示したが、マウスドライバと操作システムとの間のフックプログラムが適宜または必要に応じて利用されてもよい。例えば、センサ活性化メッセージの意味はメッセージが生成された時にマウスのカーソルがどこに位置しているかによってもよい。従って、フックプログラムは、適当なメッセージが適当なアプリケーションプログラムに送信されるように利用されてもよい。マウスドライバおよびフックプログラムは、マウスのメッセージを制御するソフトウェアとして一括して参照されてもよい。
【0038】
図10Aは、フックプログラムがインストールされていない場合における、デバイスドライバからアクティブアプリケーションまでのマウス信号の経路上の様々な構成部品を図示している。マウスのハードウェアは、マウス信号をマウスデバイスドライバに送信する。マウスデバイスドライバのソフトウェアは、マウス信号を左ボタンダウンのメッセージ、左ボタンアップのメッセージ、右ボタンダウンのメッセージ、右ボタンダウンのメッセージ、ホイールのメッセージ等といったマウスのメッセージに解釈する。マウスのメッセージ発信モジュールは、マウスデバイスドライバから生成されたマウスのメッセージを一度に1つ受信し、このマウスメッセージを受信するアプリケーションを決定して、そこにマウスメッセージを送信する。アクティブアプリケーションプログラムは、マウスのメッセージを受信し、マウスのメッセージに基づいて適当な操作を実行する。図10Bは、1以上のフックプログラムがインストールされている場合における、デバイスドライバからアクティブアプリケーションまでのマウス信号の経路上の様々な構成部品を図示している。図10Bのマウスのハードウェア、マウスデバイスドライバおよびマウスのメッセージ発信モジュールは、図10Aにおける対応する構成部品と類似している。多くのマウスのフックプログラムが、マウスのメッセージ発信モジュールとアクティブアプリケーションプログラムとの間に挿入されている。各マウスのフックプログラムは、アクティブアプリケーションがメッセージを受信するのを妨害する、あるいはメッセージを変更して、アクティブアプリケーションプログラムに送信されるマウスのメッセージを処理することができる。多くのマウスのフックプログラムは連続的に機能する。アクティブアプリケーションプログラムは、最後のマウスのフックプログラムからマウスのメッセージを受信し、マウスのメッセージに基づいて適当な操作を実行する。インストールされた多くのマウス/キーボードのフックプログラムは、OSに同時に存在しうるということに留意されたい。一連の最後のフックプログラムは、他のフックプログラムで実行される論理またはアルゴリズムを無効化できるため、最も重要となる。フックプログラムは広く利用され;アクティブアプリケーションに処理される前にマウスまたはキーボードのメッセージを制御する手段となりうるため有用である。フックプログラムの欠点の1つは、安全性のリスクを招きうることである。
【0039】
1つのマウスのハードウェアユニットのみ図10Bに示されているが、複数のユニット(マウス)がコンピュータに接続できることに留意されたい。現在のセンサの状態を認識するマウスのフックプログラムを利用する利点の1つは、コンピュータが従来のマウスおよび本発明によるセンサ付のマウスの両方に接続されている場合、様々な操作を達成するためにマウスのフックプログラムによって両方のマウスからの信号を組み合わせられることである。換言すると、センサ付のマウスにより生成されたセンサ信号を利用する従来のマウス用の方法を提供する。例えば、ユーザが本発明のセンサを具えるラップトップを利用し、かつ当該ラップトップに接続した外付けの従来のマウスがある場合、彼または彼女が外付けマウスを動かしている間、ラップトップ上のセンサを単に覆うだけでドラッグ操作を実行できる。
【0040】
マウスのフックプログラムを利用する他の利点は、何れのアプリケーションがセンサ活性化およびセンサ非活性化メッセージに影響され、何れのアプリケーションがこれらのメッセージで実行されるかを、ユーザが選択的に決めることが出来る点である。例えば、ユーザは、いくつかの「過敏な」アプリケーションがセンサ活性化およびセンサ非活性化メッセージに反応しないよう希望する場合がある。これを達成するため、ユーザは何れのアプリケーションプログラムがセンサ活性化およびセンサ非活性化メッセージに影響されるまたは影響されないかを指定する。その後、マウスのフックプログラムがセンサ活性化またはセンサ非活性化メッセージを受信した時、プログラムで何れのアプリケーションが作動しているかを確認し、ユーザの指定に基づいてアクティブアプリケーションにメッセージを転送するか否かを決定する。換言すると、マウスのフックプログラムは、何れのアプリケーションプログラムがこれらのメッセージに影響されるかのユーザの指示に基づいて、センサ活性化およびセンサ非活性化メッセージをアクティブアプリケーションプログラムに選択的に転送することが出来る(例えば、後述する図12Bにおけるステップ1209Aを参照)。マウスのフックプログラムがユーザモードで実行されている間はカーネルモードで動作するため、デバイスドライバではこの機能を達成できないことに留意されたい。
【0041】
さらに本発明の他の実施形態では、カーソルがスクロールバー(ユーザは、マウスを左クリックしドラッグして、ウィンドウの内容を上/下、左/右にスクロールできるが、データは変更出来ない領域)またはキャプションバー(ユーザがアプリケーションウィンドウを四方にドラッグできる領域)といった、アプリケーションウィンドウの特定の部分に配置されている時のみ「過敏な」アプリケーションがセンサ活性化およびセンサ非活性化信号に影響されるようにすることも可能である。ファイルおよびフォルダアイコンが含まれているウィンドウのクライアントエリアのような、マウスのカーソルがオブジェクトを編集または再配置できるアプリケーションの領域に配置されている時、センサ活性化およびセンサ非活性化信号はこのアプリケーションソフトウェアに影響を及ぼすことは出来ないであろう。
【0042】
図11は、図10Bに示されたマウス信号の経路上のマウスデバイスドライバにより実行される処理の例を図示している。マウスデバイスドライバは指トリガ型センサを具えるマウスのハードウェアから信号を受信し、解釈し、メッセージをマウスのメッセージ発信モジュールに送信し、さらにマウスのフックプログラムにそれらを転送する。より具体的には、マウスデバイスドライバが指トリガ型センサ付のマウスのハードウェアから信号を受信した時(ステップS1101)、信号がセンサ活性化信号(ステップS1102における「Yes」)の場合、ドライバはセンサ活性化メッセージをマウスのメッセージ発信モジュールに送信する(ステップS1103)。一方、信号がセンサ非活性化信号(ステップS1102における「No」およびステップS1104における「Yes」)の場合、ドライバはセンサ非活性化メッセージをマウスのメッセージ発信モジュールに送信する(ステップS1105)。マウスのハードウェアから受信した信号が、センサ活性化信号でもセンサ非活性化信号でもない場合(ステップS1104における「No」)、例えば信号は左ボタン信号、右ボタン信号、マウスの運動信号、またはホイール信号といった従来のマウス信号の場合、対応するマウスのメッセージに変換され、マウスのメッセージ発信モジュールに転送する(ステップS1106)。マウスデバイスドライバはその後、他のハードウェアのマウス信号をポーリングする(ステップS1107)。
【0043】
図12Aおよび図12Bは、ドラッグ操作においてマウスのフックプログラムで実行される処理の例を図示している。この例では、マウスのフックプログラムはマウスのメッセージ発信モジュールからのメッセージを傍受し、センサの状態およびマウスの運動メッセージのタイミングにより左ボタンダウンまたはアップメッセージをシミュレートするために分析し、適切なメッセージをアクティブアプリケーションに転送する。フックプログラムにより傍受されたマウスのメッセージは、OSに接続されたマウスから発信されることもある。従って、例えば2つのマウスがOSに接続されており、一方は指トリガ型センサ付で、もう一方は実装していない場合、2つのマウスからの様々な信号はドラッグ操作を完成させるために連動させることが出来る。例えば、ユーザは一方のマウスでセンサを覆い、ドラッグ操作を達成するためにもう一方のマウスを動かしてもよい。2つのマウスの一方は、指トリガ型センサが具えられたラップトップ型コンピュータのタッチパネルでもよい。下記では、用語「マウス」を便宜上使用するが、指定がない限りは任意の好適なコンピュータのポインティングデバイスについて広く言及しているということを理解されたい。
【0044】
図12Aおよび図12Bに示されるように、マウスのフックプログラムはまず、偽(false)のドラッグフラグを立てる(ステップS1201)。その後、マウス(1以上ある場合は、コンピュータに接続されているマウスのうち1つでよい)からマウスのメッセージ発信モジュールを介して転送されたマウスのメッセージを解釈する(ステップS1202)。マウスのメッセージがセンサ活性化メッセージの場合(ステップS1203における「Yes」)、マウスのフックプログラムは真(true)のセンサ活性化フラグを立てる(ステップS1204)。一方、マウスのメッセージがセンサ非活性化メッセージの場合(ステップS1203における「No」およびステップS1205における「Yes」)、マウスのフックプログラムは偽のセンサ活性化フラグを立て(ステップS1206)、ドラッグ処理を終了するため左ボタンアップのメッセージをシミュレートしてアクティブアプリケーションに転送する(ステップS1207)。マウスのメッセージが、センサ活性化メッセージでもセンサ非活性化メッセージでもなく(ステップS1205における「No」)、マウス運動のメッセージの場合(ステップS1208における「Yes」)、マウスのフックプログラムはセンサ活性化フラグが真か偽かを決定する(ステップS1209)。センサ活性化フラグが真の場合、マウスのフックプログラムはさらに、アクティブアプリケーション用に左ボタンダウンのメッセージをシミュレートするか否かを決定する(ステップS1209A)。このステップは任意である。前述のように、ユーザは、何れのアプリケーションがセンサに影響されるかを指定できる。ステップS1209Aにおけるこの決定は、アクティブアプリケーションのプログラムがセンサに影響されるか影響されないかについてユーザが指定したものか否かに基づいている。ステップS1209Aにおける決定が肯定的である場合、ドラッグ処理を開始するためにマウスのフックプログラムは左ボタンダウンのメッセージをシミュレートし、アクティブアプリケーションに転送(ステップS1210)して、その後マウス運動のメッセージをアクティブアプリケーションに転送する(ステップS1211)。センサ活性化フラグが偽の場合(ステップS1209における「No」)、または活性化プログラムがセンサに影響されないものである場合(ステップS1209Aにおける「No」)、マウスのフックプログラムは単にマウス運動のメッセージをアクティブアプリケーションに転送する(ステップS1211)。ステップS1208において、マウスのメッセージがマウス運動のメッセージではない場合(「No」)、例えばこのメッセージが従来の左ボタンのメッセージ、右ボタンのメッセージ、またはホイールのメッセージの場合、マウスのフックプログラムは単にメッセージをアクティブアプリケーションに転送する(ステップS1212)。メッセージをアプリケーションプログラムに転送した後(すなわちステップS1207、S1211およびS1212の後)、マウスのフックプログラムは他のマウスのメッセージを傍受する。
【0045】
図13Aおよび図13Bは、図12Aおよび図12Bに示された処理と同様のドラッグ操作の例を図示しているが、図12Aおよび図12Bのようにマウスのフックプログラムではなく、マウスデバイスドライバによってステップが実行されている。ステップS1301乃至S1312は、マウスデバイスドライバから受信したマウスのメッセージではなくマウスのハードウェアから受信したマウス信号で実行するステップS1303、S1305およびS1308を除いて、図12Aおよび図12BのS1201乃至S1212と類似している。さらに、図13Bにおける処理は、図12BにおけるステップS1209Aに対応する決定ステップを含まない。さらに、ステップS1312は、マウス信号を対応するマウスのメッセージに変換する操作を含む。図13Aおよび図13Bのさらに詳しい説明は省略する。
【0046】
ホストPCに接続されている各マウスは、独自のデバイスドライバを有しており、マウスデバイスドライバは通常、相互に影響し合わないことに留意されたい。従って、図13Aおよび図13Bに示された処理では、OSに接続されている2つのマウスは図12Aおよび図12Bの処理で実現する方法で互いに協力することができない。
【0047】
図11、図12A、図12Bおよび図13A、図13Bに示された以上の実施例は、指トリガ型センサ付のマウスから発信される処理信号には有用だが、同様の方法は、従来の左および右ボタンと異なる特殊なボタンを有するマウスといった、異なる種類のマウスから発信される特殊な信号を処理するためにも利用できることに留意されたい。このような方法を実行するためには、図12A、図12Bおよび図13A、図13Bは、「センサ活性化信号/メッセージ」から「特殊なボタンダウン信号/メッセージ」に変更、「センサ非活性化信号/メッセージ」から「特殊なボタンアップ信号/メッセージ」に変更、および「センサ活性化フラグ」から「特殊なボタン活性化フラグ」に変更する等、多少変更する必要がある。さらに詳しい説明は省略する。
【0048】
図1Aに示されるように、センサをオンまたはオフするスイッチ19がマウス10に設けられてもよい。代替例またはスイッチ19に追加して、マウスのハードウェア/ファームウェアがホストコンピュータおよびホストコンピュータのマウスドライバにセンサ信号を送る実装例では、これらの信号を適当なメッセージに解釈して、マウスドライバはセンサ機能をオンまたはオフするように構成されてもよい。
【0049】
様々な改良例および変形が、本発明の指トリガ型センサ付のマウスについて本発明の精神および範囲を超えることなく実行できることは当業者において自明である。従って、本発明は、添付の特許請求の範囲およびその同等品の範囲内で成立する改良例および変形を包含することを意図している。
【特許請求の範囲】
【請求項1】
コンピュータの入力装置であって、
前記コンピュータの入力装置の動きを追跡するデバイス運動トラッキング機構と;
指で押すことにより作動可能な1以上のボタンと;
ユーザの1以上の指で作動可能なセンサと;
を具えることを特徴とする装置。
【請求項2】
請求項1に記載のコンピュータ入力装置において、前記センサは光学式センサであることを特徴とする装置。
【請求項3】
請求項2に記載のコンピュータ入力装置において、前記センサは、前記センサが覆われている時に第1の状態となり、前記センサが覆われていない時に第2の状態となることを特徴とする装置。
【請求項4】
請求項2に記載のコンピュータ入力装置において、前記光学式センサは2つのセンサ部を具えており、第1のセンサ部が覆われており第2のセンサ部が覆われていない時に前記センサは第1の状態となり、前記第1のセンサ部が覆われておらず前記第2のセンサ部が覆われている時に前記センサは第2の状態となることを特徴とする装置。
【請求項5】
請求項1に記載のコンピュータ入力装置において、前記センサはタッチ感応型センサであることを特徴とする装置。
【請求項6】
請求項1に記載のコンピュータ入力装置において、前記コンピュータの入力装置は物理的にキーボードから独立したマウスであることを特徴とする装置。
【請求項7】
請求項1に記載のコンピュータ入力装置において、
前記デバイス運動トラッキング機構と、前記ボタンと、前記センサと物理的に一体型のキーボードをさらに具えることを特徴とする入力装置。
【請求項8】
請求項1に記載のコンピュータ入力装置において、
前記センサの状態の変化を検出して、センサ活性化メッセージおよびセンサ非活性化メッセージを含む1以上のメッセージを生成する制御回路をさらに具えることを特徴とする装置。
【請求項9】
請求項8に記載のコンピュータ入力装置において、前記制御回路が、第1の状態から第2の状態への前記センサの変化を検出してセンサ活性化メッセージを生成し、前記第2の状態から前記第1の状態への前記センサの変化を検出してセンサ非活性化メッセージを生成することを特徴とする装置。
【請求項10】
請求項8に記載のコンピュータ入力装置において、前記センサは2つのセンサ部を具える光学式センサであって、第1のセンサ部が覆われており第2のセンサ部が覆われていない時に前記センサは第1の状態となり、前記第1のセンサ部が覆われておらず前記第2のセンサ部が覆われている時に前記センサは第2の状態となり、前記制御回路が、既定の時間内に前記第1の状態から前記第2の状態への前記センサの変化を検出するとセンサ活性化メッセージを生成し、前記既定の時間内に前記第2の状態から前記第1の状態への前記センサの変化を検出するとセンサ非活性化メッセージを生成することを特徴とする装置。
【請求項11】
請求項8に記載のコンピュータ入力装置において、前記制御回路が、前記デバイス運動トラッキング機構により生成された運動信号をさらに検出し、既定の時間内に少なくとも1の運動信号が続く第1の状態から第2の状態への前記センサの変化を検出するとセンサ活性化メッセージを生成することを特徴とする装置。
【請求項12】
請求項8に記載のコンピュータ入力装置において、前記制御回路が、前記1以上のボタンのうちの第1のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップのメッセージを生成すると共に、前記センサ活性化メッセージは前記ボタンダウンのメッセージと同一であり、前記センサ非活性化メッセージは前記ボタンメッセージと同一であることを特徴とする装置。
【請求項13】
請求項8に記載のコンピュータ入力装置において、前記制御回路が、前記1以上のボタンのうちの第1のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップのメッセージを生成すると共に、前記センサ活性化メッセージは前記ボタンダウンのメッセージと異なり、前記センサ非活性化メッセージは前記ボタンアップメッセージとは異なることを特徴とする装置。
【請求項14】
請求項8に記載のコンピュータ入力装置において、前記制御回路が、前記1以上のボタンのうちの第1のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップのメッセージを生成し、第1の状態から第2の状態への前記センサの変化を検出するとボタンダウンのメッセージが続くセンサ活性化メッセージを生成し、前記第2の状態から前記第1の状態への前記センサの変化を検出するとボタンアップのメッセージが続くセンサ非活性化メッセージを生成することを特徴とする装置。
【請求項15】
コンピュータの入力装置と、当該コンピュータの入力装置に接続されたホストコンピュータとを具えるシステムにおいて、
前記コンピュータの入力装置が、
前記コンピュータの入力装置の動きを追跡するデバイス運動トラッキング機構と;
指で押すことにより作動可能な1以上のボタンと;
1以上の指で作動可能なセンサと;
前記センサの状態の変化を検出し、センサ活性化信号とセンサ非活性化信号とを含む1以上の信号を生成する制御回路と;を具え、
前記ホストコンピュータが、前記コンピュータの入力装置から前記センサ活性化およびセンサ非活性化信号を受信し、対応するセンサ活性化およびセンサ非活性化メッセージを生成する制御部を具えることを特徴とするシステム。
【請求項16】
請求項15に記載のシステムにおいて、前記ホストコンピュータの前記制御部が、前記コンピュータの入力装置からセンサ活性化信号を受信してセンサ活性化メッセージを生成し、前記コンピュータの入力装置からセンサ非活性化信号を受信してセンサ非活性化メッセージを生成することを特徴とするシステム。
【請求項17】
請求項15に記載のシステムにおいて、
前記コンピュータの入力装置の前記制御回路が前記デバイス運動トラッキング機構により生成された運動信号をさらに検出して運動信号を生成し、
前記ホストコンピュータの前記制御部が前記運動信号を受信し、
前記ホストコンピュータの前記制御部が前記コンピュータの入力装置から既定の時間内に少なくとも1の運動信号が続くセンサ活性化信号を受信するとセンサ活性化メッセージを生成することを特徴とするシステム。
【請求項18】
請求項15に記載のシステムにおいて、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記ホストコンピュータの前記制御部が前記ボタンダウンおよびボタンアップ信号を受信して対応するボタンダウンおよびボタンアップのメッセージを生成し、
前記センサ活性化メッセージは前記ボタンダウンのメッセージと同一であり、前記センサ非活性化メッセージは前記ボタンアップのメッセージと同一であることを特徴とするシステム。
【請求項19】
請求項15に記載のシステムにおいて、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記ホストコンピュータの前記制御部が前記ボタンダウンおよびボタンアップ信号を受信して対応するボタンダウンおよびボタンアップのメッセージを生成し、
前記センサ活性化メッセージは前記ボタンダウンのメッセージと異なり、前記センサ非活性化メッセージは前記ボタンアップのメッセージと異なることを特徴とするシステム。
【請求項20】
請求項15に記載のシステムにおいて、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記ホストコンピュータの前記制御部が前記ボタンダウンおよびボタンアップ信号を受信して対応するボタンダウンおよびボタンアップのメッセージを生成し、
前記ホストコンピュータの前記制御部は、前記コンピュータの入力装置からセンサ活性化信号を受信するとボタンダウンメッセージが続くセンサ活性化メッセージを生成し、前記コンピュータの入力装置からセンサ非活性化信号を受信するとボタンアップのメッセージが続くセンサ非活性化メッセージを生成することを特徴とするシステム。
【請求項21】
コンピュータの入力装置であって、
当該コンピュータの入力装置の動きを追跡して、前記コンピュータの入力装置の運動を示す第1の信号のセットを生成するデバイス運動トラッキング機構と;
1以上のボタンであって、当該ボタンが押されている状態を示す第2の信号のセットを生成する1以上のボタンと;
作動状態を示す第3の信号のセットを生成するセンサであって、前記第3の信号のセットが前記第1および第2の信号とは異なるセンサと;
を具えることを特徴とする装置。
【請求項22】
コンピュータの入力装置に接続されたホストコンピュータで実行される方法において、前記コンピュータの入力装置が、コンピュータの入力装置の動きを追跡するデバイス運動トラッキング機構と、指で押すことにより作動可能な1以上のボタンと、1以上の指で作動可能なセンサと、前記センサの状態の変化を検出してセンサ活性化信号およびセンサ非活性化信号を含む1以上の信号を生成する制御回路とを具えており、前記方法が、
前記コンピュータの入力装置から前記センサ活性化およびセンサ非活性化信号を受信するステップと;
対応するセンサ活性化およびセンサ非活性化メッセージを生成するステップと;
を具えることを特徴とする方法。
【請求項23】
請求項22に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記デバイス運動トラッキング機構により生成された運動信号をさらに検出し、
前記生成するステップが、
前記運動信号を受信するステップと;
前記コンピュータの入力装置から既定の時間内に少なくとも1の運動信号が続くセンサ活性化信号を受信するとセンサ活性化メッセージを生成するステップと;
を具えることを特徴とする方法。
【請求項24】
請求項22に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、
前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップを具えており、前記センサ活性化メッセージは前記ボタンダウンのメッセージと同一であり、前記センサ非活性化メッセージは前記ボタンアップのメッセージと同一であることを特徴とする方法。
【請求項25】
請求項22に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、
前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップを具えており、前記センサ活性化メッセージは前記ボタンダウンのメッセージと異なり、前記センサ非活性化メッセージは前記ボタンアップメッセージと異なることを特徴とする方法。
【請求項26】
請求項22に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップを具えており、
前記生成するステップが、
前記コンピュータの入力装置からセンサ活性化信号を受信するとボタンダウンのメッセージが続くセンサ活性化メッセージを生成するステップと;
前記コンピュータの入力装置からセンサ非活性化信号を受信するとボタンアップのメッセージが続くセンサ非活性化信号を生成するステップと;
を具えることを特徴とする方法。
【請求項27】
請求項22に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、
前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップと;
前記ボタンダウンおよびボタンアップ信号をメッセージ通信路を介してアプリケーションプログラムに転送するステップと;
前記センサ活性化メッセージを前記メッセージ通信路を介して前記アプリケーションプログラムに転送するステップと;
を具えることを特徴とする方法。
【請求項28】
請求項22に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、
前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップと;
前記ボタンダウンおよびボタンアップ信号をメッセージ通信路を介してアプリケーションプログラムに転送するステップと;
前記センサ非活性化メッセージを前記メッセージ通信路を介して前記アプリケーションプログラムに転送するステップと;
を具えることを特徴とする方法。
【請求項29】
請求項22に記載の方法において、
フックプログラムにより前記センサ活性化およびセンサ非活性化メッセージを受信するステップをさらに具えており、
前記フックプログラムが、どのアプリケーションプログラムが前記センサ活性化およびセンサ非活性化メッセージに影響されるべきかを特定したユーザ指定に基づいて、アクティブアプリケーションに前記センサ活性化およびセンサ非活性化メッセージを選択的に転送することを特徴とする方法。
【請求項30】
請求項29に記載の方法において、前記ユーザ指定がさらに、どのアプリケーションが前記センサ活性化およびセンサ非活性化メッセージに影響されるべきかという条件を特定していると共に、前記条件の1つは、マウスカーソルが前記アプリケーションのウィンドウにおける既定の場所に位置しているか否かであることを特徴とする方法。
【請求項1】
コンピュータの入力装置であって、
前記コンピュータの入力装置の動きを追跡するデバイス運動トラッキング機構と;
指で押すことにより作動可能な1以上のボタンと;
ユーザの1以上の指で作動可能なセンサと;
を具えることを特徴とする装置。
【請求項2】
請求項1に記載のコンピュータ入力装置において、前記センサは光学式センサであることを特徴とする装置。
【請求項3】
請求項2に記載のコンピュータ入力装置において、前記センサは、前記センサが覆われている時に第1の状態となり、前記センサが覆われていない時に第2の状態となることを特徴とする装置。
【請求項4】
請求項2に記載のコンピュータ入力装置において、前記光学式センサは2つのセンサ部を具えており、第1のセンサ部が覆われており第2のセンサ部が覆われていない時に前記センサは第1の状態となり、前記第1のセンサ部が覆われておらず前記第2のセンサ部が覆われている時に前記センサは第2の状態となることを特徴とする装置。
【請求項5】
請求項1に記載のコンピュータ入力装置において、前記センサはタッチ感応型センサであることを特徴とする装置。
【請求項6】
請求項1に記載のコンピュータ入力装置において、前記コンピュータの入力装置は物理的にキーボードから独立したマウスであることを特徴とする装置。
【請求項7】
請求項1に記載のコンピュータ入力装置において、
前記デバイス運動トラッキング機構と、前記ボタンと、前記センサと物理的に一体型のキーボードをさらに具えることを特徴とする入力装置。
【請求項8】
請求項1に記載のコンピュータ入力装置において、
前記センサの状態の変化を検出して、センサ活性化メッセージおよびセンサ非活性化メッセージを含む1以上のメッセージを生成する制御回路をさらに具えることを特徴とする装置。
【請求項9】
請求項8に記載のコンピュータ入力装置において、前記制御回路が、第1の状態から第2の状態への前記センサの変化を検出してセンサ活性化メッセージを生成し、前記第2の状態から前記第1の状態への前記センサの変化を検出してセンサ非活性化メッセージを生成することを特徴とする装置。
【請求項10】
請求項8に記載のコンピュータ入力装置において、前記センサは2つのセンサ部を具える光学式センサであって、第1のセンサ部が覆われており第2のセンサ部が覆われていない時に前記センサは第1の状態となり、前記第1のセンサ部が覆われておらず前記第2のセンサ部が覆われている時に前記センサは第2の状態となり、前記制御回路が、既定の時間内に前記第1の状態から前記第2の状態への前記センサの変化を検出するとセンサ活性化メッセージを生成し、前記既定の時間内に前記第2の状態から前記第1の状態への前記センサの変化を検出するとセンサ非活性化メッセージを生成することを特徴とする装置。
【請求項11】
請求項8に記載のコンピュータ入力装置において、前記制御回路が、前記デバイス運動トラッキング機構により生成された運動信号をさらに検出し、既定の時間内に少なくとも1の運動信号が続く第1の状態から第2の状態への前記センサの変化を検出するとセンサ活性化メッセージを生成することを特徴とする装置。
【請求項12】
請求項8に記載のコンピュータ入力装置において、前記制御回路が、前記1以上のボタンのうちの第1のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップのメッセージを生成すると共に、前記センサ活性化メッセージは前記ボタンダウンのメッセージと同一であり、前記センサ非活性化メッセージは前記ボタンメッセージと同一であることを特徴とする装置。
【請求項13】
請求項8に記載のコンピュータ入力装置において、前記制御回路が、前記1以上のボタンのうちの第1のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップのメッセージを生成すると共に、前記センサ活性化メッセージは前記ボタンダウンのメッセージと異なり、前記センサ非活性化メッセージは前記ボタンアップメッセージとは異なることを特徴とする装置。
【請求項14】
請求項8に記載のコンピュータ入力装置において、前記制御回路が、前記1以上のボタンのうちの第1のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップのメッセージを生成し、第1の状態から第2の状態への前記センサの変化を検出するとボタンダウンのメッセージが続くセンサ活性化メッセージを生成し、前記第2の状態から前記第1の状態への前記センサの変化を検出するとボタンアップのメッセージが続くセンサ非活性化メッセージを生成することを特徴とする装置。
【請求項15】
コンピュータの入力装置と、当該コンピュータの入力装置に接続されたホストコンピュータとを具えるシステムにおいて、
前記コンピュータの入力装置が、
前記コンピュータの入力装置の動きを追跡するデバイス運動トラッキング機構と;
指で押すことにより作動可能な1以上のボタンと;
1以上の指で作動可能なセンサと;
前記センサの状態の変化を検出し、センサ活性化信号とセンサ非活性化信号とを含む1以上の信号を生成する制御回路と;を具え、
前記ホストコンピュータが、前記コンピュータの入力装置から前記センサ活性化およびセンサ非活性化信号を受信し、対応するセンサ活性化およびセンサ非活性化メッセージを生成する制御部を具えることを特徴とするシステム。
【請求項16】
請求項15に記載のシステムにおいて、前記ホストコンピュータの前記制御部が、前記コンピュータの入力装置からセンサ活性化信号を受信してセンサ活性化メッセージを生成し、前記コンピュータの入力装置からセンサ非活性化信号を受信してセンサ非活性化メッセージを生成することを特徴とするシステム。
【請求項17】
請求項15に記載のシステムにおいて、
前記コンピュータの入力装置の前記制御回路が前記デバイス運動トラッキング機構により生成された運動信号をさらに検出して運動信号を生成し、
前記ホストコンピュータの前記制御部が前記運動信号を受信し、
前記ホストコンピュータの前記制御部が前記コンピュータの入力装置から既定の時間内に少なくとも1の運動信号が続くセンサ活性化信号を受信するとセンサ活性化メッセージを生成することを特徴とするシステム。
【請求項18】
請求項15に記載のシステムにおいて、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記ホストコンピュータの前記制御部が前記ボタンダウンおよびボタンアップ信号を受信して対応するボタンダウンおよびボタンアップのメッセージを生成し、
前記センサ活性化メッセージは前記ボタンダウンのメッセージと同一であり、前記センサ非活性化メッセージは前記ボタンアップのメッセージと同一であることを特徴とするシステム。
【請求項19】
請求項15に記載のシステムにおいて、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記ホストコンピュータの前記制御部が前記ボタンダウンおよびボタンアップ信号を受信して対応するボタンダウンおよびボタンアップのメッセージを生成し、
前記センサ活性化メッセージは前記ボタンダウンのメッセージと異なり、前記センサ非活性化メッセージは前記ボタンアップのメッセージと異なることを特徴とするシステム。
【請求項20】
請求項15に記載のシステムにおいて、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記ホストコンピュータの前記制御部が前記ボタンダウンおよびボタンアップ信号を受信して対応するボタンダウンおよびボタンアップのメッセージを生成し、
前記ホストコンピュータの前記制御部は、前記コンピュータの入力装置からセンサ活性化信号を受信するとボタンダウンメッセージが続くセンサ活性化メッセージを生成し、前記コンピュータの入力装置からセンサ非活性化信号を受信するとボタンアップのメッセージが続くセンサ非活性化メッセージを生成することを特徴とするシステム。
【請求項21】
コンピュータの入力装置であって、
当該コンピュータの入力装置の動きを追跡して、前記コンピュータの入力装置の運動を示す第1の信号のセットを生成するデバイス運動トラッキング機構と;
1以上のボタンであって、当該ボタンが押されている状態を示す第2の信号のセットを生成する1以上のボタンと;
作動状態を示す第3の信号のセットを生成するセンサであって、前記第3の信号のセットが前記第1および第2の信号とは異なるセンサと;
を具えることを特徴とする装置。
【請求項22】
コンピュータの入力装置に接続されたホストコンピュータで実行される方法において、前記コンピュータの入力装置が、コンピュータの入力装置の動きを追跡するデバイス運動トラッキング機構と、指で押すことにより作動可能な1以上のボタンと、1以上の指で作動可能なセンサと、前記センサの状態の変化を検出してセンサ活性化信号およびセンサ非活性化信号を含む1以上の信号を生成する制御回路とを具えており、前記方法が、
前記コンピュータの入力装置から前記センサ活性化およびセンサ非活性化信号を受信するステップと;
対応するセンサ活性化およびセンサ非活性化メッセージを生成するステップと;
を具えることを特徴とする方法。
【請求項23】
請求項22に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記デバイス運動トラッキング機構により生成された運動信号をさらに検出し、
前記生成するステップが、
前記運動信号を受信するステップと;
前記コンピュータの入力装置から既定の時間内に少なくとも1の運動信号が続くセンサ活性化信号を受信するとセンサ活性化メッセージを生成するステップと;
を具えることを特徴とする方法。
【請求項24】
請求項22に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、
前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップを具えており、前記センサ活性化メッセージは前記ボタンダウンのメッセージと同一であり、前記センサ非活性化メッセージは前記ボタンアップのメッセージと同一であることを特徴とする方法。
【請求項25】
請求項22に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、
前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップを具えており、前記センサ活性化メッセージは前記ボタンダウンのメッセージと異なり、前記センサ非活性化メッセージは前記ボタンアップメッセージと異なることを特徴とする方法。
【請求項26】
請求項22に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップを具えており、
前記生成するステップが、
前記コンピュータの入力装置からセンサ活性化信号を受信するとボタンダウンのメッセージが続くセンサ活性化メッセージを生成するステップと;
前記コンピュータの入力装置からセンサ非活性化信号を受信するとボタンアップのメッセージが続くセンサ非活性化信号を生成するステップと;
を具えることを特徴とする方法。
【請求項27】
請求項22に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、
前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップと;
前記ボタンダウンおよびボタンアップ信号をメッセージ通信路を介してアプリケーションプログラムに転送するステップと;
前記センサ活性化メッセージを前記メッセージ通信路を介して前記アプリケーションプログラムに転送するステップと;
を具えることを特徴とする方法。
【請求項28】
請求項22に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記1以上のボタンのうちの第1のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、
前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップと;
前記ボタンダウンおよびボタンアップ信号をメッセージ通信路を介してアプリケーションプログラムに転送するステップと;
前記センサ非活性化メッセージを前記メッセージ通信路を介して前記アプリケーションプログラムに転送するステップと;
を具えることを特徴とする方法。
【請求項29】
請求項22に記載の方法において、
フックプログラムにより前記センサ活性化およびセンサ非活性化メッセージを受信するステップをさらに具えており、
前記フックプログラムが、どのアプリケーションプログラムが前記センサ活性化およびセンサ非活性化メッセージに影響されるべきかを特定したユーザ指定に基づいて、アクティブアプリケーションに前記センサ活性化およびセンサ非活性化メッセージを選択的に転送することを特徴とする方法。
【請求項30】
請求項29に記載の方法において、前記ユーザ指定がさらに、どのアプリケーションが前記センサ活性化およびセンサ非活性化メッセージに影響されるべきかという条件を特定していると共に、前記条件の1つは、マウスカーソルが前記アプリケーションのウィンドウにおける既定の場所に位置しているか否かであることを特徴とする方法。
【図1A】
【図1B】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図7】
【図8】
【図9】
【図10A】
【図10B】
【図11】
【図12A】
【図12B】
【図13A】
【図13B】
【図1B】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図7】
【図8】
【図9】
【図10A】
【図10B】
【図11】
【図12A】
【図12B】
【図13A】
【図13B】
【公表番号】特表2011−507075(P2011−507075A)
【公表日】平成23年3月3日(2011.3.3)
【国際特許分類】
【出願番号】特願2010−537014(P2010−537014)
【出願日】平成20年12月2日(2008.12.2)
【国際出願番号】PCT/US2008/085255
【国際公開番号】WO2009/073657
【国際公開日】平成21年6月11日(2009.6.11)
【出願人】(510154936)
【氏名又は名称原語表記】TRUONG,Duc Phu
【Fターム(参考)】
【公表日】平成23年3月3日(2011.3.3)
【国際特許分類】
【出願日】平成20年12月2日(2008.12.2)
【国際出願番号】PCT/US2008/085255
【国際公開番号】WO2009/073657
【国際公開日】平成21年6月11日(2009.6.11)
【出願人】(510154936)
【氏名又は名称原語表記】TRUONG,Duc Phu
【Fターム(参考)】
[ Back to top ]