(57)【要約】【課題】  マルチウインドウシステムのＯＳにおいて、ある人が文字列入力中に他の人がマウスカーソルを操作しても文字列をばらばらにすることなく両方の入力を可能にする。【解決手段】  本発明に係るマウスとキーボードの同時操作のための方法は、プログラムの実行時にライブラリをリンクし、キーイベントに従い文字を１つのバッファに格納し、１つのウインドウにバッファを出力し、バッファの文字列を指示されたときに他のプログラムの指示した場所に入力するプログラムと、キーイベントをフックし関数Ｃで処理するようにする関数Ａと、キーイベントをフックし関数Ｃで処理することを解除する関数Ｂと、リンクしたプログラムに対してフックしたキーイベントを処理した後メッセージを送信するためのプログラムの実行時にリンクする共有ライブラリ。【選択図】        なし【特許請求の範囲】
【請求項１】
プログラムの実行時にライブラリをリンクし、キーイベントに従い文字を１つのバッファに格納し、１つのウインドウにバッファを出力し、バッファの文字列を指示されたときに他のプログラムの指示した場所に入力するプログラムと、キーイベントをフックし関数Ｃで処理するようにする関数Ａと、キーイベントをフックし関数Ｃで処理することを解除する関数Ｂと、リンクしたプログラムに対してフックしたキーイベントを処理した後メッセージを送信するためのプログラムの実行時にリンクする共有ライブラリ内の関数Ｃとからなることを特徴とするマウスとキーボードの同時操作のための方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマウスとキーボードの同時操作のための方法に関するものである。
【背景技術】
【０００２】
１つのコンピュータを複数のユーザで操作する協働的コンピュータ・ベース・システムにではユーザ活動における争奪または衝突が問題になる。
【０００３】
Ｗｉｎｄｏｗｓ（登録商標）  ＯＳ（マイクロソフト社製）等のマルチウインドウシステムのＯＳを会議などで複数の人が共有し、マウスカーソルの制御を行う人と、キー入力を行う人が異なる場合、ある人があるウインドウに対し文字列を入力中に、他の人がマウスカーソルを制御すると、入力中の文字列は文字列を入力している人には意図しない場所に入力され、結果的に文字列がばらばらになり文章を書くことができなかった。
【０００４】
１つのコンピュータを複数のユーザで操作する協働的コンピュータ・ベース・システムではユーザ活動における争奪または衝突を回避する方法として下記特許文献１が知られている。これは各ユーザの作業領域を限定し、１つのオブジェクトを複数ユーザで同時操作しないようにし、ユーザ活動における争奪または衝突を回避するものである。
【０００５】
また、下記特許文献２も知られている。これは各ユーザの操作端末毎に、マウス操作権、ポインティング権等の権利を割り当てることにより、ユーザ活動の衝突を回避するものである。
【０００６】
また、キー入力が各プログラムに届く前に処理し、その後各プログラムに渡すプログラムとしてＩＭＥ（Ｉｎｐｕｔ  Ｍｅｔｈｏｄ  Ｅｄｉｔｏｒ）というものがある。これは各ウインドウに対しバッファを持ち、アクティブなウインドウのバッファに文字列を格納していき、アクティブなウインドウに対し確定した文字列を入力するものである。
【特許文献１】特開平５−３２４３６０号公報
【特許文献２】特開２０００−１８１８４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
１つのコンピュータを複数のユーザで操作する協働的コンピュータ・ベース・システムにではユーザ活動における争奪または衝突を回避するために、前記特許文献１，２が知られているが、以下のような問題点があった。
【０００８】
前記特許文献１はＷｉｎｄｏｗｓ（登録商標）  ＯＳ（マイクロソフト社製）等のグラフィカルユーザインタフェースをもったマルチウインドウシステムのＯＳでは各ユーザの作業領域が同じウインドウ内に限定すれば実現できるが、各ユーザの作業領域が異なるウインドウにある場合、アクティブなウインドウが同時に複数は存在しないＷｉｎｄｏｗｓ（登録商標）  ＯＳ（マイクロソフト社製）等のＯＳでは各ユーザが同時に作業することはできない。このためキー入力中にマウスカーソルの制御を行うと文字列がばらばらになってしまう。
【０００９】
前記特許文献２は実際のマウスカーソルを操作できる端末と、場所を示すためのポインティングのためのカーソルを操作する端末を分離し、ユーザ活動における争奪または衝突を回避しているが、キー入力とマウスカーソルの操作を同時に行ったときには、文字列がばらばらになってしまう。
【００１０】
ＩＭＥ（Ｉｎｐｕｔ  Ｍｅｔｈｏｄ  Ｅｄｉｔｏｒ）は、ウインドウ毎にバッファを持っているため文字列を入力中にマウス操作を行い、他のウインドウをアクティブにすると、他のウインドウに対するバッファに文字列を格納することになり、文字列はばらばらになり、文字列入力を行う操作者の意図した文字列を意図した位置に入力できない。
【００１１】
本発明は、Ｗｉｎｄｏｗｓ（登録商標）  ＯＳ（マイクロソフト社製）等のグラフィカルユーザインタフェースをもったマルチウインドウシステムのＯＳにおいて、ある人が文字列入力中に他の人がマウスカーソルを操作しても文字列をばらばらにすることなく両方の入力を可能にすることを課題とする。
【課題を解決するための手段】
【００１２】
本発明に係るマウスとキーボードの同時操作のための方法は、プログラムの実行時にライブラリをリンクし、キーイベントに従い文字を１つのバッファに格納し、１つのウインドウにバッファを出力し、バッファの文字列を指示されたときに他のプログラムの指示した場所に入力するプログラムと、キーイベントをフックし関数Ｃで処理するようにする関数Ａと、キーイベントをフックし関数Ｃで処理することを解除する関数Ｂと、リンクしたプログラムに対してフックしたキーイベントを処理した後メッセージを送信するためのプログラムの実行時にリンクする共有ライブラリ内の関数Ｃとからなることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、本発明はＷｉｎｄｏｗｓ（登録商標）  ＯＳ（マイクロソフト社製）等のグラフィカルユーザインタフェースをもったマルチウインドウシステムのＯＳにおいて、ある人が文字列入力中に他の人がマウスカーソルを操作しても文字列をばらばらにすることなく両方の入力を可能にするという効果がある。
【発明を実施するための最良の形態】
【００１４】
以下本発明を実施するための最良の形態を、実施例により詳しく説明する。
【実施例１】
【００１５】
以下，図面を参照しながら，各実施の形態を詳細に説明していく。
【００１６】
図１は、本発明におけるマウスとキーボードの同時操作のためのプログラムの構成を示すものである。
【００１７】
１００はキーイベントに従い文字を出力し、出力された文字列を指示されたときに他のプログラムの指示した場所に入力するプログラム、１０１はプログラム１００からプログラム実行時にリンクされる共有ライブラリ（ダイナミック・リンク・ライブラリ）、１０２はキーイベント１０５をフックし関数１０４でキーイベント１０５を処理するようにする関数、１０３はキーイベントをフックしキーイベント１０５を関数１０４で処理することを解除する関数、１０４はフックしたキーイベント１０５の処理結果をメッセージ１０６として、ライブラリ１０１をリンクしたプログラム１００に対して送信する関数。
【００１８】
共有ライブラリ（ダイナミック・リンク・ライブラリ）１０１は関数１０２，１０３，１０４から構成され、リンクしたプログラムのハンドル情報を持つ。ハンドル情報を持つことによりフックしたキーイベントの処理結果をメッセージとしてリンクしたプログラムに対して送信することができる。
【００１９】
図２は本発明のマウスとキーボードの同時操作のためのプログラムの使用環境の例を示すものである。
【００２０】
２００は会議室等に設置しコンピュータ２０２の画像情報を出力する大画面ディスプレイ、２０１はコンピュータ２０２の入力装置であり、マウスカーソルの操作を大画面ディスプレイ２００上で操作するためのデジタイザ、２０２はＷｉｎｄｏｗｓ（登録商標）  ＯＳ（マイクロソフト社製）がインストールされているコンピュータ、２０５はコンピュータ２００の入力装置であるキーボード、２０６はコンピュータ２０２の入力装置であり、マウスカーソルを操作するためのマウス。
【００２１】
このとき、会議室等複数の人が操作できる環境であるため、コンピュータ２０２の入力装置であるデジタイザ２０１、キーボード２０５、マウス２０６の操作者は異なる可能性がある。
【００２２】
図３は本発明のマウスとキーボードの同時操作のためのプログラムの動作を示すものである。
【００２３】
本発明におけるマウスとキーボードの同時操作のためのプログラムが実行されると（１２０）、フックの状態がＯＮかＯＦＦかの判定を行う（１２１）。ＯＦＦならば再度１２１を実行する。ＯＮの場合は入力位置の指定を行ったかの判定を行う（１２２）。入力位置の指定が行われた場合は、バッファの文字列を入力指定位置に送信する（１２５）。入力位置の指定でないときは文字入力があったかの判定を行う（１２３）。文字入力が無い場合は１２１に戻り、文字入力があった場合には文字をバッファに格納し、バッファの文字列を出力する（１２４）を行う。
【００２４】
図４は本発明のマウスとキーボードの同時操作のためのプログラムの操作例とそのときの画面の遷移を示したものである。状態は３００、３０１、３０２、３０３の順に遷移する。
【００２５】
状態３００はディスプレイに少なくとも本発明のアプリケーションウインドウ１５０と一般的な描画アプリケーション１６０、一般的なエディタアプリケーション１７０の３つのウインドウが表示されてあり、本発明のアプリケーションはフック状態になっている。そして、ある人がデジタイザかマウスを用いてマウスカーソルを操作し描画アプリケーション１６０を用いて絵をかいている状態である。
【００２６】
状態３０１は描画を行っているときに他の人がキーボードからエディタアプリケーション１７０に入力したときの状態である。キーボードで入力すると、入力に従い１５１の画面のように文字列が表示される。このときウインドウ１５１はアクティブにならないため、描画アプリケーション１６１はアクティブのままであるため、描画は中断することなく文字列の入力が行うことができる。
【００２７】
状態３０２は文字列の入力が終わり、描画が終了したときに、エディタアプリケーションの入力位置を指定する（１７２）状態である。
【００２８】
状態３０３は１７３の画面のように文字列がエディタアプリケーションに送信されている状態である。
【００２９】
従来技術では３００の時にエディタアプリケーション１７０に文字列を入力しようとすると、描画を行っている人に描画を中断してもらうか、描画が終了するのを待たなければならなかった。または、キーボードから入力すると、そのときアクティブな描画アプリケーション１６０によってキーイベントが処理されるため、目的のアプリケーション１７０には文字入力が行われなかった。
【００３０】
尚、上記実施例では、１つの共有ライブラリの中に、関数１０２、１０３、１０４がある例を示したが、別々の共有ライブラリにあっても構わない。
【００３１】
また、上記実施例では、マウスカーソル操作のための入力装置として、デジタイザとマウスを使用した例を示したが、これに限定されるものではなく、コンピュータ２０２のマウスイベントを発生することができる装置ならば、ＰＤＡ、ノートパソコン、デスクトップパソコン等に適用しても構わない。
【００３２】
また、上記実施例では、文字列入力装置として、キーボードを例に示したが、これに限定されるものではなく、コンピュータ２０２のキーイベントを発生することができる機能を有する、ＰＤＡ、ノートパソコン、デスクトップパソコン等に適用してもよい。
【００３３】
また、上記実施例では、描画後に文字列の入力位置を指定する例を示したが、予め文字列の入力位置を指定しておき、確定コマンドを入力した際に入力位置に文字列を送信する手順を適用しても構わない。
【図面の簡単な説明】
【００３４】
【図１】本発明におけるマウスとキーボードの同時操作のためのプログラムの構成図である。
【図２】本発明の実施の形態で用いる環境の例を示す図である。
【図３】本発明のプログラムの動作を示すフローチャートである。
【図４】本発明のプログラムの操作例とそのときの画面の遷移を示した図である。
【符号の説明】
【００３５】
１００  キーイベントに従い文字を出力し、出力された文字列を指示されたときに他のプログラムの指示した場所に入力するプログラム
１０１  １０２、１０３、１０４で構成される、共有ライブラリ（ダイナミック・リンク・ライブラリ）
１０２  キーイベントをフックし関数１０４で処理するようにする関数
１０３  キーイベントをフックし関数１０４で処理することを解除する関数
１０４  フックしたキーイベント１０５の処理結果をメッセージ１０６として、ライブラリ１０１をリンクしたプログラム１００に対して送信する関数
１０５  キーイベント
１０６  メッセージ
２００  大型ディスプレイ
２０１  デジタイザ
２０２  コンピュータ
２０５  キーボード
２０６  マウス
【図１】
2005202570.tif 000002
【図２】
2005202570.tif 000003
【図３】
2005202570.tif 000004
【図４】
2005202570.tif 000005