(57)【要約】【課題】ユーザの負担となる視点の切替を軽減するユーザインタフェースを実現することを目的とする。【解決手段】第一の情報処理装置と少なくとも一つ以上の第二の情報処理装置とを通信手段を介して接続し、前記第二の情報処理装置から前記第一の情報処理装置を遠隔操作する遠隔操作システムであって、前記第二の情報処理装置は、前記第二の情報処理装置での操作及び前記第一の情報処理装置の遠隔操作に用いる操作情報を管理する管理部と、前記第二の情報処理装置での操作及び前記第一の情報処理装置の遠隔操作に用いるボタンの表示と制御とを行うボタン制御部とを有し、前記第一の情報処理装置は、前記第一の情報処理装置での制御又は前記第二の情報処理装置からの要求により、前記第二の情報処理装置の前記ボタンに対応するボタンを表示するためのボタン表示制御部を有することを特徴とする。【選択図】図２
2008310442.tif 000002
【特許請求の範囲】
【請求項１】
第一の情報処理装置と少なくとも一つ以上の第二の情報処理装置とを通信手段を介して接続し、前記第二の情報処理装置から前記第一の情報処理装置を遠隔操作する遠隔操作システムであって、
前記第二の情報処理装置は、前記第二の情報処理装置での操作及び前記第一の情報処理装置の遠隔操作に用いる操作情報を管理する管理部と、
前記第二の情報処理装置での操作及び前記第一の情報処理装置の遠隔操作に用いるボタンの表示と制御とを行うボタン制御部とを有し、
前記第一の情報処理装置は、前記第一の情報処理装置での制御又は前記第二の情報処理装置からの要求により、前記第二の情報処理装置の前記ボタンに対応するボタンを表示するためのボタン表示制御部を有することを特徴とする遠隔操作システム。
【請求項２】
前記第一の情報処理装置は、前記第二の情報処理装置で前記ボタンの変更を行った際に前記第二の情報処理装置から送信されるボタン情報を管理する管理部を有し、
前記ボタン表示制御部は、前記ボタン情報を利用して、前記第二の情報処理装置の前記ボタンに対応するボタンを表示することを特徴とする請求項１に記載の遠隔操作システム。
【請求項３】
前記ボタン情報は、前記ボタンの表示に必要な位置、大きさ、色、文字、アイコンの何れか１つを含むことを特徴とする請求項２に記載の遠隔操作システム。
【請求項４】
前記アイコンは、変数設定によって外見を変更可能であることを特徴とする請求項３に記載の遠隔操作システム。
【請求項５】
前記ボタン情報は、前記操作情報を表す関数及びイベントを含むことを特徴とする請求項２乃至４の何れか１項に記載の遠隔操作システム。
【請求項６】
前記第一の情報処理装置は、前記操作情報の管理部を有し、前記操作情報の全部あるいは一部を管理し、前記操作情報を更新することを特徴とする請求項１に記載の遠隔操作システム。
【請求項７】
前記第二の情報処理装置に表示した前記ボタンとカーソルとの位置関係を、前記第一の情報処理装置に表示した前記ボタンとカーソルとの位置関係に対応するよう前記第二の情報処理装置に表示したカーソルの座標変換を行うことを特徴とする請求項１乃至６の何れか１項に記載の遠隔操作システム。
【請求項８】
複数の前記第二の情報処理装置があり、そのうちの一つの前記ボタンを前記第一の情報処理装置に表示している際に、他の前記第二の情報処理装置より前記ボタンの表示要求があった場合、表示中の前記ボタンの操作が終了するまで前記表示要求を処理しない又は前記表示要求を拒絶することを特徴とする請求項１乃至７の何れか１項に記載の遠隔操作システム。
【請求項９】
複数の前記第二の情報処理装置があり、そのうちの一つの前記ボタンを前記第一の情報処理装置に表示している際に、他の前記第二の情報処理装置より前記ボタンの表示要求があった場合、表示中の前記ボタンに重ならなければ前記表示要求を処理することを特徴とする請求項１乃至７の何れか１項に記載の遠隔操作システム。
【請求項１０】
複数の前記第二の情報処理装置があり、そのうちの一つの前記ボタンを前記第一の情報処理装置に表示している際に、他の前記第二の情報処理装置より前記ボタンの表示要求があった場合、表示中の前記ボタンに重なる場合は前記表示要求があった前記ボタンを重ねて表示し、表示が隠れた部分でのカーソル操作を無効とすることを特徴とする請求項１乃至７の何れか１項に記載の遠隔操作システム。
【請求項１１】
複数の前記第二の情報処理装置があり、そのうちの一つの前記ボタンを前記第一の情報処理装置に表示している際に、他の前記第二の情報処理装置より前記ボタンの表示要求があった場合、表示中の前記ボタンに重なる場合は重ならないよう前記表示要求があった前記ボタンの表示位置及び大きさを変更し、前記表示要求があった前記ボタンとカーソルの位置関係を維持するようカーソルの座標変換を行うことを特徴とする請求項１乃至７の何れか１項に記載の遠隔操作システム。
【請求項１２】
第一の情報処理装置と少なくとも一つ以上の第二の情報処理装置とを通信手段を介して接続し、前記第二の情報処理装置から前記第一の情報処理装置を遠隔操作する遠隔操作システムの制御方法であって、
前記第二の情報処理装置は、前記第二の情報処理装置での操作及び前記第一の情報処理装置の遠隔操作に用いる操作情報を管理する管理ステップと、
前記第二の情報処理装置での操作及び前記第一の情報処理装置の遠隔操作に用いるボタンの表示と制御とを行うボタン制御ステップとを有し、
前記第一の情報処理装置は、前記第一の情報処理装置での制御又は前記第二の情報処理装置からの要求により、前記第二の情報処理装置の前記ボタンに対応するボタンを表示するためのボタン表示制御ステップを有することを特徴とする制御方法。
【請求項１３】
前記第一の情報処理装置は、前記第二の情報処理装置で前記ボタンの変更を行った際に前記第二の情報処理装置から送信されるボタン情報を管理する管理ステップを有し、
前記ボタン表示制御ステップでは、前記ボタン情報を利用して、前記第二の情報処理装置の前記ボタンに対応するボタンを表示することを特徴とする請求項１２に記載の制御方法。
【請求項１４】
前記第一の情報処理装置は、前記操作情報の管理ステップを有し、前記操作情報の全部あるいは一部を管理し、前記操作情報を更新することを特徴とする請求項１２に記載の制御方法。
【請求項１５】
少なくとも一つ以上の第二の情報処理装置と通信手段を介して接続され、前記第二の情報処理装置から遠隔操作される第一の情報処理装置を制御するプログラムであって、
前記第二の情報処理装置のボタン制御部によって表示と制御が行われるボタンに対応するボタンを表示するためのボタン表示ステップをコンピュータに実行させるためのプログラム。
【請求項１６】
第一の情報処理装置と通信手段を介して接続され、前記第一の情報処理装置を遠隔操作する第二の情報処理装置を制御するプログラムであって、
前記第二の情報処理装置での操作及び前記第一の情報処理装置の遠隔操作に用いる操作情報を管理する管理ステップと、
前記第二の情報処理装置での操作及び前記第一の情報処理装置の遠隔操作に用いるボタンの表示と制御を行うボタン制御ステップとをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、会議システム等のコンピュータ間における遠隔操作を行う際のユーザインタフェースに関するものである。詳しくは、ホストとなるコンピュータの画面を大画面表示可能な表示装置に表示し、ホストと通信手段によって接続された端末となるコンピュータからホストを遠隔操作する際に、特に有効な端末及びホストのユーザインタフェースに関するものである。
【背景技術】
【０００２】
近年のコンピュータ技術、ネットワーク技術の発展に伴い、コンピュータシステムの利用形態が広がっている。その一つとして、大型ディスプレイを利用した電子会議システムが挙げられる。この電子会議システムでは、大型ディスプレイやプロジェクター等にコンピュータの画面を表示する。そして、このコンピュータにネットワークを介して複数の会議参加者のコンピュータを接続し、リモート操作を行うことで、大型ディスプレイ等の共有画面上で情報を共有しながら会議を行うことができる。この電子会議システムには、会議に用いるという性質上普段このシステムを利用しない来客者等にとっても使い易いリモート操作インタフェースが要求される。
【０００３】
あるコンピュータを他のコンピュータからリモート操作する方法には大きく分けて二つの方法がある。第一の方式は、被制御コンピュータの共有画面を制御コンピュータの画面に表示して制御コンピュータの画面を見ながら行うものである。このようなシステムには、「ＷｉｎＳｈａｒｅ」（ＮＥＣ製）、「Ｄｅｓｋｔｏｐ  Ｏｎ−Ｃａｌｌ」（日本ＩＢＭ製）、「ｐｃＡＮＹＷＨＥＲＥ３２」（シマンティック社製）等がある。しかし、これらのシステムは遠隔地にあるコンピュータをリモート操作するためのものであり、大型ディスプレイ等の共有画面上でのリモート操作には適さない。リモート操作者が自身の端末の表示装置を見ながら操作する場合、共有画面を見ながら情報の共有を行うという電子会議システムのメリットを損なってしまう。共有画面を見ながらリモート操作を行う場合、制御コンピュータに用意されたリモート操作用のボタンなどの操作ができないため、このような操作は制御コンピュータの画面を見ながら行う必要があった。
【０００４】
また、会議システムでリモート操作を行う場合、制御コンピュータとしてノート型コンピュータやＰＤＡ等の携帯機器の利用が想定される。このような携帯機器には表示部の小さなものや処理能力の低いものが含まれており、被制御コンピュータの画面を表示することが困難である。
【０００５】
第二の方法は、被制御コンピュータの画面を見ながら制御コンピュータからリモート操作を行うものである。この方法では、制御コンピュータでのマウスやキーボードなどの入力情報を被制御コンピュータに送信し、マウスやキーボードのエミュレーションを行う。マウスのエミュレーションは、制御コンピュータのユーザインタフェースにホストの操作領域を設け、その領域内でのマウス操作を被制御コンピュータに送信し実行することで行われる。このようなシステムには、特許文献１に開示された「端末操作装置」や、特許文献２に開示された「ネットワーク情報処理システム及びネットワーク構築方法」がある。これらのシステムは、第一の方法において制御コンピュータに画面を表示していなだけのものと同様であり、被制御コンピュータの共有画面だけを見てリモート操作が行えるようにはなっていなかった。つまり、制御コンピュータに用意されたリモート操作用ボタンなど被制御コンピュータの入力装置のエミュレーション操作以外では、制御コンピュータの表示面を見ながら行う必要があった。このように、制御コンピュータに用意されたリモート操作用ボタンを利用する度に制御コンピュータの表示画面に目を移して操作する必要があり、操作者の作業を一時中断する必要があり問題となっていた。
【０００６】
また、従来のリモート操作システムでは共有画面に表示可能な操作用のボタンには限界があり、制御コンピュータ毎に異なる機能を持つボタンを表示するのは困難であった。一度にリモート操作を行う制御コンピュータが一台である場合には、共有画面に表示するボタンをリモート操作中の制御コンピュータ用のボタンに置き換えることで対処することができる。しかし、複数の制御コンピュータから同時にリモート操作を行う場合、このような対処はできず制御コンピュータのユーザインタフェースに制御コンピュータ毎に異なる機能のボタンを表示することがある。この方法では、ボタン操作の度に制御コンピュータの画面を見なければならないため、操作者の作業を一時中断する必要があり問題となっていた。
【０００７】
【特許文献１】特開２０００−５７０９４号公報
【特許文献２】特開２００３−８７２４７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述したように、従来の遠隔操作装置では被制御コンピュータの共有画面と制御コンピュータの画面との間で視線の切替が発生し、視線切替の度に操作を中断しなくてはならないといった問題があった。被制御コンピュータの画面を制御コンピュータの共有画面に表示して制御コンピュータの画面を見ながら行うものでは、被制御コンピュータの画面のみを見て制御が可能である。そのため、視線の切替は発生しないが、共有画面を見ながら情報の共有を行うという電子会議システムのメリットを損なってしまう。
また、携帯機器を制御コンピュータとして利用する場合には表示部が小さく被制御コンピュータの共有画面を縮小しなければならない問題がある。
【０００９】
また、複数の制御コンピュータからリモート操作を行う場合には、制御コンピュータ毎に異なる機能のボタンを利用したいという要求がある。しかし、共有画面に各制御コンピュータのボタンを常設するのはスペース的に困難であり、ユーザにとっても分かり辛いという問題があった。このため、制御コンピュータの画面に制御コンピュータ毎に異なる機能のボタンを表示する方法がとられる。
【００１０】
しかし、このようなボタンには描画用のペンのパレットやカーソルモードの切替等の頻繁に利用されるボタンが含まれるため、ボタンを利用する度に発生する共有画面と制御コンピュータの画面との視線切替によりリモート操作が中断されるのは不便である。このため、ユーザの負担となる視点の切替を軽減するユーザインタフェースの実現が必要であった。
【００１１】
本発明は、上記のような問題点に鑑みてなされたものであり、ユーザの負担となる視点の切替を軽減するユーザインタフェースを実現することを目的とする。また、そのユーザインタフェースに基づき被制御コンピュータの画面を見ながら制御コンピュータからマウス等のエミュレーションを行う遠隔操作システム、遠隔操作方法及びプログラムを提供することである。
【課題を解決するための手段】
【００１２】
本発明は、第一の情報処理装置と少なくとも一つ以上の第二の情報処理装置とを通信手段を介して接続し、前記第二の情報処理装置から前記第一の情報処理装置を遠隔操作する遠隔操作システムであって、前記第二の情報処理装置は、前記第二の情報処理装置での操作及び前記第一の情報処理装置の遠隔操作に用いる操作情報を管理する管理部と、前記第二の情報処理装置での操作及び前記第一の情報処理装置の遠隔操作に用いるボタンの表示と制御とを行うボタン制御部とを有し、前記第一の情報処理装置は、前記第一の情報処理装置での制御又は前記第二の情報処理装置からの要求により、前記第二の情報処理装置の前記ボタンに対応するボタンを表示するためのボタン表示制御部を有することを特徴とする。
【発明の効果】
【００１３】
本発明により、リモート操作を行う端末のボタンをホストの共有画面に表示することで、端末のボタン操作によるリモート操作時に発生するユーザの視点切替を軽減し、ユーザ操作の低減を図ることができる。また、スペースやユーザにとっての分かり辛さのため共有画面に常設できない端末毎に異なるボタンを端末のユーザインタフェースに配置し、これを共有画面のみを見ながら操作可能にする。
【発明を実施するための最良の形態】
【００１４】
以下、図面に従って本発明に係る実施形態について詳細に説明する。
（第１の実施形態）
図１は、遠隔操作システムの構成を示すブロック図である。図１において、１０１は表示装置、１０２は主情報処理装置（第一の情報処理装置、被制御コンピュータ）、１０３は通信手段、１０４〜１０６は、例えば２以上の情報処理装置（第二の情報処理装置、制御コンピュータ）である。表示装置１０１には、主情報処理装置１０２の画面を表示する。少なくとも一台の情報処理装置１０４から通信手段１０３を通じて、主情報処理装置１０２のリモート操作を行う。このリモート操作には、表示装置１０１に表示された主情報処理装置１０２の画面を見ながら行う方法や、通信手段１０３を通じて主情報処理装置１０２の画面を情報処理装置１０４〜１０６に表示して行う方法等がある。本実施形態では、表示装置１０１に表示された主情報処理装置１０２の画面を見ながら行うリモート操作を行う場合について説明する。
【００１５】
通信手段１０３には、有線ＬＡＮ、無線ＬＡＮやＢｌｕｅｔｏｏｔｈ等を用いる。
なお、図示を省略するが、主情報処理装置１０２及び情報処理装置１０４〜１０６はそれぞれ汎用コンピュータに搭載される標準的な構成要素を有している。例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスク、外部記憶装置、ネットワークインタフェース、ディスプレイ、キーボード、マウス等である。主情報処理装置１０２は、表示部を持たないデスクトップ型ＰＣを想定しているが、ノート型ＰＣ等の表示部を内蔵した装置であってもよい。また、情報処理装置１０４〜１０６には表示部を内蔵したノート型ＰＣやＰＤＡ等の装置を想定しているが、表示装置を別に用意したデスクトップ型ＰＣ等の装置であってもよい。
【００１６】
図２は、遠隔操作システムの機能構成を示すブロック図である。情報処理装置１０４〜１０６では、リモート操作状態が異なる以外に基本的な動作は変わらないため、情報処理装置１０４のみを図示している。図２の機能構成で実現される各機能は、主情報処理装置１０２及び情報処理装置１０４内部のＲＯＭや外部記憶装置に記憶されるプログラム、あるいはネットワークからダウンロードしたプログラム等がＣＰＵによって実行されることによって実現される。なお、専用のハードウェアで実現されてもよい。複数の情報処理装置１０４から主情報処理装置１０２のリモート操作を行うため、以下では情報処理装置１０４を端末１０４、主情報処理装置１０２をホスト１０２と呼ぶ。
【００１７】
ホスト１０２では、被リモート操作アプリケーション２０１が動作しており、ホスト１０２の入力装置２０２からの操作入力と端末１０４からのリモート操作入力を制御し、ホスト１０２のリモート操作を実現する。ホスト１０２の入力装置２０２には、マウス２０３やデジタイザ等のポインタ装置やキーボード２０４やソフトキーボード等のキー入力装置等がある。入力装置２０２からの入力は、入力制御部２０５で処理し、入力発生と内容を被リモート操作アプリケーション２０１に通知する。被リモート操作アプリケーション２０１は、通信部２０６から通信手段１０３を通じて端末１０４からリモート操作命令を受信する。リモート操作命令には、入力装置のエミュレーションや被リモート操作アプリケーション２０１が備えるリモート操作関数の実行命令等がある。
【００１８】
端末１０４では、リモート操作アプリケーション２０８が動作しており、これが端末１０４の入力装置２０９からの操作入力を受けホスト１０２へリモート操作命令を送信する。端末１０４の入力装置２０９には、マウス２１０やタブレット等のポインタ装置やキーボード２１１やソフトキーボード等のキー入力装置等がある。入力装置２０９からの入力は、入力制御部２１２で処理し、入力発生と内容をリモート操作アプリケーション２０８に通知する。リモート操作アプリケーション２０８は、入力装置２０９からの入力の内容をもとにホスト１０２の入力装置のエミュレーションを行うリモート操作命令を作成し、通信部２１３から通信手段１０３を通じてホスト１０２へ送信する。
【００１９】
また、リモート操作アプリケーション２０８ではリモート操作状態を元にボタン制御部２１４を動作させる。ボタン制御部２１４は初期起動時及びリモート操作状態変更時に、リモート操作状態と操作情報２１５からリモート操作に必要なボタンを作成し表示する。操作情報２１５には、端末１０４を制御する関数や被リモート操作アプリケーション２０１が備えるリモート操作関数等の操作関数と、それらのボタンの表示を決定するパラメータである位置や大きさ、名前（文字）、色、アイコン等とが含まれる。この操作情報２１５の取得は、端末１０４にリモート操作アプリケーション２０８をインストールする際に行う方法や、被リモート操作アプリケーション２０１から接続時あるいは必要に応じてダウンロードする方法がある。なお、操作情報２１５は、記憶装置（管理部）に記憶され、管理されている。
【００２０】
入力制御部２１２は、表示されたボタンに対する入力発生と内容をリモート操作アプリケーション２０８だけでなくボタン制御部２１４へ通知する。
ボタン制御部２１４は、入力内容がボタン外からボタン内への端末１０４のカーソル移動であった場合、ホスト１０２へリモート操作命令の１つであるボタン表示命令をリモート操作アプリケーション２０８及び通信部２１３又は通信部２１３だけを通じて送信する。ボタン表示命令には、端末１０４に表示中のボタンをホスト１０２に表示するために必要なボタン情報を含める。ホスト１０２の被リモート操作アプリケーション２０１が、端末１０４からボタン表示命令を受信するとボタン情報をボタン表示制御部２０７へ送信し、端末１０４のボタンを表示させる。
ボタン表示制御部２０７は、ボタン情報をもとにボタンのユーザインタフェースをホスト１０２の表示部へ表示する。もちろん、端末１０４からのボタン表示命令の度にボタン情報を取得するのではなく、ホスト１０２が受信したボタン情報を記憶装置（管理部）に保存しておき、端末１０４からはボタンに変更のあった場合のみボタン情報の全てあるいは更新情報だけを送信する。そして、ホスト１０２で受信したボタン表示命令にボタン情報が無ければ保存したボタン情報を用い、有れば保存したボタン情報を更新しそれを利用することもできる。
【００２１】
入力内容がボタン内からボタン外への端末１０４のカーソルが移動であった場合、ボタン非表示命令を同様に送信する。入力内容がボタンのクリックである場合、ボタンに対応する操作情報２１５の操作関数を実行する。この操作関数は、端末１０４を制御する関数や被リモート操作アプリケーション２０１が備えるリモート操作関数等である。リモート操作関数を動作した結果、端末１０４のリモート操作状態が変化した場合、状態の変化を端末１０４へ通知する。この際、状態変更後に表示するボタンの操作情報２１５が不足している場合、ホスト１０２から端末１０４へ新たな状態で利用される被リモート操作アプリケーション２０１の操作情報を送信することも可能である。もちろん、端末１０４でボタンの更新を行う際に操作情報２１５が不足している場合に、ホスト１０２へ操作情報を要求することも可能である。
【００２２】
また、被リモート操作アプリケーション２０１では端末１０４より受信したリモート操作命令がマウスエミュレーションの右ボタンダウンの場合、該端末１０４の右クリックメニューの表示をボタン表示制御部２０７へ要求する。ボタン表示制御部２０７は右クリックメニューの表示要求を受けると、該端末１０４が利用中のアプリケーションでの右クリックメニュー表示方法に応じて、独自の右クリックメニューを該端末１０４のボタン情報をもとに表示する。独自の右クリックメニューボタンのクリック操作が検出された場合、ボタン情報をもとにボタン動作を実行する。この場合、端末１０４でマウスエミュレーションの右クリックをリモート操作命令として送信する場合にボタン情報を含めて送信する方法がある。また、端末１０４のボタン情報をホスト１０２に保存し、端末１０４でボタンが更新されたときにボタン情報を送信しホスト１０２での保存内容を更新する方法がある。また、ホスト１０２で右クリックのリモート操作命令を検出したときに端末１０４へボタン情報の送信を要求する方法などがある。
【００２３】
図３は、オペレーティングシステムを利用した汎用的なシステムの構成を示す図である。ホスト１０２の入力制御部２０５、通信部２０６をハードウェアドライバとして、被リモート操作アプリケーション２０１はオペレーティングシステム２１６を経由して受信や送信を行うように構成することができる。端末１０４でも同様に入力制御部２１２、通信部２１３をハードウェアドライバとして、リモート操作アプリケーション２０８はオペレーティングシステム２１７を経由して受信や送信を行うように構成することができる。この場合、ホスト１０２の通信部２０６で入力装置のエミュレーションを行うリモート操作命令を受信すると、ホスト１０２の入力制御部２０５が行うのと同様にオペレーティングシステム２１６の入力イベントを起動するようにすることでも可能である。
【００２４】
図４は、端末１０４でのボタンの動作制御とホスト１０２でのボタンの表示制御手順の一例を示す図である。
ステップＳ１０１において端末１０４とホスト１０２との間の通信確立後、ステップＳ１０２においてボタン情報の作成と表示の更新を行う。ステップＳ１０２におけるボタン情報の作成と表示の更新は、端末１０４の制御又はホスト１０２の制御の結果、リモート操作状態が変化した場合に再度実行する。リモート操作状態とは、端末１０４に与えられた操作権や利用中のアプリケーション等のリモート操作環境を示すモードである。
【００２５】
端末１０４でボタン表示終了後、ステップＳ１０３において入力制御部２１２のカーソル制御によってカーソルがボタン上に移動した際等に、ステップＳ１０４において端末１０４からホスト１０２へボタン表示制御命令とボタン情報とを送信する。ボタン表示制御命令には、ボタンの表示、非表示、移動、拡大、縮小等の制御がある。ホスト１０２ではステップＳ１０４によるボタン表示制御命令を受信すると、ステップＳ１０５においてボタン表示制御部２０７が、端末毎にボタンの表示制御を行う。ボタン情報は、端末１０４のボタンをホスト１０２へ表示するのに必要な、ボタンが押されたときに動作させる関数やイベント等と、ボタンの表示を決定するパラメータである位置や大きさ、名前、色、アイコンなどの組合せである。動作を端末１０４でしか行わないボタンは、ボタンが押されたときに動作させる関数やイベント等を送信しなくてもよい。また、ホスト１０２にも端末１０４の操作情報２１５に対応する情報が保存されている場合、ボタン情報はボタンのＩＤだけでもよい。
【００２６】
ステップＳ１０６において、あるボタンでクリック動作が発生した場合、ステップＳ１０７において対応する動作を実行する。
ステップＳ１０８において該ボタンがホスト１０２のリモート操作に関するものの場合には、ステップＳ１０９においてホスト１０２での対応動作を実行する。
【００２７】
図５は、図４においてボタン情報の送信をボタン表示制御命令とは別に行いホストでボタン情報を保存する手順を追加した図である。この例では、ステップＳ１０２においてボタン情報の作成と表示の更新後、ステップＳ１１０においてホスト１０２へボタン情報を送信する。ホスト１０２では、ステップＳ１１１において被リモート操作アプリケーション２０１がボタン情報を端末１０４毎に保存する。これにより、ステップＳ１０４において端末１０４からボタン表示制御命令を送信する際にボタン情報を送信せずに済む。従って、ボタン情報は端末１０４でボタンの表示が変更された場合にのみ送信することとできるため、通信データ量を削減できる。
【００２８】
図６は、端末１０４からのホスト１０２のカーソル制御を行う手順の一例を示す図である。ステップＳ２０１において端末１０４のマウス２１０等の入力装置２０９で発生した入力イベントをもとにリモート操作アプリケーション２０８がカーソル制御を行う。次に、ステップＳ２０２においてホスト１０２に入力装置のエミュレーションを行うリモート操作命令であるカーソル制御命令を送信する。カーソル制御命令には、カーソルの移動やボタンのＵＰ、ＤＯＷＮ等がある。
【００２９】
ホスト１０２では、ステップＳ２０２でカーソル制御命令を受信すると、ステップＳ２０３において被リモート操作アプリケーション２０１が、端末１０４毎にカーソルの制御を行う。カーソル制御には、１つのカーソルを複数の端末１０４で排他制御することにより共有する制御法や端末１０４ごとに１つずつカーソルを用意する制御法等がある。
端末１０４からのカーソル制御命令の結果、ステップＳ２０４において右クリック動作が発生する場合には、ステップＳ２０５においてボタン表示制御部２０７で右クリックメニューの制御を行う。この右クリックメニューの表示には、ホスト１０２のオペレーティングシステム２１６の制御によって表示される右クリックメニューへのメニューの追加方法がある場合には端末１０４のボタン情報をもとにメニューを追加する方法がある。また、追加方法が無く右クリックメニューの左下の座標を取得できる場合には端末１０４のボタン情報をもとに右クリックメニューの表示位置の下に独自メニューを表示する方法がある。また、右クリックメニューの表示位置が分からない場合にはカーソル位置が独自メニューの左下となるように表示する方法等がある。
ステップＳ２０６において、あるメニューでクリック動作が発生した場合、ステップＳ２０７において対応する動作を実行する。ステップＳ２０８において該メニューが端末からのものであった場合には、ステップＳ２０９において端末１０４での対応動作を実行する。
【００３０】
図７は、ボタン制御部２１４で行う端末で表示するボタンの選択や配置、ホストへの通知手順の一例を示すフローチャートである。
図８は、操作情報２１５の一例を示す図である。操作情報２１５には、ボタンのＩＤ３０１、ボタンの表示を決定するパラメータであるアイコン３０２、大きさ３０３、テキスト３０４、色３０５と、ボタンが押されたときに動作させる関数やイベント３０６等がある。アイコンは、他のパラメータによってイメージが変化するようにすると利用価値が高まる。例えば、イメージの一部を透明としておき背景の色によってイメージの一部の色を変化させると、ペンや塗りつぶしのアイコンとして利用できる。なお、アイコンは、変数設定によって外見を変更可能にしてもよい。
図９は、端末１０４のボタン情報の一例を示す図であり、４０１〜４０５が、端末に表示するボタンの一例である。ボタン情報は、操作情報とボタンとを表示する位置４０６によって構成される。
【００３１】
図７のフローチャートに従って説明する。図４のステップＳ１０２の説明で述べたように、ボタン制御部２１４はステップＳ３０１における端末１０４とホスト１０２との通信確立時とステップＳ３０２におけるリモート操作状態が変化した場合に動作する。
ボタン制御部２１４では、まずステップＳ３０３において操作情報２１５を呼び出す。
次に、ステップＳ３０４において操作情報２１５から表示するボタンの選択を行う。
ステップＳ３０４における表示ボタンの選択は、端末１０４のリモート操作状態や端末１０４の操作に利用する入力装置２０９等の環境に応じてボタン制御部２１４が自動で行う方法がある。また、ユーザのボタン操作履歴や入力履歴に基づいてボタン制御部２１４が選択ルールを自動生成して行う方法や、表示ボタン選択用ユーザインタフェースを表示しユーザに選択させる方法等で行う。
【００３２】
ステップＳ３０４における表示するボタンの選択が終了すると、ステップＳ３０５において表示ボタンの並び替えを行う。ステップＳ３０５における並び替えは、ボタンの優先度やボタン同士の関連性等に基づいて行う。また、ここでもユーザの利用履歴の反映やユーザに並び替えさせることも可能である。
ステップＳ３０５におけるボタンの並び替え完了後、ステップＳ３０６においてボタンを表示する。これと同時にステップＳ３０７においてボタン情報の作成を行う。そして、図５のようにホスト１０２で端末１０４毎にボタン情報を保存する場合は、ステップＳ３０８においてこのボタン情報をホスト１０２へ送信する。ホスト１０２が端末１０４の操作情報２１５の全部あるいは一部を保持している場合には、ボタン情報に含まれる操作情報はボタンのＩＤ３０１のみ等とすることができる。
【００３３】
図１０は、端末１０４に表示するリモート操作ユーザインタフェースの例を示す図である。図９に示したボタン４０１〜４０５を表示する例として、５０１、５０３、５０４等がある。５０２は、端末１０４でのホスト操作領域であり、カーソルがこの上にある場合は５０２の矩形左上との相対座標からホスト１０２の表示サイズにおける絶対座標へ変換し、カーソル制御命令としてホスト１０２へ送信する。５０１は、ホスト操作領域の下にボタンを表示する例である。５０３は、ホスト操作領域の右にボタンを表示する例である。５０４は、ボタンを可動とする例であり、カーソルの表示されているバーをドラッグすることでボタンをウィンドウ５０５のように移動できる。
【００３４】
図１１は、ホスト１０２でボタン情報を端末１０４毎に保存する手順の一例を示すフローチャートである。ステップＳ４０１においてホスト１０２が端末１０４のボタン情報を受信すると、まずステップＳ４０２においてボタン情報を送信した端末１０４の識別を行う。端末１０４の識別には、端末１０４がホスト１０２と初めて通信を行う際にホスト１０２が端末１０４へＩＤを割り振り、端末１０４がホスト１０２と通信する際にデータにＩＤを含めて送信する方法がある。また、受信したデータの発信元を示すＩＰ等の情報を元に端末１０４を特定する方法などがある。本実施形態では、受信したデータの発信元を示すＩＰ等の情報を元に端末１０４を特定する方法を用いて説明する。ステップＳ４０２におけるボタン情報を送信した端末１０４の識別の結果をもとに、ステップＳ４０３において被リモート操作アプリケーション２０１が該端末１０４のボタン情報の保存を行う。
【００３５】
図１２は、ボタン動作制御と端末１０４でのカーソル制御手順の一例を示すフローチャートである。ステップＳ５０１において端末１０４のマウス２１０等の入力装置２０９から入力イベントが発生すると、まずステップＳ５０２において端末１０４のボタン制御部２１４がカーソル移動を行う。ステップＳ５０３において移動後のカーソルがボタン上に無い場合には、ステップＳ５０４において入力イベントの座標をホスト操作領域の左上とカーソルの相対座標を図１０で述べたホスト１０２の表示サイズにおける絶対座標へ変換した座標に変更する。
【００３６】
次に、ステップＳ５０５において入力イベントからホスト１０２のカーソル制御命令へ変換する。端末１０４からホスト１０２をリモート操作するのに、リモート操作入力のキャッシュ等の特別な処理を必要としない場合には、端末１０４で発生した入力イベントの座標をステップＳ５０４で変換したものをそのままカーソル制御命令とすることができる。また、座標変換をホスト１０２で行う場合には、端末１０４で発生した入力イベントをそのままカーソル制御命令とすることもできる。このようにして作成したカーソル制御命令を、ステップＳ５０６においてホスト１０２へ送信する。
【００３７】
ステップＳ５０３において、移動後のカーソルがボタン上にある場合には、ボタン制御部２１４がボタンの動作制御を行う。ボタン制御部２１４では、ステップＳ５０３においてカーソルがボタン外からボタン内に移動した場合には、ステップＳ５０８において該端末のボタン表示命令をホスト１０２へ送信しボタンの表示を行う。ステップＳ５０３においてボタンが表示されているあるいは表示された場合には、ステップＳ５０９において入力イベントの座標をボタンの左上とカーソルの相対座標に変更する。その後、ステップＳ５１０において入力イベントがクリック操作でない場合には、ステップＳ５０５において入力イベントからカーソル制御命令に変換し、ステップＳ５０６においてホストへ送信する。ステップＳ５１０においてクリック操作である場合には、ステップＳ５１１において操作情報をもとに押されたボタンに対応する関数を実行する。
【００３８】
図１３は、ボタン表示命令を受信した際にホスト１０２で行う処理の手順の一例を示すフローチャートである。ステップＳ６０１においてホスト１０２はボタン表示命令を受信すると、まずステップＳ６０２においてボタン表示命令を送信した端末１０４の識別を行う。
次に、ステップＳ６０３においてボタン表示命令中あるいは被リモート操作アプリケーション２０１が保存する端末１０４のボタン情報を取得する。
ステップＳ６０４においてボタン情報の取得に失敗した場合は、表示制御を終了し端末１０４へボタン情報の再送を要求する。ステップＳ６０４においてボタン情報の取得に成功したが、ステップＳ６０５においてボタンの表示領域が他の端末１０４のすでに表示されているボタンと重なる場合には、ステップＳ６０６においてボタン表示位置の変更を行う。ステップＳ６０６におけるボタン表示位置の変更では、ボタンの移動や縮小によりボタンの重なりを避ける。ボタンの重なりを許す場合には、重なりによって非表示となる端末１０４のボタン領域を該端末へ送信し、非表示領域におけるカーソル操作の中断を要求する（又は、無効とする）ことで、ボタンの非表示領域における誤動作を防止することができる。
ステップＳ６０６の終了後あるいはステップＳ６０５でボタンの重なりが無い場合には、ステップＳ６０７でボタン情報をもとに該端末のボタンを表示する。ステップＳ６０７で、取得したボタン情報をもとに該端末のボタンを表示する。なお、ステップＳ６０５において、ボタンが重なる場合は、表示中のボタンの操作が終了するまで、表示を行わないようにしたり、ボタンの表示を拒絶したりするようにしてもよい。
【００３９】
図１４は、ホスト側で端末のボタンを表示する例を示す図である。６０１は図１０の５０１、６０２は図１０の５０３、６０３は図１０の５０４のリモート操作ユーザインタフェースに対応している。これらの例では、リモート操作ユーザインタフェースのホスト操作領域５０２の大きさとホスト１０２の表示領域５０２´の大きさから縦横比を計算し、ボタン情報の中の大きさ３０３を拡大している。このような拡大を行う場合は、図１２のステップＳ５０９において入力イベントの座標をボタンの左上からのカーソルの相対座標に変更する際に、縦横比に応じて相対座標を拡大する。また、６０１、６０２ではボタンがホストの表示領域内に入るよう表示位置を縦方向、横方向に移動している。
【００４０】
図１５は、ホスト１０２側で複数の端末１０４のボタンを表示する例を示す図である。端末１が６０１と同様に、ホスト表示領域へボタン７０４を表示している状況で、別の端末２がボタンを表示する例である。７０１では、端末２は図１４の６０１と同様にボタンを表示しようとしたが、すでに端末１のボタンが表示されていたため、端末１の上側に端末２のボタン７０５が表示された。７０２では、端末２は図１４の６０２と同様にボタンを表示しようとしたが、すでに端末１のボタンが表示されていたため、縦方向に縮小して端末２のボタン７０６が表示された。７０３では、端末２は図１４の６０２と同様にボタンを表示すると、すでに表示されている端末１のボタンと重なるが端末１のボタンの下側にボタン７０７を表示した。このとき、７０４と７０７の重なっている部分における端末２のカーソル操作を中断することで、誤って７０７の消去ボタン上でクリックを行った場合の誤動作を防げる。
【００４１】
図１６は、ホスト１０２のカーソル制御手順の一例を示すフローチャートである。ステップＳ７０１においてホスト１０２が端末１０４からのカーソル制御命令を受信すると、まずステップＳ７０２においてカーソル制御命令を送信した端末１０４の識別を行う。
次に、ステップＳ７０３でボタン表示制御部２０７が該端末のボタンが表示中であるか確認し、表示中であればステップＳ７０４においてカーソル制御命令中の入力座標を端末ボタンの左上との相対座標からホストの表示領域内での絶対座標に変換する。
この絶対座標をもとにステップＳ７０７において該端末用の擬似カーソルを表示し、ステップＳ７０８においてカーソルの制御を行う。このように、ボタンとカーソルの位置関係とを維持するようにカーソルの座標変換を行う。
ステップＳ７０３において該端末のボタンが表示されていない場合は、ステップＳ７０５においてカーソル制御命令が右クリックであるか確認する。右クリックである場合はステップＳ７０６においてボタン表示制御部２０７へ該端末の右クリックメニューの表示を要求する。以降はステップＳ７０７、ステップＳ７０８と同様に処理する。
【００４２】
図１７は、ホスト側での右クリックメニュー表示の例を示す図である。
図６で述べたように右クリックメニューを表示する方法としてホスト１０２のオペレーティングシステム２１６の制御によって表示される右クリックメニューへのメニューの追加方法がある場合には、端末１０４のボタン情報をもとにメニューを追加する方法がある。また、追加方法が無く右クリックメニューの左下の座標を取得できる場合には端末１０４のボタン情報をもとに右クリックメニューの表示位置の下に独自メニューを表示する方法がある。また、右クリックメニューの表示位置が分からない場合にはカーソル位置が独自メニューの左下となるように表示する方法等がある。メニューを追加する場合が８１１、右クリックメニューの表示位置の下に独自メニューを表示する場合が８１２、右クリックメニューの表示位置の上に独自メニューを表示する場合が８１３である。
【００４３】
８０２〜８０４と、８１０とが、オペレーティングシステム２１６からの右クリックメニューであり、８０５〜８０５が、端末１０４からの右クリックメニューである。８１１では、ホストからのメニューに追加を行ったため、端末のメニューがホストのメニューと混じっている。８１２では、ホストのメニューの下に端末のメニューが表示されている。８１３では、端末のメニューがカーソルの上側に表示されホストのメニューが下側に表示されていることから、ホストのメニューの上に端末のメニューが表示されている。
【００４４】
このように、本実施形態によれば、リモート操作を行う端末のボタンをホストの共有画面に表示することで、端末のボタン操作によるリモート操作時に発生するユーザの視点切替を軽減し、ユーザ操作の低減を図ることができる。また、スペースやユーザにとっての分かり辛さのため共有画面に常設できない端末毎に異なるボタンを端末のユーザインタフェースに配置し、これを共有画面のみを見ながら操作することができる。
【００４５】
上述した本発明の実施形態における遠隔操作システムを構成する各手段、並びに遠隔操作システムの制御方法の各ステップは、コンピュータのＲＡＭやＲＯＭ等に記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００４６】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施形態も可能であり、具体的には、一つの機器からなる装置に適用してもよい。
【００４７】
なお、本発明は、上述した実施形態の機能を実現するソフトウェアのプログラムを、システム又は装置に直接、又は遠隔から供給する。そして、そのシステム又は装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【００４８】
従って、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００４９】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。更に、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳ等が、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００５０】
更に、その他の方法として、まず記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【００５１】
【図１】遠隔操作システムの構成を示すブロック図である。
【図２】遠隔操作システムの機能構成を示すブロック図である。
【図３】オペレーティングシステムを利用した汎用的なシステムの構成を示す図である。
【図４】端末でのボタンの動作制御とホストでのボタンの表示制御手順の一例を示すフローチャートである。
【図５】端末でのボタンの動作制御とホストでのボタンの表示制御を行う別の手順の一例を示すフローチャートである。
【図６】端末からのホストのカーソル制御を行う手順の一例を示す図である。
【図７】ボタン制御部で行う端末で表示するボタンの選択や配置、ホストへの通知手順の一例を示すフローチャートである。
【図８】操作情報の一例を示す図である。
【図９】端末のボタン情報の一例を示す図である。
【図１０】端末に表示するリモート操作ユーザインタフェースの例を示す図である。
【図１１】ホストでボタン情報を端末毎に保存する手順の一例を示すフローチャートである。
【図１２】ボタン動作制御と端末でのカーソル制御手順の一例を示すフローチャートである。
【図１３】ボタン表示命令を受信した際にホストで行う処理の手順の一例を示すフローチャートである。
【図１４】ホスト側で端末のボタンを表示する例を示す図である。
【図１５】ホスト側で複数の端末のボタンを表示する例を示す図である。
【図１６】ホストのカーソル制御手順の一例を示すフローチャートである。
【図１７】ホスト側での右クリックメニュー表示の例を示す図である。
【符号の説明】
【００５２】
１０１    表示装置
１０２    主情報処理装置
１０３    通信手段
１０４    情報処理装置
１０５    情報処理装置
１０６    情報処理装置
２０１    被リモート操作アプリケーション
２０２    入力装置
２０３    マウス
２０４    キーボード
２０５    入力制御部
２０６    通信部
２０７    ボタン表示制御部
２０８    リモート操作アプリケーション
２０９    入力装置
２１０    マウス
２１１    キーボード
２１２    入力制御部
２１３    通信部
２１４    ボタン制御部
２１５    操作情報
【図１】
2008310442.tif 000003
【図２】
2008310442.tif 000004
【図３】
2008310442.tif 000005
【図４】
2008310442.tif 000006
【図５】
2008310442.tif 000007
【図６】
2008310442.tif 000008
【図７】
2008310442.tif 000009
【図８】
2008310442.tif 000010
【図９】
2008310442.tif 000011
【図１０】
2008310442.tif 000012
【図１１】
2008310442.tif 000013
【図１２】
2008310442.tif 000014
【図１３】
2008310442.tif 000015
【図１４】
2008310442.tif 000016
【図１５】
2008310442.tif 000017
【図１６】
2008310442.tif 000018
【図１７】
2008310442.tif 000019