(57)【要約】  指トリガ型センサ付のコンピュータ入力装置（例えばマウス）である。このセンサは、クリックボタン、トラッキングデバイスおよびスクロールホイールにより生成される従来のマウス信号に加えて入力信号を生成する。前記センサは、光学センサ、タッチ感応型センサまたは他の種類のセンサでもよい。センサにより生成された前記信号は、単独、またはボタン、トラッキングデバイスまたはスクロールホイールにより生成された他の信号との組み合わせのいずれかであり、操作システムおよび／またはアプリケーションプログラムの様々なメッセージを生成するために解釈されてもよい。解釈は、入力装置の回路、ホストコンピュータのドライバプログラム、またはその両方により実行されてもよい。前記センサは、マウス、ポインティングデバイスを有するラップトップ型キーボード、ポインティングデバイスを具える外付けキーボード、または空いているポートを介してコンピュータに電気的に接続可能な独立型デバイスに設けられてもよい。【選択図】図１Ａ
2011507075.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータの入力装置であって、
前記コンピュータの入力装置の動きを追跡するデバイス運動トラッキング機構と；
指で押すことにより作動可能な１以上のボタンと；
ユーザの１以上の指で作動可能なセンサと；
を具えることを特徴とする装置。
【請求項２】
請求項１に記載のコンピュータ入力装置において、前記センサは光学式センサであることを特徴とする装置。
【請求項３】
請求項２に記載のコンピュータ入力装置において、前記センサは、前記センサが覆われている時に第１の状態となり、前記センサが覆われていない時に第２の状態となることを特徴とする装置。
【請求項４】
請求項２に記載のコンピュータ入力装置において、前記光学式センサは２つのセンサ部を具えており、第１のセンサ部が覆われており第２のセンサ部が覆われていない時に前記センサは第１の状態となり、前記第１のセンサ部が覆われておらず前記第２のセンサ部が覆われている時に前記センサは第２の状態となることを特徴とする装置。
【請求項５】
請求項１に記載のコンピュータ入力装置において、前記センサはタッチ感応型センサであることを特徴とする装置。
【請求項６】
請求項１に記載のコンピュータ入力装置において、前記コンピュータの入力装置は物理的にキーボードから独立したマウスであることを特徴とする装置。
【請求項７】
請求項１に記載のコンピュータ入力装置において、
前記デバイス運動トラッキング機構と、前記ボタンと、前記センサと物理的に一体型のキーボードをさらに具えることを特徴とする入力装置。
【請求項８】
請求項１に記載のコンピュータ入力装置において、
前記センサの状態の変化を検出して、センサ活性化メッセージおよびセンサ非活性化メッセージを含む１以上のメッセージを生成する制御回路をさらに具えることを特徴とする装置。
【請求項９】
請求項８に記載のコンピュータ入力装置において、前記制御回路が、第１の状態から第２の状態への前記センサの変化を検出してセンサ活性化メッセージを生成し、前記第２の状態から前記第１の状態への前記センサの変化を検出してセンサ非活性化メッセージを生成することを特徴とする装置。
【請求項１０】
請求項８に記載のコンピュータ入力装置において、前記センサは２つのセンサ部を具える光学式センサであって、第１のセンサ部が覆われており第２のセンサ部が覆われていない時に前記センサは第１の状態となり、前記第１のセンサ部が覆われておらず前記第２のセンサ部が覆われている時に前記センサは第２の状態となり、前記制御回路が、既定の時間内に前記第１の状態から前記第２の状態への前記センサの変化を検出するとセンサ活性化メッセージを生成し、前記既定の時間内に前記第２の状態から前記第１の状態への前記センサの変化を検出するとセンサ非活性化メッセージを生成することを特徴とする装置。
【請求項１１】
請求項８に記載のコンピュータ入力装置において、前記制御回路が、前記デバイス運動トラッキング機構により生成された運動信号をさらに検出し、既定の時間内に少なくとも１の運動信号が続く第１の状態から第２の状態への前記センサの変化を検出するとセンサ活性化メッセージを生成することを特徴とする装置。
【請求項１２】
請求項８に記載のコンピュータ入力装置において、前記制御回路が、前記１以上のボタンのうちの第１のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップのメッセージを生成すると共に、前記センサ活性化メッセージは前記ボタンダウンのメッセージと同一であり、前記センサ非活性化メッセージは前記ボタンメッセージと同一であることを特徴とする装置。
【請求項１３】
請求項８に記載のコンピュータ入力装置において、前記制御回路が、前記１以上のボタンのうちの第１のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップのメッセージを生成すると共に、前記センサ活性化メッセージは前記ボタンダウンのメッセージと異なり、前記センサ非活性化メッセージは前記ボタンアップメッセージとは異なることを特徴とする装置。
【請求項１４】
請求項８に記載のコンピュータ入力装置において、前記制御回路が、前記１以上のボタンのうちの第１のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップのメッセージを生成し、第１の状態から第２の状態への前記センサの変化を検出するとボタンダウンのメッセージが続くセンサ活性化メッセージを生成し、前記第２の状態から前記第１の状態への前記センサの変化を検出するとボタンアップのメッセージが続くセンサ非活性化メッセージを生成することを特徴とする装置。
【請求項１５】
コンピュータの入力装置と、当該コンピュータの入力装置に接続されたホストコンピュータとを具えるシステムにおいて、
前記コンピュータの入力装置が、
前記コンピュータの入力装置の動きを追跡するデバイス運動トラッキング機構と；
指で押すことにより作動可能な１以上のボタンと；
１以上の指で作動可能なセンサと；
前記センサの状態の変化を検出し、センサ活性化信号とセンサ非活性化信号とを含む１以上の信号を生成する制御回路と；を具え、
前記ホストコンピュータが、前記コンピュータの入力装置から前記センサ活性化およびセンサ非活性化信号を受信し、対応するセンサ活性化およびセンサ非活性化メッセージを生成する制御部を具えることを特徴とするシステム。
【請求項１６】
請求項１５に記載のシステムにおいて、前記ホストコンピュータの前記制御部が、前記コンピュータの入力装置からセンサ活性化信号を受信してセンサ活性化メッセージを生成し、前記コンピュータの入力装置からセンサ非活性化信号を受信してセンサ非活性化メッセージを生成することを特徴とするシステム。
【請求項１７】
請求項１５に記載のシステムにおいて、
前記コンピュータの入力装置の前記制御回路が前記デバイス運動トラッキング機構により生成された運動信号をさらに検出して運動信号を生成し、
前記ホストコンピュータの前記制御部が前記運動信号を受信し、
前記ホストコンピュータの前記制御部が前記コンピュータの入力装置から既定の時間内に少なくとも１の運動信号が続くセンサ活性化信号を受信するとセンサ活性化メッセージを生成することを特徴とするシステム。
【請求項１８】
請求項１５に記載のシステムにおいて、
前記コンピュータの入力装置の前記制御回路が前記１以上のボタンのうちの第１のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記ホストコンピュータの前記制御部が前記ボタンダウンおよびボタンアップ信号を受信して対応するボタンダウンおよびボタンアップのメッセージを生成し、
前記センサ活性化メッセージは前記ボタンダウンのメッセージと同一であり、前記センサ非活性化メッセージは前記ボタンアップのメッセージと同一であることを特徴とするシステム。
【請求項１９】
請求項１５に記載のシステムにおいて、
前記コンピュータの入力装置の前記制御回路が前記１以上のボタンのうちの第１のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記ホストコンピュータの前記制御部が前記ボタンダウンおよびボタンアップ信号を受信して対応するボタンダウンおよびボタンアップのメッセージを生成し、
前記センサ活性化メッセージは前記ボタンダウンのメッセージと異なり、前記センサ非活性化メッセージは前記ボタンアップのメッセージと異なることを特徴とするシステム。
【請求項２０】
請求項１５に記載のシステムにおいて、
前記コンピュータの入力装置の前記制御回路が前記１以上のボタンのうちの第１のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記ホストコンピュータの前記制御部が前記ボタンダウンおよびボタンアップ信号を受信して対応するボタンダウンおよびボタンアップのメッセージを生成し、
前記ホストコンピュータの前記制御部は、前記コンピュータの入力装置からセンサ活性化信号を受信するとボタンダウンメッセージが続くセンサ活性化メッセージを生成し、前記コンピュータの入力装置からセンサ非活性化信号を受信するとボタンアップのメッセージが続くセンサ非活性化メッセージを生成することを特徴とするシステム。  
【請求項２１】
コンピュータの入力装置であって、
当該コンピュータの入力装置の動きを追跡して、前記コンピュータの入力装置の運動を示す第１の信号のセットを生成するデバイス運動トラッキング機構と；
１以上のボタンであって、当該ボタンが押されている状態を示す第２の信号のセットを生成する１以上のボタンと；
作動状態を示す第３の信号のセットを生成するセンサであって、前記第３の信号のセットが前記第１および第２の信号とは異なるセンサと；
を具えることを特徴とする装置。
【請求項２２】
コンピュータの入力装置に接続されたホストコンピュータで実行される方法において、前記コンピュータの入力装置が、コンピュータの入力装置の動きを追跡するデバイス運動トラッキング機構と、指で押すことにより作動可能な１以上のボタンと、１以上の指で作動可能なセンサと、前記センサの状態の変化を検出してセンサ活性化信号およびセンサ非活性化信号を含む１以上の信号を生成する制御回路とを具えており、前記方法が、
前記コンピュータの入力装置から前記センサ活性化およびセンサ非活性化信号を受信するステップと；
対応するセンサ活性化およびセンサ非活性化メッセージを生成するステップと；
を具えることを特徴とする方法。
【請求項２３】
請求項２２に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記デバイス運動トラッキング機構により生成された運動信号をさらに検出し、
前記生成するステップが、
前記運動信号を受信するステップと；
前記コンピュータの入力装置から既定の時間内に少なくとも１の運動信号が続くセンサ活性化信号を受信するとセンサ活性化メッセージを生成するステップと；
を具えることを特徴とする方法。
【請求項２４】
請求項２２に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記１以上のボタンのうちの第１のボタンの状態の変化を検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、
前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップを具えており、前記センサ活性化メッセージは前記ボタンダウンのメッセージと同一であり、前記センサ非活性化メッセージは前記ボタンアップのメッセージと同一であることを特徴とする方法。
【請求項２５】
請求項２２に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記１以上のボタンのうちの第１のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、
前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップを具えており、前記センサ活性化メッセージは前記ボタンダウンのメッセージと異なり、前記センサ非活性化メッセージは前記ボタンアップメッセージと異なることを特徴とする方法。
【請求項２６】
請求項２２に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記１以上のボタンのうちの第１のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップを具えており、
前記生成するステップが、
前記コンピュータの入力装置からセンサ活性化信号を受信するとボタンダウンのメッセージが続くセンサ活性化メッセージを生成するステップと；
前記コンピュータの入力装置からセンサ非活性化信号を受信するとボタンアップのメッセージが続くセンサ非活性化信号を生成するステップと；
を具えることを特徴とする方法。
【請求項２７】
請求項２２に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記１以上のボタンのうちの第１のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、
前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップと；
前記ボタンダウンおよびボタンアップ信号をメッセージ通信路を介してアプリケーションプログラムに転送するステップと；
前記センサ活性化メッセージを前記メッセージ通信路を介して前記アプリケーションプログラムに転送するステップと；
を具えることを特徴とする方法。
【請求項２８】
請求項２２に記載の方法において、
前記コンピュータの入力装置の前記制御回路が前記１以上のボタンのうちの第１のボタンの状態の変化をさらに検出して、前記状態の変化に基づいてボタンダウンおよびボタンアップ信号を生成し、
前記方法がさらに、
前記ボタンダウンおよびボタンアップ信号を受信して、対応するボタンダウンおよびボタンアップのメッセージを生成するステップと；
前記ボタンダウンおよびボタンアップ信号をメッセージ通信路を介してアプリケーションプログラムに転送するステップと；
前記センサ非活性化メッセージを前記メッセージ通信路を介して前記アプリケーションプログラムに転送するステップと；
を具えることを特徴とする方法。
【請求項２９】
請求項２２に記載の方法において、
フックプログラムにより前記センサ活性化およびセンサ非活性化メッセージを受信するステップをさらに具えており、
前記フックプログラムが、どのアプリケーションプログラムが前記センサ活性化およびセンサ非活性化メッセージに影響されるべきかを特定したユーザ指定に基づいて、アクティブアプリケーションに前記センサ活性化およびセンサ非活性化メッセージを選択的に転送することを特徴とする方法。
【請求項３０】
請求項２９に記載の方法において、前記ユーザ指定がさらに、どのアプリケーションが前記センサ活性化およびセンサ非活性化メッセージに影響されるべきかという条件を特定していると共に、前記条件の１つは、マウスカーソルが前記アプリケーションのウィンドウにおける既定の場所に位置しているか否かであることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ用の入力装置に関し、特に、指で操作可能なセンサを有するマウスまたは他の種類のポインティングデバイスに関する。
【背景技術】
【０００２】
従来のコンピュータのポインティングデバイス（マウスとしても知られる）は、ボタン信号を生成する１以上のクリックボタンと、スクロール信号を生成するホイール型のスクロールデバイスと、運動信号を生成する運動トラッキングデバイスとを有する。最も使用されているソフトウェアのＧＵＩ（グラフィカルユーザインターフェース）操作のうち２つを実行するため、通常のマウスの複数のボタンのうち、左ボタンが最も使用頻度の高いボタンであり、第１にクリックすることによりオブジェクトを選択し、第２にまずクリックして、左ボタンを押さえながらマウスをドラッグして、ある位置から他の位置へオブジェクトを移動させる。オブジェクトを選択する操作が非常に簡単な一方、ドラッグ操作中ユーザは左ボタンを押さえておかねばならないため、ドラッグ操作は難しくマウス操作を誤りがちである。ユーザの操作を簡単かつ間違えにくくする更に人間工学的な入力装置を設計することで、他の入力操作にも利益があるかもしれない。
【発明の概要】
【０００３】
本発明は、関連技術の制限および欠点による１以上の問題を実質的に取り除く、コンピュータの入力装置に関する。
【０００４】
本発明の複数の実施形態は、多くの一般のマウス操作を従来のマウスよりも効率的かつ人間工学的に行うために、ポインティングデバイスおよびキーボードといったコンピュータの入力装置と一緒に機能する指トリガ型センサを提供する。指トリガ型センサは、キーボードまたはコンピュータのポインティングデバイス（マウス)に内蔵され、あるいは別個のデバイスとして設計され、コンピュータにインストールされたソフトウェアプログラムを介してキーボードまたはマウス操作と相互に作用することもできる。
【０００５】
センサの一適用例は、マウスボタンを全く押すことなくコンピュータスクリーン上のグラフィックオブジェクトをドラッグする代替の方法を提供する。本発明のドラッグ方法は、左ボタンと完全に取って代わるソフトウェアおよびハードウェアが付属されたセンサを使用するため、コンピュータのグラフィックオブジェクトをドラッグする操作を簡単かつ安全にする。
【０００６】
本発明のさらなる特徴および利点は以下の説明に記載され、部分的にはこの説明から明らかとなり、あるいは本発明を実施することにより理解されるであろう。本発明の目的および他の利点は、記載された本明細書、その特許請求の範囲また添付の図面において特に指摘された構造により認識かつ達成されるであろう。
【０００７】
これらの利点と他の利点の達成と本発明の目的により、例示かつ広く記載したように、本発明はコンピュータの入力装置の動きを追跡するデバイス運動トラッキング機構と；指で押すことにより作動可能な１以上のボタンと；指でトリガ可能なセンサと；を具えるコンピュータの入力装置を提供する。
【０００８】
他の態様では、本発明は、コンピュータ入力装置と、このコンピュータ入力装置に接続されたホストコンピュータとを具えるシステムを提供しており、このコンピュータ入力装置は、コンピュータ入力装置の動きを追跡するデバイス運動トラッキング機構と；指で押すことにより作動可能な１以上のボタンと；指でトリガ可能なセンサと；センサの状態の変化を検出して、センサ活性化信号およびセンサ非活性化信号を含む１以上の信号を生成する制御回路とを具え、；前記ホストコンピュータが、前記コンピュータ入力装置からセンサ活性化およびセンサ非活性化信号を受信して対応するセンサ活性化およびセンサ非活性化のメッセージを生成する制御部を具える。
【０００９】
本発明は、上記デバイスにより実行される方法も提供する。
【００１０】
前述の一般的な説明および後述の詳細の説明は例示的かつ説明的であり、クレームにかかる本発明をさらに説明することを意図している。
【図面の簡単な説明】
【００１１】
【図１Ａ】図１Ａは、本発明の実施形態による指トリガ型センサ付のマウスを示す。
【図１Ｂ】図１Ｂは、本発明の実施形態による図１Ａのマウスの操作を図示する。図１Ａはセンサが露出した状態だが、図１Ｂはセンサが覆われた状態を示している。
【図２】図２は、図１Ａのマウスの構成部品を示す概略ブロック図である。
【図３】図３は、ホストに接続した図１Ａのマウスを示す概略ブロック図である。
【図４】図４は、本発明のさらなる他の実施形態によるマウスを示す。
【図５】図５は、本発明の実施形態によるタッチ感応型パッドおよび指トリガ型センサ付のラップトップ型キーボードを示す。
【図６Ａ】図６Ａは、本発明の他の実施形態によるタッチ感応型パッドおよび複数のセンサ部を有する指トリガ型センサ付のラップトップ型キーボードを示す。
【図６Ｂ】図６Ｂは、本発明の他の実施形態によるタッチ感応型パッドおよび複数のセンサ部を有する指トリガ型センサ付のラップトップ型キーボードを示す。
【図７】図７は、マウスの制御回路によりドラッグアンドドロップ操作を実行する方法を示す。
【図８】図８は、マウスの制御回路によりドラッグアンドドロップ操作を実行する他の方法を示す。
【図９】図９は、マウスドライバによりドラッグアンドドロップ操作を実行する方法を示す。
【図１０Ａ】図１０Ａは、装置のデバイスドライバからアクティブアプリケーションまでのマウス信号の経路を示す。
【図１０Ｂ】図１０Ｂは、装置のデバイスドライバからアクティブアプリケーションまでのマウス信号の経路を示す。
【図１１】図１１は、マウスデバイスドライバによって実行される処理の例を示す。
【図１２Ａ】図１２Ａは、ドラッグ操作においてマウスのフックプログラムにより実行される処理の例を示す。
【図１２Ｂ】図１２Ｂは、ドラッグ操作においてマウスのフックプログラムにより実行される処理の例を示す。
【図１３Ａ】図１３Ａは、ドラッグ操作においてマウスデバイスドライバによって実行される処理の例を示す。
【図１３Ｂ】図１３Ｂは、ドラッグ操作においてマウスデバイスドライバによって実行される処理の例を示す。
【発明を実施するための形態】
【００１２】
本発明の実施形態は、クリックボタンにより生成される従来のボタン信号、運動トラッキングデバイスにより生成される運動信号、およびスクロールホイールにより生成されるスクロール信号に加えて、入力信号を生成する指トリガ型センサ付のマウスとして通常称されるコンピュータの入力装置を提供する。より広義には、このセンサは１以上の指の存在または動きを検出する指トリガ型センサである。本開示で使用される場合、用語「指」は親指を含む。
【００１３】
図１Ａ、図１Ｂおよび図２に示されるように、本発明の実施形態によるマウス１０は、左ボタン１１と、右ボタン１２（任意)と、スクロールホイール１３（任意)と、マウスの運動信号を生成するマウスの運動トラッキング機構１４（機械式または光学式のいずれか）（図１Ａおよび図１Ｂには図示せず）と、指トリガ型センサ１５とを具える。制御回路１６は、マウスの様々な構成部品を制御し、これらの構成部品から生成された様々な信号を解釈し、インターフェイス１７を介してホストコンピュータに送信される論理信号（時々、プログラムのコンテクストにおいてメッセージと称される）を生成するために提供されている。代替例では、マウス１０は様々な構成部品１１乃至１５により生成された信号をホストコンピュータに送信し、当該ホストコンピュータは信号を解釈して適当なメッセージを生成する好適な回路を具備してもよい。左ボタン１１、右ボタン１２、スクロールホイール１３およびマウスの運動トラッキング機構１４は従来の構成部品であり、それらの構造については本明細書でさらに詳しく記載しない。指トリガ型センサ１５は、露出した状態から指で覆われた時に１のセンサ信号を生成し、および／または覆われた状態から露出された時に他のセンサ信号を生成する光学式センサ(例えば、ＬＥＤ（発光ダイオード）を用いたもの）として実装されてもよい。センサ１５は、非接触の状態から指が接触した時に１のセンサ信号を生成し、および／または接触した状態から指が離れた時に他のセンサ信号を生成するタッチ感応型センサ(例えば、タッチ感応型パッドを用いたもの）として実装されてもよい。温度センサ等のような、他のものを実装することも可能である。下記の説明では、光学式センサが実装例として使用されているが、この説明はタッチ感応型センサまたは他のものにも適用される。
【００１４】
図１Ａおよび図１Ｂに示されるように、ユーザは通常、手の親指と小指および／または薬指とでマウス１０を握り、左右のマウスボタン１１および１２を押すのに人差し指および中指を使う。下記の説明では例として右利き用マウスを用いるが、左利き用デバイスとして製造してもよい。本発明の実施形態によると、指トリガ型センサ１５は、マウスを握る時に親指が通常置かれる場所に近い、マウス１０の左側に配置される。一実施形態では、指トリガ型センサ１５は、通常は露出しているが親指を動かすことで覆われる場所に配置される。例えば、図１Ａに示されるように、親指の通常の位置より上に配置されてもよい。図１Ｂで図示されるように、親指がセンサ１５を覆うように動いた時に第１のセンサ信号が生成され、親指がセンサを露出するように戻った時に第２のセンサ信号が生成される。他の実施形態（図示せず)では、指トリガ型センサ１５は、通常は親指で覆われているが親指を離すことで露出される場所に配置される。親指がセンサ１５を露出するように動いた時に第１のセンサ信号が生成され、親指がセンサを覆うように戻った時に第２のセンサ信号が生成される。
【００１５】
代替の実施形態では、センサ信号を生成するには２の継続的な指の動きが必要とされる。図１Ａおよび図１Ｂに示されたセンサが通常露出している位置にあるマウス１０では、親指がセンサ１５を覆うように動き、その後（既定の時間内に）センサを露出するように動いた時にセンサ信号が生成される。同様に、センサが通常覆われる場所にあるマウス１０は、親指がセンサ１５を露出するように動き、その後（既定の時間内に）センサを覆うように動いた時にセンサ信号が生成される。このような代替の実施形態は、ユーザが意図せず親指を動かしてセンサを覆った場合に、誤ってセンサが作動するのを防ぐ。しかしながら、前段落に記載した実施形態は異なる第１および第２のセンサ信号を生成できるが、代替の実施形態では１のセンサ信号のみが生成される。
【００１６】
さらに他の実施形態では、図４に示されるように、指トリガ型センサ１５は、２の物理センサ部１５ａおよび１５ｂ（例えば、２のＬＥＤまたは２のタッチ感応型ポイント)を具えており、第１のセンサ部は通常は露出している場所に配置され、第２のセンサ部は通常は親指で覆われている場所に配置される。親指が第１のセンサ部１５ａを露出すると共に第２のセンサ部１５ｂを覆うように動いた時に第１のセンサ信号が生成され、親指が第１のセンサ部１５ａを覆うと共に第２のセンサ部１５ｂを露出するように動いた時に第２のセンサ信号が生成される。換言すると、第２のセンサ部１５ｂが覆われる前後の既定の時間内に第１のセンサ部１５ａが露出された場合に第１のセンサ信号が生成され、第１のセンサ部１５ａが覆われる前後の既定の時間内に第２のセンサ部１５ｂが露出された場合に第２のセンサ信号が生成される。単一部分に実装した時と比較すると、意図しない親指の動きによって生成された望ましくないセンサ信号を好適に防ぐことが出来るため、２の部分にセンサを実装した時の方が信頼度が高い。
【００１７】
代替例では、図１Ａ、図１Ｂおよび図４に示される実施形態は、人差し指または中指といった、手の他の指を動かすことによって覆われてかつ露出されうる位置にセンサ１５が配置されるように変更されてもよい。
【００１８】
上述した３つの実施形態（図１Ａ、図１Ｂ および図４)では、指トリガ型センサ１５は２の状態（覆われたおよび覆われていない)を有しており、センサの状態が変化した時にセンサ信号が生成される。第１のセンサの状態は「ノーマル」状態と呼ばれ、センサ信号を生成する動作をすることなく、ユーザが普通にマウスを握っている時に起こり；第２の状態は「アクション」状態と呼ばれ、センサ信号を生成させるためにユーザが指を動かした時に起こる（２つの部分にセンサを実装している場合、両方が覆われたまたは露出した状態は、未定義状態として無視することができる）。指トリガ型センサ１５の「ノーマル」および「アクション」状態は、従来のマウスのクリックボタンが押されていないおよび押された状態に相当すると考えてもよい。指トリガ型センサ１５が第１の状態から第２の状態に変化した時に第１のセンサ信号が生成され、センサが第２の状態から第１の状態に変化した時に第２のセンサ信号が生成される。（２のセンサ部を有する実施形態では、第１および第２の状態に加えて、両方のセンサ部が覆われたまたは両方が露出している場合といった、他の未定義状態が存在する。このような実施形態では、既定の時間内に第１の状態から第２の状態またはその逆に変化が起こった時にセンサ信号が生成される。従って、長時間の未定義状態によって状態の変化が中断された場合、信号は生成されない。）便宜上、これら２のセンサ信号は、「センサ活性化」信号 および「センサ非活性化」信号と称する。これらは、従来のマウスにおいてクリックボタンを押下げて放すことにより生成される、ボタンダウンとボタンアップ信号（このような信号は、当業者によってしばしばメッセージと称される）に相当すると考えてもよい。ボタンダウンおよびボタンアップ信号が異なる２の信号であるように、２のセンサ信号は好適には異なる信号（またはトグル信号）である。さらに詳細は以下に記載するが、マウス１０は所望の意味を持つ２のセンサ信号を与えるようにプログラムすることができる。
【００１９】
指トリガ型センサ１５は、ラップトップ型コンピュータのポインティングデバイスのようなマウス以外の他のポインティングデバイスに設けられてもよい。図５は、本発明の実施形態による指トリガ型センサ２５を具備したキーボード２８およびタッチ感応型パッド形式のポインティングデバイス２０を有するラップトップ型コンピュータの一部を示す。ポインティングデバイス２０は、タッチ感応型パッド２４と、左ボタン２１と、右ボタン２２（任意)と、タッチ感応型パッド２４の近くに位置する光学式センサまたはタッチ感応型センサにより実装された指トリガ型センサ２５とを具える。センサ２５は、パッド２４の左側、右側、上側、または下側に配置されてもよい。指トリガ型センサ２５は、好適には２つのセンサ部２５ａおよび２５ｂを具える。第１のセンサ部２５ａが覆われて第２のセンサ部２５ｂが露出した時に第１のセンサ状態が規定され、第１のセンサ部２５ａが露出して第２のセンサ部２５ｂが覆われた時に第２のセンサ状態が規定される。センサの状態が既定の時間内に第１の状態から第２の状態に変化した時に第１のセンサ信号が生成される。その反対が起こった時に第２のセンサ信号が生成される。
【００２０】
いくつかのラップトップ型コンピュータは、タッチ感応型パッドの代わりに、シンクパッドのラップトップのトラックポイントのような他のトラッキングデバイスを使っている。上記のセンサ２５は、このようなラップトップ型のキーボードにも提供できる。加えて、図５に示されるセンサ構造は、デスクトップ型またはラップトップ型コンピュータ用の外付けキーボードに提供されてもよい。いくつかの外付けキーボードにはポインティングデバイスとしてタッチ感応型パッドおよびボタンが具備されている。上記のセンサ２５は、このようなキーボードにも提供できる。上記のセンサ２５は、ポインティングデバイスがない通常のキーボードにも提供できる。
【００２１】
図６Ａおよび図６Ｂは、ラップトップ型コンピュータのポインティングデバイスに設けられた指トリガ型センサの他の実施形態を示す。４つのセンサ部２５ａ、２５ｂ、２５ｃおよび２５ｄが提供されており、一括してセンサ２５を構成している。タッチパッド２４の各側に２つのセンサ部が配置されている。図６Ｂに示されるように、ユーザは一方の手の指を使って選択したセンサ部を覆い、通常の方法で他の手の指を使って運動信号を生成させる。さらに、第５のセンサ部２５ｅは、運動信号を生成するのと同じ手の親指で覆うことが可能なキーボードの縁に設けられている。第５のセンサ部２５ｅは、親指で覆われている部分が図６Ａに破線で示されている。第５のセンサ部２５ｅを使用することにより、ユーザはセンサ２５およびトラッキング運動の両方を制御するのに同じ手を使うことが出来る。トラッキングデバイスは、ユーザが左利きか右利きか、あるいはユーザが様々なタスクを実行するのに同一の手または異なる手を使うのを好むかといったユーザの好みに基づいて、様々なセンサ部が操作可能または操作不能なようにプログラムされてもよい。
【００２２】
他の実施形態（図示せず)では、センサは、マウスボタンまたはスクロールホイールを有しない独立型デバイスに提供される。
【００２３】
指トリガ型センサ１５により生成されたセンサ信号は、クリックボタン１１、１２、スクロールホイール１３および運動トラッキングデバイス１４により生成されたボタン信号、スクロール信号および運動信号とは異なる物理信号である。センサ信号（物理信号）は、単独またはマウスの他の構成部品により生成された他の物理センサと組み合せて様々な方法で用いられ、ホストコンピュータに送信する様々な論理信号を生成する。センサ信号または信号の組み合わせの意義は、マウスのハードウェア／ファームウェアにより規定され、または操作システム、マウスのドライバプログラムおよび／またはアプリケーションプログラムによりプログラムで規定されてもよい。特に、センサ信号は従来のマウスに現在ある論理信号（メッセージ）として解釈され、それにより本発明の実施形態による指トリガ型センサを実装するマウスは、現行の従来のマウスのドライバ、操作システムおよびアプリケーションプログラムと互換性を持って使用できる。センサ信号が如何に解釈され利用されるかの例を以下に示す。
【００２４】
第１の実施例では、センサ活性化およびセンサ非活性化信号は、従来のマウスの左ボタンダウンおよび左ボタンアップのメッセージとしてそれぞれ解釈される。従って、センサは左ボタンのように機能していると考えることが出来る。これは２つの方法で実行できる。第１に、全てをマウスのハードウェア／ファームウェア内に実装することである。マウスのハードウェア／ファームウェアはセンサの状態の変化を検出し、左ボタンダウンおよび左ボタンアップのメッセージを生成して、ホストコンピュータのマウスドライバに送信する。マウスドライバは、ボタンの代わりにセンサが具えられているとは認識しない。この実装例での利点は、従来のマウスドライバの変更を必要としないことである。この実装例での欠点の１つは、センサをオン／オフする機能がマウスのハードウェアを使用することでしか実行出来ず、ホストコンピュータからは出来ないということである。第２の実行方法は、マウスのハードウェア／ファームウェアおよび改良したホストコンピュータのマウスドライバのソフトウェアを利用することである。マウスのハードウェア／ファームウェアは、ホストコンピュータのマウスドライバにセンサ信号を送信し、マウスドライバは、これらの信号を左ボタンダウンおよび左ボタンアップのメッセージに適宜解釈する。この実装例での利点は、ホストコンピュータのソフトウェアを用いてセンサ機能をオン／オフ出来るという点である。この実装例での他の利点は、後にさらに詳細が記載されるように、ホストコンピュータのマウスのフックプログラムが、様々な操作を実行するために他のキーボードまたはマウス信号と併用してセンサ信号を利用可能になる。
【００２５】
第２の実施例では、センサ活性化信号を受信した後、左ボタンダウンのメッセージが生成される前に、既定の時間内に少なくとも多少のマウス運動を必要とし、さもなくばセンサ活性化信号は無視される。ユーザが意図せずにセンサを作動させた場合、マウスを動かさずに停止させれば、左クリック（左ボタンアップが続く左ボタンダウン）メッセージは操作システムおよび／またはアクティブアプリケーションに送信されないので、この実施例は第１の実施例よりも安全かつ簡単に利用できる。ラップトップ型タッチパッドまたはタッチパッドのマウスを具えたキーボードにセンサが設けられた場合、この機能は特に便利である。やはり、この実施例は２つの方法で実行できる。第１に、全てをマウスのハードウェア／ファームウェア内に実装することである。マウスのハードウェア／ファームウェアがセンサ活性化信号の後の既定の時間内に少なくとも多少のマウスの運動信号を検出した場合、左ボタンダウンのメッセージを生成して、ホストコンピュータのマウスドライバに送信する。第２の実装例は、マウスのハードウェア／ファームウェアおよび変更したホストコンピュータのマウスドライバのソフトウェアを利用する。マウスのハードウェア／ファームウェアはセンサ活性化およびセンサ非活性化信号、およびマウスの運動信号を送信し、ホストコンピュータのマウスドライバを検出する。マウスドライバが、センサ活性化信号の後の既定の時間内に少なくとも多少のマウスの運動信号を受信した場合、左ボタンダウンのメッセージを操作システムおよび／またはアクティブアプリケーションに送信して；さもなければセンサ活性化信号を無視する。第１および第２の実装例は、第１の実施例における第１および第２の実装例と同様の利点および欠点を有している。
【００２６】
上記の第２の実施例は機械式のマウスボタン、特に非常に高感度ボタンに利用できることに留意されたい。換言すると、このようなボタンからのボタンダウンの物理信号は、多少のマウスの運動信号が後に続かない限り無視され、そうでない場合はボタンダウンのメッセージが生成される。
【００２７】
第３の実施例では、センサは図４に示されるような２部分のセンサである。図１Ａおよび図１Ｂに示した１部分のセンサを上回る利点を有する。１部分のセンサを利用すると、ユーザが最初にマウスをつかんだ時に、つかんだ動作の後にセンサを覆ってマウスを動かしてしまった場合は左ボタンダウンのメッセージが誤って生成される。２部分のセンサを利用すると、このように左ボタンダウンのメッセージが誤って生成されないようになる。この例示は２つの方法で実行できる。やはり、第１に、全てをマウスのハードウェア／ファームウェア内に実装することである。マウスのハードウェア／ファームウェアは両方のセンサ部（および任意でマウスの運動信号)からのセンサ信号を検出し、左ボタンダウンおよび左ボタンアップのメッセージを生成して、ホストコンピュータのマウスドライバに送信する。第２の実装例は、マウスのハードウェア／ファームウェアおよび改良したホストコンピュータのマウスドライバのソフトウェアを利用する。マウスのハードウェア／ファームウェアは、センサ信号（および任意でマウスの運動信号）を送信して、ホストコンピュータのマウスドライバを検出し、マウスドライバはこれらの信号を左ボタンダウンおよび左ボタンアップのメッセージに適宜解釈する。第２の実装例の利点の１つは、ボタンアップ／ダウンのメッセージの生成を制御する特定のパラメータがプログラムできる点である。前述したように、２部分のセンサを利用する時、センサ活性化またはセンサ非活性化信号を生成させるために既定の時間内で１のセンサ部を覆い、かつ他のセンサ部を露出させねばならない。この時間間隔は、第２の実装例においてプログラム可能である。第１の実装例が利用された場合、この時間間隔はマウスのハードウェア／ファームウェアにより既定される。
【００２８】
第４の実施例では、センサ信号は、操作システムおよび／またはアプリケーションプログラム用のセンサ活性化およびセンサ非活性化メッセージを生成するために利用される。これらのメッセージは、従来のマウスのボタンまたはマウスホイールにより生成された従来のマウスのメッセージに追加される。従来のマウスのメッセージをアクティブアプリケーションプログラムに転送するのに利用したのと同じメッセージ通信路を通って、センサ活性化およびセンサ非活性化メッセージはアクティブアプリケーションのソフトウェアに転送される。これらの通信路は図１０Ａおよび図１０Ｂに示され、さらに詳細は後述する。操作システムおよび／またはアプリケーションプログラムは、従来のマウスにはない機能を実行するためにセンサ活性化およびセンサ非活性化メッセージを利用することが出来る。この実施例は２つの方法で実施することが出来る。第１に、全てをマウスのハードウェア／ファームウェア内に実装することである。マウスのハードウェア／ファームウェアはセンサの状態の変化を検出して、センサ活性化およびセンサ非活性化メッセージを生成し、ホストコンピュータのマウスドライバに送信する。第２の実装例は、マウスのハードウェア／ファームウェアおよび変更したホストコンピュータのマウスドライバのソフトウェアを利用する。マウスのハードウェア／ファームウェアはホストコンピュータのマウスドライバにセンサ活性化およびセンサ非活性化信号を送信し、マウスドライバはこれらの信号を解釈し、マウスの運動またはマウスのボタン信号（任意)といった他のマウス信号と共に、センサ活性化およびセンサ非活性化メッセージを生成する。第２の実装例の利点は、マウスドライバがマウスからの様々な信号をどのように解釈するかをユーザが構築可能にする。これは、ユーザに幅広い自由度をもたらす。
【００２９】
第５の実施例では、センサ信号は、第４の実施例のように操作システムおよび／またはアプリケーションプログラム用のセンサ活性化およびセンサ非活性化メッセージを生成するために利用されるが、センサ活性化およびセンサ非活性化メッセージを認識しないプログラムとの互換性を与える。この実施例では、センサ活性化メッセージの直後に左ボタンダウンのメッセージが生成され、センサ非活性化メッセージの直後に左ボタンアップのメッセージが生成される。センサ活性化およびセンサ非活性化メッセージを認識するプログラムでは、直後の左ボタンダウンおよび左ボタンアップのメッセージは無視される。センサ活性化およびセンサ非活性化メッセージを認識しないプログラムでは、プログラムは代わりに左ボタンダウンおよび左ボタンアップ信号に通常通り応答することが求められる。この方法では、マウスは「下位互換性」において利用することが出来る。
【００３０】
実用的な適用例では、指トリガ型センサ１５によって生成されたセンサ信号がドラッグアンドドロップ操作を実行する場合を以下に記載する。従来のマウスを利用すると、まずドラッグするオブジェクト（例えばアイコン）をマウスポインタで指示し、左ボタンを押し、左ボタンを押したままマウスポインタを所望の位置まで移動させ、ポインタが所望の場所（例えば、目標のアイコン上)にある時に左ボタンを放すことにより、ドラッグアンドドロップが実行される（選択したテキストまたは画像の領域はドラッグした形状で示されることに留意する）。時々、ユーザはポインタが所望の位置に達する前に誤って左ボタンを放してしまい、オブジェクトが間違った場所にドロップされてしまう。本発明の実施形態によると、指トリガ型センサはドラッグアンドドロップをさらに便利かつ間違えにくい方法で実行するために使用することが出来る。さらに具体的には、ユーザは普通の状態でマウスを握り、ドラッグするオブジェクトをマウスポインタで指示し、親指を動かしてセンサ活性化信号を生成させる。ユーザは、マウスポインタが所望の目標位置に来るまで親指をその位置に置いたままマウスを動かし、親指を通常握る位置に戻してセンサ非活性化信号を生成させる。指トリガ型センサ１５を利用したこのようなドラッグアンドドロップ操作は、ユーザがボタンを押したままでいる必要がないため実行するのが簡単である。これはさらに人間工学的であり、操作の信頼度をより高める。
【００３１】
図７は、本発明の実施形態によるドラッグアンドドロップ操作において、マウスの制御回路１６により実行される方法を図示している。制御回路１６がセンサ活性化信号を受信した時（ステップＳ７１）、左ボタンダウン信号（従来のマウスにより生成される信号）をホストに送信する（ステップＳ７２)。マウスの制御回路１６はその後、運動信号を受信してホストに送信する（ステップＳ７３およびＳ７４)。センサ非活性化信号を続いて受信した時（ステップＳ７５）、制御回路１６は左ボタンアップ信号（従来のマウスにより生成された他の信号）をホストに送信する（ステップＳ７６）。この実施例では、センサ１５は従来のマウスの左ボタンをシミュレートしているとみなすことが出来る。ホストが受信する次の信号（左ボタンダウン、マウス運動、左ボタンアップ）は、ドラッグアンドドロップ操作を実行する従来のマウスによって生成された連続の信号として識別される。
【００３２】
図８は、本発明の他の実施形態によるドラッグアンドドロップ操作において、マウスの制御回路１６により実行される代替の方法を図示している。制御回路１６が最初にセンサ活性化信号を受信する時（ステップＳ８１)、信号を記録するが（例えば、レジスタ値を変更する等)（ステップＳ８２）、ホストコンピュータには信号を送信はしない。１以上のマウスの運動信号を続いて受信した時（ステップＳ８３)、左ボタンダウン信号（従来のマウスにより生成される信号）および運動信号がホストに送信される（ステップＳ８４)。追加の運動信号を受信した場合（ステップＳ８５）、ホストに送信される（ステップＳ８６)。センサ非活性化信号を続いて受信した時（ステップＳ８７)、制御回路１６は左ボタンアップ信号（従来のマウスにより生成された他の信号）をホストに送信する（ステップＳ８８)。このように、ホストが受信した連続の信号（左ボタンダウン、マウス運動、左ボタンアップ）は、ドラッグアンドドロップ操作を実行する従来のマウスによって生成された連続の信号として識別される。
【００３３】
センサ信号を解釈するためにマウス１０において回路１６を利用する利点は、従来のマウスデバイス、マウスドライバ、およびアプリケーションプログラムと互換性がある点であり、新しいマウスの設計を実現するためにホストコンピュータのオペレーティングシステムを変更する必要がない。代替の実施形態では、図３に概略図が示されるように、マウスの回路１６は従来のマウス信号ではなくセンサ活性化およびセンサ非活性化の事象を示す論理信号をホストコンピュータに送信する。ホストコンピュータ３０のマウスドライバのプログラム３１はこれらの信号を受信し、操作システム３２および／またはアプリケーションプログラム３３用の従来のマウス信号（例えば、左ボタンダウン等）を生成する。換言すると、ドライバプログラム３１は図８に示されるステップＳ８１乃至Ｓ８８と同様のステップを実行する。この実施形態は、従来型ではないマウスドライバをホストコンピュータにインストールする必要がある。図９はこのような方法のステップを図示している。このステップは、回路１６の代わりにドライバのプログラム３１によって実行されていることを除いて図８に示すステップと同様であり、詳細は再度説明しない。ユーザにとって、ドラッグアンドドロップする一連の操作は、図７および図８に図示された方法と同様である。
【００３４】
さらに他の代替の実施形態では、図３にも概略的に示されているように、マウスドライバのプログラム３１は、直接利用のためにセンサ活性化およびセンサ非活性化信号を操作システムプログラムおよび／またはアプリケーションプログラムに送信する。この実施形態は、従来の操作システムプログラムおよび／またはアプリケーションプログラムに特定の変更を加える必要がある。この実施形態の利点は、従来のマウスにより生成されるよりも多い種類のマウス信号を供給し、操作システムおよび／またはアプリケーションプログラムをさらに自由に制御可能にする。本発明の実施形態によるマウスは広く受け入れられ、センサ信号は操作システムおよび／またはアプリケーションプログラムに組み込まれた一部となるであろう。
【００３５】
上記の実用的な適用例では、センサは従来のマウスにより生成された、シミュレートされた左ボタンダウンと左ボタンアップのメッセージを生成するのに用いられている。上記で指摘したように、センサは従来のマウスでは生成されないメッセージを生成するために使用することもできるため、アプリケーションプログラムはさらに多くの機能を実行可能にする。例えば、Ａｄｏｂｅ（商標登録）Ｒｅａｄｅｒ（商標登録）では、ユーザがそれぞれテキストを選択および画像領域を選択出来るように、一般に「選択ツール」ボタンおよび「スナップショットツール」ボタンがツールバー上に設けられている。ユーザが「選択ツール」ボタンをクリックした場合、左マウスボタンを用いたドラッグシーケンスがテキストを選択し；ユーザが「スナップショットツール」ボタンをクリックした場合、同じドラッグシーケンスが画像領域を選択する。センサ付のマウスを利用すると、例えばセンサを用いたドラッグシーケンスがテキストを選択し、左マウスボタンを用いたドラッグシーケンスが画像領域を選択してもよい。これにより「選択ツール」および「スナップショットツール」ボタンをクリックする必要がなくなる。他の例のように、インターネットエクスプローラといった多くのウェブブラウザは、テキストを選択するのに左マウスのボタンでシーケンスをドラッグするが、（Ａｄｏｂｅ（商標登録）Ｒｅａｄｅｒ（商標登録）における「手のひらツール」のように)ドラッグシーケンスでウィンドウ内で画像を移動させる方法はない。センサ付のマウスを利用した場合、センサを利用したドラッグシーケンスを用いて画像をスクロールするようにしてもよい。
【００３６】
他の実践的な適用例では、タッチパッドマウス付のラップトップ型キーボード上の２部分のセンサ(図５参照）は、簡単かつ正確なドラッグ操作に役立つようにドラッグ操作に利用される。第１のセンサ部１５が覆われた時（両センサ部は通常は露出していると仮定する)、左ボタンダウンのメッセージが生成される。第１のセンサ部がその後すぐに露出された場合、ドラッグを終了すべく左ボタンアップのメッセージが生成される。これは、短くかつ突然のドラッグ操作に役立つ。しかしながら、第１のセンサ部がまだ覆われている間に第２のセンサ部が覆われた場合、すなわちユーザが指を伸ばして両センサ部を同時に覆った場合、左クリックのロックモードが展開される。左クリックのロックモードでは両センサ部が露出しても左ボタンアップのメッセージは生成されないため、ユーザはポインタを動かすことでドラッグ操作を実行できる。１つのセンサ部が再度覆われた時（または任意のボタンがクリックされたとき)、ドラッグ処理を終了するよう左ボタンアップのメッセージが生成される。このような左クリックのロックモードは、長いドラッグまたは正確性を必要とするドラッグ操作に役立つ。この実施例では、様々なメッセージがマウスのハードウェア／ファームウェアまたはホストコンピュータによって生成されてもよい。
【００３７】
マウスドライバのプログラムは上に例示したが、マウスドライバと操作システムとの間のフックプログラムが適宜または必要に応じて利用されてもよい。例えば、センサ活性化メッセージの意味はメッセージが生成された時にマウスのカーソルがどこに位置しているかによってもよい。従って、フックプログラムは、適当なメッセージが適当なアプリケーションプログラムに送信されるように利用されてもよい。マウスドライバおよびフックプログラムは、マウスのメッセージを制御するソフトウェアとして一括して参照されてもよい。
【００３８】
図１０Ａは、フックプログラムがインストールされていない場合における、デバイスドライバからアクティブアプリケーションまでのマウス信号の経路上の様々な構成部品を図示している。マウスのハードウェアは、マウス信号をマウスデバイスドライバに送信する。マウスデバイスドライバのソフトウェアは、マウス信号を左ボタンダウンのメッセージ、左ボタンアップのメッセージ、右ボタンダウンのメッセージ、右ボタンダウンのメッセージ、ホイールのメッセージ等といったマウスのメッセージに解釈する。マウスのメッセージ発信モジュールは、マウスデバイスドライバから生成されたマウスのメッセージを一度に１つ受信し、このマウスメッセージを受信するアプリケーションを決定して、そこにマウスメッセージを送信する。アクティブアプリケーションプログラムは、マウスのメッセージを受信し、マウスのメッセージに基づいて適当な操作を実行する。図１０Ｂは、１以上のフックプログラムがインストールされている場合における、デバイスドライバからアクティブアプリケーションまでのマウス信号の経路上の様々な構成部品を図示している。図１０Ｂのマウスのハードウェア、マウスデバイスドライバおよびマウスのメッセージ発信モジュールは、図１０Ａにおける対応する構成部品と類似している。多くのマウスのフックプログラムが、マウスのメッセージ発信モジュールとアクティブアプリケーションプログラムとの間に挿入されている。各マウスのフックプログラムは、アクティブアプリケーションがメッセージを受信するのを妨害する、あるいはメッセージを変更して、アクティブアプリケーションプログラムに送信されるマウスのメッセージを処理することができる。多くのマウスのフックプログラムは連続的に機能する。アクティブアプリケーションプログラムは、最後のマウスのフックプログラムからマウスのメッセージを受信し、マウスのメッセージに基づいて適当な操作を実行する。インストールされた多くのマウス／キーボードのフックプログラムは、ＯＳに同時に存在しうるということに留意されたい。一連の最後のフックプログラムは、他のフックプログラムで実行される論理またはアルゴリズムを無効化できるため、最も重要となる。フックプログラムは広く利用され；アクティブアプリケーションに処理される前にマウスまたはキーボードのメッセージを制御する手段となりうるため有用である。フックプログラムの欠点の１つは、安全性のリスクを招きうることである。
【００３９】
１つのマウスのハードウェアユニットのみ図１０Ｂに示されているが、複数のユニット（マウス）がコンピュータに接続できることに留意されたい。現在のセンサの状態を認識するマウスのフックプログラムを利用する利点の１つは、コンピュータが従来のマウスおよび本発明によるセンサ付のマウスの両方に接続されている場合、様々な操作を達成するためにマウスのフックプログラムによって両方のマウスからの信号を組み合わせられることである。換言すると、センサ付のマウスにより生成されたセンサ信号を利用する従来のマウス用の方法を提供する。例えば、ユーザが本発明のセンサを具えるラップトップを利用し、かつ当該ラップトップに接続した外付けの従来のマウスがある場合、彼または彼女が外付けマウスを動かしている間、ラップトップ上のセンサを単に覆うだけでドラッグ操作を実行できる。
【００４０】
マウスのフックプログラムを利用する他の利点は、何れのアプリケーションがセンサ活性化およびセンサ非活性化メッセージに影響され、何れのアプリケーションがこれらのメッセージで実行されるかを、ユーザが選択的に決めることが出来る点である。例えば、ユーザは、いくつかの「過敏な」アプリケーションがセンサ活性化およびセンサ非活性化メッセージに反応しないよう希望する場合がある。これを達成するため、ユーザは何れのアプリケーションプログラムがセンサ活性化およびセンサ非活性化メッセージに影響されるまたは影響されないかを指定する。その後、マウスのフックプログラムがセンサ活性化またはセンサ非活性化メッセージを受信した時、プログラムで何れのアプリケーションが作動しているかを確認し、ユーザの指定に基づいてアクティブアプリケーションにメッセージを転送するか否かを決定する。換言すると、マウスのフックプログラムは、何れのアプリケーションプログラムがこれらのメッセージに影響されるかのユーザの指示に基づいて、センサ活性化およびセンサ非活性化メッセージをアクティブアプリケーションプログラムに選択的に転送することが出来る（例えば、後述する図１２Ｂにおけるステップ１２０９Ａを参照)。マウスのフックプログラムがユーザモードで実行されている間はカーネルモードで動作するため、デバイスドライバではこの機能を達成できないことに留意されたい。
【００４１】
さらに本発明の他の実施形態では、カーソルがスクロールバー（ユーザは、マウスを左クリックしドラッグして、ウィンドウの内容を上／下、左／右にスクロールできるが、データは変更出来ない領域）またはキャプションバー（ユーザがアプリケーションウィンドウを四方にドラッグできる領域)といった、アプリケーションウィンドウの特定の部分に配置されている時のみ「過敏な」アプリケーションがセンサ活性化およびセンサ非活性化信号に影響されるようにすることも可能である。ファイルおよびフォルダアイコンが含まれているウィンドウのクライアントエリアのような、マウスのカーソルがオブジェクトを編集または再配置できるアプリケーションの領域に配置されている時、センサ活性化およびセンサ非活性化信号はこのアプリケーションソフトウェアに影響を及ぼすことは出来ないであろう。
【００４２】
図１１は、図１０Ｂに示されたマウス信号の経路上のマウスデバイスドライバにより実行される処理の例を図示している。マウスデバイスドライバは指トリガ型センサを具えるマウスのハードウェアから信号を受信し、解釈し、メッセージをマウスのメッセージ発信モジュールに送信し、さらにマウスのフックプログラムにそれらを転送する。より具体的には、マウスデバイスドライバが指トリガ型センサ付のマウスのハードウェアから信号を受信した時(ステップＳ１１０１)、信号がセンサ活性化信号（ステップＳ１１０２における「Ｙｅｓ」)の場合、ドライバはセンサ活性化メッセージをマウスのメッセージ発信モジュールに送信する（ステップＳ１１０３)。一方、信号がセンサ非活性化信号（ステップＳ１１０２における「Ｎｏ」およびステップＳ１１０４における「Ｙｅｓ」)の場合、ドライバはセンサ非活性化メッセージをマウスのメッセージ発信モジュールに送信する（ステップＳ１１０５)。マウスのハードウェアから受信した信号が、センサ活性化信号でもセンサ非活性化信号でもない場合（ステップＳ１１０４における「Ｎｏ」)、例えば信号は左ボタン信号、右ボタン信号、マウスの運動信号、またはホイール信号といった従来のマウス信号の場合、対応するマウスのメッセージに変換され、マウスのメッセージ発信モジュールに転送する（ステップＳ１１０６)。マウスデバイスドライバはその後、他のハードウェアのマウス信号をポーリングする（ステップＳ１１０７)。
【００４３】
図１２Ａおよび図１２Ｂは、ドラッグ操作においてマウスのフックプログラムで実行される処理の例を図示している。この例では、マウスのフックプログラムはマウスのメッセージ発信モジュールからのメッセージを傍受し、センサの状態およびマウスの運動メッセージのタイミングにより左ボタンダウンまたはアップメッセージをシミュレートするために分析し、適切なメッセージをアクティブアプリケーションに転送する。フックプログラムにより傍受されたマウスのメッセージは、ＯＳに接続されたマウスから発信されることもある。従って、例えば２つのマウスがＯＳに接続されており、一方は指トリガ型センサ付で、もう一方は実装していない場合、２つのマウスからの様々な信号はドラッグ操作を完成させるために連動させることが出来る。例えば、ユーザは一方のマウスでセンサを覆い、ドラッグ操作を達成するためにもう一方のマウスを動かしてもよい。２つのマウスの一方は、指トリガ型センサが具えられたラップトップ型コンピュータのタッチパネルでもよい。下記では、用語「マウス」を便宜上使用するが、指定がない限りは任意の好適なコンピュータのポインティングデバイスについて広く言及しているということを理解されたい。
【００４４】
図１２Ａおよび図１２Ｂに示されるように、マウスのフックプログラムはまず、偽（ｆａｌｓｅ）のドラッグフラグを立てる（ステップＳ１２０１)。その後、マウス（１以上ある場合は、コンピュータに接続されているマウスのうち１つでよい）からマウスのメッセージ発信モジュールを介して転送されたマウスのメッセージを解釈する（ステップＳ１２０２)。マウスのメッセージがセンサ活性化メッセージの場合（ステップＳ１２０３における「Ｙｅｓ」)、マウスのフックプログラムは真（ｔｒｕｅ）のセンサ活性化フラグを立てる（ステップＳ１２０４)。一方、マウスのメッセージがセンサ非活性化メッセージの場合（ステップＳ１２０３における「Ｎｏ」およびステップＳ１２０５における「Ｙｅｓ」)、マウスのフックプログラムは偽のセンサ活性化フラグを立て（ステップＳ１２０６)、ドラッグ処理を終了するため左ボタンアップのメッセージをシミュレートしてアクティブアプリケーションに転送する（ステップＳ１２０７)。マウスのメッセージが、センサ活性化メッセージでもセンサ非活性化メッセージでもなく（ステップＳ１２０５における「Ｎｏ」)、マウス運動のメッセージの場合（ステップＳ１２０８における「Ｙｅｓ」)、マウスのフックプログラムはセンサ活性化フラグが真か偽かを決定する（ステップＳ１２０９)。センサ活性化フラグが真の場合、マウスのフックプログラムはさらに、アクティブアプリケーション用に左ボタンダウンのメッセージをシミュレートするか否かを決定する（ステップＳ１２０９Ａ）。このステップは任意である。前述のように、ユーザは、何れのアプリケーションがセンサに影響されるかを指定できる。ステップＳ１２０９Ａにおけるこの決定は、アクティブアプリケーションのプログラムがセンサに影響されるか影響されないかについてユーザが指定したものか否かに基づいている。ステップＳ１２０９Ａにおける決定が肯定的である場合、ドラッグ処理を開始するためにマウスのフックプログラムは左ボタンダウンのメッセージをシミュレートし、アクティブアプリケーションに転送（ステップＳ１２１０)して、その後マウス運動のメッセージをアクティブアプリケーションに転送する（ステップＳ１２１１)。センサ活性化フラグが偽の場合（ステップＳ１２０９における「Ｎｏ」)、または活性化プログラムがセンサに影響されないものである場合（ステップＳ１２０９Ａにおける「Ｎｏ」)、マウスのフックプログラムは単にマウス運動のメッセージをアクティブアプリケーションに転送する（ステップＳ１２１１)。ステップＳ１２０８において、マウスのメッセージがマウス運動のメッセージではない場合（「Ｎｏ」)、例えばこのメッセージが従来の左ボタンのメッセージ、右ボタンのメッセージ、またはホイールのメッセージの場合、マウスのフックプログラムは単にメッセージをアクティブアプリケーションに転送する（ステップＳ１２１２)。メッセージをアプリケーションプログラムに転送した後（すなわちステップＳ１２０７、Ｓ１２１１およびＳ１２１２の後)、マウスのフックプログラムは他のマウスのメッセージを傍受する。
【００４５】
図１３Ａおよび図１３Ｂは、図１２Ａおよび図１２Ｂに示された処理と同様のドラッグ操作の例を図示しているが、図１２Ａおよび図１２Ｂのようにマウスのフックプログラムではなく、マウスデバイスドライバによってステップが実行されている。ステップＳ１３０１乃至Ｓ１３１２は、マウスデバイスドライバから受信したマウスのメッセージではなくマウスのハードウェアから受信したマウス信号で実行するステップＳ１３０３、Ｓ１３０５およびＳ１３０８を除いて、図１２Ａおよび図１２ＢのＳ１２０１乃至Ｓ１２１２と類似している。さらに、図１３Ｂにおける処理は、図１２ＢにおけるステップＳ１２０９Ａに対応する決定ステップを含まない。さらに、ステップＳ１３１２は、マウス信号を対応するマウスのメッセージに変換する操作を含む。図１３Ａおよび図１３Ｂのさらに詳しい説明は省略する。
【００４６】
ホストＰＣに接続されている各マウスは、独自のデバイスドライバを有しており、マウスデバイスドライバは通常、相互に影響し合わないことに留意されたい。従って、図１３Ａおよび図１３Ｂに示された処理では、ＯＳに接続されている２つのマウスは図１２Ａおよび図１２Ｂの処理で実現する方法で互いに協力することができない。
【００４７】
図１１、図１２Ａ、図１２Ｂおよび図１３Ａ、図１３Ｂに示された以上の実施例は、指トリガ型センサ付のマウスから発信される処理信号には有用だが、同様の方法は、従来の左および右ボタンと異なる特殊なボタンを有するマウスといった、異なる種類のマウスから発信される特殊な信号を処理するためにも利用できることに留意されたい。このような方法を実行するためには、図１２Ａ、図１２Ｂおよび図１３Ａ、図１３Ｂは、「センサ活性化信号／メッセージ」から「特殊なボタンダウン信号／メッセージ」に変更、「センサ非活性化信号／メッセージ」から「特殊なボタンアップ信号／メッセージ」に変更、および「センサ活性化フラグ」から「特殊なボタン活性化フラグ」に変更する等、多少変更する必要がある。さらに詳しい説明は省略する。
【００４８】
図１Ａに示されるように、センサをオンまたはオフするスイッチ１９がマウス１０に設けられてもよい。代替例またはスイッチ１９に追加して、マウスのハードウェア／ファームウェアがホストコンピュータおよびホストコンピュータのマウスドライバにセンサ信号を送る実装例では、これらの信号を適当なメッセージに解釈して、マウスドライバはセンサ機能をオンまたはオフするように構成されてもよい。
【００４９】
様々な改良例および変形が、本発明の指トリガ型センサ付のマウスについて本発明の精神および範囲を超えることなく実行できることは当業者において自明である。従って、本発明は、添付の特許請求の範囲およびその同等品の範囲内で成立する改良例および変形を包含することを意図している。
【図１Ａ】
2011507075.tif 000003
【図１Ｂ】
2011507075.tif 000004
【図２】
2011507075.tif 000005
【図３】
2011507075.tif 000006
【図４】
2011507075.tif 000007
【図５】
2011507075.tif 000008
【図６Ａ】
2011507075.tif 000009
【図６Ｂ】
2011507075.tif 000010
【図７】
2011507075.tif 000011
【図８】
2011507075.tif 000012
【図９】
2011507075.tif 000013
【図１０Ａ】
2011507075.tif 000014
【図１０Ｂ】
2011507075.tif 000015
【図１１】
2011507075.tif 000016
【図１２Ａ】
2011507075.tif 000017
【図１２Ｂ】
2011507075.tif 000018
【図１３Ａ】
2011507075.tif 000019
【図１３Ｂ】
2011507075.tif 000020
【国際調査報告】
2011507075.tif 000021