(57)【要約】【課題】サーバの操作画面に操作可能領域及び操作不可能領域が含まれる場合に、サーバの操作画面を表示するウインドウ内で、サーバ及び自装置のマウスカーソルのずれを抑制することができるプログラム、中継装置及び情報処理装置を提供する。【解決手段】ソフト４０７は、表示専用領域と操作可能領域との境界を示す座標情報を外部から取得し（Ｓ１）、遠隔操作用ソフトのウインドウの配置座標をＯＳから取得し、当該ウインドウの配置座標に合わせて別ウインドウを配置する（Ｓ２）。そして、ソフト４０７は、上記座標情報と上記配置座標から、表示専用領域及び操作可能領域の位置を検出し（Ｓ３）、ＯＳから取得したマウスカーソルの座標が、サーバのマウスカーソルが進入できない表示専用領域に含まれる場合には、取得したマウスカーソルの座標を遠隔操作用ソフトに通知せず遮断する（Ｓ３５、Ｓ３８、Ｓ３９）。【選択図】図８
2015210714.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰ−ＫＶＭ（Ｋ：キーボード、Ｖ：ビデオ、Ｍ：マウス）スイッチを介してサーバに接続されると共に、当該サーバの操作画面に表示される第１マウスカーソルと自身の操作画面に表示される第２マウスカーソルとを表示して当該サーバの操作画面を遠隔操作するコンピュータを、
前記サーバの操作画面内の操作可能領域と操作不可能領域との境界を示す座標情報を取得する第１取得手段、
前記第１マウスカーソルを含む前記サーバの操作画面を表示する第１ウインドウの配置座標を前記コンピュータのオペレーティングシステムから取得する第２取得手段、
前記第１取得手段で取得された座標情報と、前記第２取得手段で取得された第１ウインドウの配置座標とから、前記操作可能領域及び前記操作不可能領域の位置を検出する検出手段、及び
前記コンピュータのオペレーティングシステムから取得した第２マウスカーソルの座標が前記操作不可能領域に含まれる場合には、前記第２マウスカーソルの座標を前記第１ウインドウに通知することを遮断する遮断手段
として機能することを特徴とするプログラム。
【請求項２】
前記第１ウインドウの上に、前記第１ウインドウの大きさと同じ大きさの第２ウインドウを配置し、
前記遮断手段は前記第２ウインドウであり、
前記第２ウインドウは、前記コンピュータのオペレーティングシステムから前記第２マウスカーソルの座標を取得し、当該取得した第２マウスカーソルの座標が前記操作不可能領域に含まれる場合には、当該取得した第２マウスカーソルの座標を前記第１ウインドウに通知することを遮断し、
当該取得した第２マウスカーソルの座標が前記操作可能領域に含まれる場合には、当該取得した第２マウスカーソルの座標を前記第１ウインドウに通知することを特徴とする請求項１に記載のプログラム。
【請求項３】
前記オペレーティングシステムから取得した第２マウスカーソルの前回座標が前記操作不可能領域に含まれ、且つ前記オペレーティングシステムから取得した第２マウスカーソルの今回座標が前記操作可能領域に含まれる場合、前記遮断手段は、前記第２マウスカーソルが前記操作不可能領域及び前記操作可能領域の境界に到達するまで、前記第２マウスカーソルの座標を前記第１ウインドウに通知することを遮断し、前記第２マウスカーソルが前記操作不可能領域と前記操作可能領域との境界に到達したら、前記第２マウスカーソルの前回座標及び前記第２マウスカーソルの今回座標を結ぶ直線と、前記操作不可能領域及び前記操作可能領域の境界との交点を算出して当該交点の座標を前記第１ウインドウに通知し、前記第２マウスカーソルの今回座標を前記第１ウインドウに通知することを特徴とする請求項１又は２に記載のプログラム。
【請求項４】
前記オペレーティングシステムから取得した第２マウスカーソルの前回座標が前記操作可能領域に含まれ、且つ前記オペレーティングシステムから取得した第２マウスカーソルの今回座標が前記操作不可能領域に含まれる場合に、前記遮断手段は、前記第２マウスカーソルの前回座標及び前記第２マウスカーソルの今回座標を結ぶ直線と、前記操作不可能領域及び前記操作可能領域の境界との交点を算出して当該交点の座標を前記第１ウインドウに通知し、前記第２マウスカーソルの今回座標を前記第１ウインドウに通知することを遮断することを特徴とする請求項１乃至３のいずれか１項に記載のプログラム。
【請求項５】
前記コンピュータのオペレーティングシステムから前記第１ウインドウの移動、拡大、縮小及び終了のいずれか一つの命令を取得した場合に、当該取得した命令に応じて前記第２ウインドウの移動、拡大、縮小及び終了のいずれか一つを実行する実行手段を備える請求項２に記載のプログラム。
【請求項６】
前記遮断手段は、自身のオペレーティングシステムから前記第１ウインドウに出力される第２マウスカーソルの座標を横取りする横取手段を備え、
前記遮断手段は、当該横取りした第２マウスカーソルの座標が前記操作不可能領域に含まれる場合には、当該横取りした第２マウスカーソルの座標を前記第１ウインドウに通知することを遮断し、当該横取りした第２マウスカーソルの座標が前記操作可能領域に含まれる場合には、当該横取りした第２マウスカーソルの座標を前記第１ウインドウに通知することを特徴とする請求項１に記載のプログラム。
【請求項７】
前記第１マウスカーソルと前記第２マウスカーソルとの位置を合わせる場合、
前記第１マウスカーソルを前記操作可能領域の基準点に移動させ、
前記基準点に位置する第１マウスカーソルを、前記第２マウスカーソルの位置に移動させることを特徴とする請求項１に記載のプログラム。
【請求項８】
前記第１マウスカーソルを前記基準点に移動させる場合、
前記第１マウスカーソルの座標と前記基準点の座標との差分を求めて、前記第１マウスカーソルが前記基準点を通過させる移動量を前記サーバに通知し、
前記第１マウスカーソルを前記基準点から移動させる場合、
前記基準点から前記第２マウスカーソルの位置に前記第１マウスカーソルを移動させることのできる移動量を前記サーバに通知することを特徴とする請求項７に記載のプログラム。
【請求項９】
サーバの操作画面に表示される第１マウスカーソルと自身の操作画面に表示される第２マウスカーソルとを表示して当該サーバの操作画面を遠隔操作するクライアントに接続されるＩＰ−ＫＶＭ（Ｋ：キーボード、Ｖ：ビデオ、Ｍ：マウス）スイッチとサーバとの間に接続される中継装置であって、
前記サーバの操作画面内の操作可能領域と操作不可能領域との境界を示す座標情報及び前記サーバの操作画面のサイズ情報を取得する第１取得手段と、
前記第１取得手段で取得された座標情報及びサイズ情報から前記操作可能領域及び前記操作不可能領域の位置を検出する検出手段と、
前記クライアントで実行される前記第１マウスカーソル及び前記第２マウスカーソルの位置合わせ処理から前記第２マウスカーソルの座標を取得する第２取得手段と、
前記ＩＰ−ＫＶＭから取得される第２マウスカーソルの相対座標を前記第２マウスカーソルの前回座標に加算することで前記第２マウスカーソルの今回座標を算出し、前記第２マウスカーソルの今回座標が、前記操作不可能領域に含まれる場合には、前記第２マウスカーソルの今回座標を前記サーバに通知することを遮断する遮断手段と
を備えることを特徴とする中継装置。
【請求項１０】
前記第２マウスカーソルの前回座標が前記操作不可能領域に含まれ、且つ前記第２マウスカーソルの今回座標が前記操作可能領域に含まれる場合に、前記遮断手段は、前記第２マウスカーソルが前記操作不可能領域及び前記操作可能領域の境界に到達するまで、前記第２マウスカーソルの座標を前記サーバに通知することを遮断し、前記第２マウスカーソルが前記操作不可能領と前記操作可能領域との境界に到達したら、前記第２マウスカーソルの前回座標及び前記第２マウスカーソルの今回座標を結ぶ直線と、前記操作不可能領域及び前記操作可能領域の境界との交点を算出して、当該交点の座標を前記サーバに通知し、前記第２マウスカーソルの今回座標を前記サーバに通知することを特徴とする請求項９に記載の中継装置。
【請求項１１】
前記第２マウスカーソルの前回座標が前記操作可能領域に含まれ、且つ前記第２マウスカーソルの今回座標が前記操作不可能領域に含まれる場合に、前記遮断手段は、前記第２マウスカーソルの前回座標及び前記第２マウスカーソルの今回座標を結ぶ直線と、前記操作不可能領域及び前記操作可能領域の境界との交点を算出して、当該交点の座標を前記サーバに通知し、前記第２マウスカーソルの今回座標を前記サーバに通知することを遮断することを特徴とする請求項９又は１０に記載の中継装置。
【請求項１２】
前記位置合わせ処理では、前記クライアントは前記第１マウスカーソルを前記操作可能領域の予め決められた基準点を通過させてから、前記第２マウスカーソルの位置に移動させ、
前記第２取得手段は、前記第１取得手段で取得された座標情報及びサイズ情報から前記基準点の座標を算出し、前記基準点から前記第２マウスカーソルの位置に移動する際の前記第１マウスカーソルの相対座標を当該基準点の座標に加算することで前記第２マウスカーソルの座標を取得することを特徴とする請求項９乃至１１のいずれか１項に記載の中継装置。
【請求項１３】
前記クライアントと通信する通信手段を備え、前記第１取得手段は前記クライアントから前記通信手段を介して前記座標情報及び前記サイズ情報を取得することを特徴とする請求項９乃至１２のいずれか１項に記載の中継装置。
【請求項１４】
前記第１取得手段は、前記座標情報及び前記サイズ情報が記憶された記憶媒体から前記座標情報及び前記サイズ情報を取得することを特徴とする請求項９乃至１２のいずれか１項に記載の中継装置。
【請求項１５】
ＩＰ−ＫＶＭ（Ｋ：キーボード、Ｖ：ビデオ、Ｍ：マウス）スイッチを介してサーバに接続され、当該サーバの操作画面に表示される第１マウスカーソルと自身の操作画面に表示される第２マウスカーソルとを表示して当該サーバの操作画面を遠隔操作する情報処理装置であって、
前記サーバの操作画面内の操作可能領域と操作不可能領域との境界を示す座標情報を取得する第１取得手段と、
前記第１マウスカーソルが表示される前記サーバの操作画面を表示するソフトウエアが生成する第１ウインドウの配置座標を前記情報処理装置から取得する第２取得手段と、
前記第１取得手段で取得された座標情報と、前記第２取得手段で取得された第１ウインドウの配置座標とから、前記操作可能領域及び前記操作不可能領域の位置を検出する検出手段と、
前記情報処理装置から取得した第２マウスカーソルの座標が前記操作不可能領域に含まれる場合には、前記第２マウスカーソルの座標を前記第１ウインドウに通知することを遮断する遮断手段と
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、中継装置及び情報処理装置に関する。
【背景技術】
【０００２】
従来より、ＩＰ−ＫＶＭ（Ｋ：キーボード、Ｖ：ビデオ、Ｍ：マウス）スイッチを介してサーバに接続されるクライアントが知られている（例えば、特許文献１参照）。サーバは、クライアントから送信されるマウスカーソルの移動量を増加させることがあるので（即ちマウスカーソルが加速される）、クライアントからサーバに送信された移動量がサーバによって増加されることを防ぐため、クライアントからＩＰ−ＫＶＭスイッチに送信される移動量を予め調整する。
【０００３】
また、従来より、遠隔に設けられた複数の端末からネットワークを介して送られる操作信号を受け取って、ローカル側のサーバを操作するＩＰ−ＫＶＭ装置と、当該ネットワークとＩＰ−ＫＶＭ装置との間に工程管理装置とを備える遠隔作業工程管理システムが知られている（例えば、特許文献２参照）。このシステムでは、複数の端末が、工程管理装置が管理している作業工程管理情報を参照して、サーバに対する作業順序を管理する。
【０００４】
図１は、一般的なＩＰ−ＫＶＭスイッチを備える通信システムの構成図である。図１の通信システムは、サーバ１、ＩＰ−ＫＶＭスイッチ２、遠隔端末４、ディスプレイ５、キーボード６及びマウス７を備えている。ＩＰ−ＫＶＭスイッチ２は、遠隔端末４からサーバ１を操作するために設けられている。遠隔端末４は、例えば、コンピュータであり、ディスプレイ５、キーボード６及びマウス７が接続されている。サーバ１はＩＰ−ＫＶＭスイッチ２に接続されており、ＩＰ−ＫＶＭスイッチ２はネットワーク３を介して遠隔端末４に接続されている。遠隔端末４は、ＯＳとしてWindows（登録商標）を利用している。遠隔端末４には、予めＩＰ−ＫＶＭ用のソフトウエアがインストールされている。ＩＰ−ＫＶＭ用のソフトウエアは、遠隔端末４からＩＰ−ＫＶＭスイッチ２を介してサーバ１の操作画面を操作するためのソフトウエアである。
【０００５】
図２（Ａ）は、ディスプレイ５に表示される操作画面１０の一例を示す図である。図２（Ｂ）は、図２（Ａ）の操作画面１０を表示するシステムの概念図である。Windows（登録商標）のようなＯＳでは、ウインドウやマウスカーソルなどの全てのオブジェクトに重なり順がある。図２（Ａ）では、オブジェクトの重なり順が分かりにくいため、図２（Ｂ）にオブジェクトの重なり順が示されている。
【０００６】
図２（Ｂ）に示すように、一番下に背景１１が配置され、背景１１の上にウインドウ１２が配置及び表示され、ウインドウ１２の上にマウスカーソル１４が配置及び表示される。オブジェクトを管理しているＯＳでは、マウス７の位置を示す座標を管理し、その管理された位置にマウスカーソル１４を描画する。そして、ＯＳは、描画したマウスカーソル１４の直下にあるウインドウ１２に対してマウスカーソル１４の座標を通知する。
【０００７】
図２（Ａ）に示すように、ディスプレイ５に表示される操作画面１０は、例えば、背景１１と、ＩＰ−ＫＶＭ用のソフトウエアが実行されているときに表示されるウインドウ１２とを含む。ウインドウ１２は、サーバ１から出力されるビデオ信号を表示している。つまり、ウインドウ１２はサーバ１の操作画面を表示する。ウインドウ１２にはマウスカーソル１３が表示される。マウスカーソル１３は、サーバ１上で動作するマウスカーソルである。背景１１には、マウスカーソル１４が表示されている。このマウスカーソル１４は、遠隔端末４上で動作するマウスカーソルである。以下、マウスカーソル１３をサーバのマウスカーソルといい、マウスカーソル１４を遠隔端末のマウスカーソルという場合がある。また、説明の都合上、マウスカーソル１３は破線で示され、マウスカーソル１４は実線で示されている。実際のマウスカーソル１３，１４は、同じ形状であってもよい。
【０００８】
ウインドウ１２は、表示専用領域１５Ａ、１５Ｂと、操作可能領域１６を備えている。表示専用領域１５Ａ，１５Ｂはデータの表示のみが行われ、マウスカーソル１３が移動することができない領域である。操作可能領域１６は、データの表示が行われ、且つマウスカーソル１３が移動することができる領域である。マウスカーソル１４は、表示専用領域１５Ａ、１５Ｂ及び操作可能領域１６に移動することができる。
【０００９】
図２（Ａ）では、マウスカーソル１４は、ウインドウ１２の外部に位置するので、マウスカーソル１４は、マウスカーソル１３と重ならない。しかし、マウスカーソル１４が、ウインドウ１２の内部に位置する場合には、図２（Ｃ）に示すように、マウスカーソル１３と重なることが要求される。これは、サーバ１の操作画面を操作するためのウインドウ１２では、マウスカーソル１４がマウスカーソル１３と重ならないと、操作性が悪いからである。
【００１０】
遠隔端末４は、マウスカーソル１４がウインドウ１２内に位置する場合には、その座標データをＩＰ−ＫＶＭスイッチ２を介してサーバ１に出力する。サーバ１はこの座標データに基づいてマウスカーソル１３を移動させる。その後、遠隔端末４は、マウスカーソル１４がウインドウ１２内で移動すると、マウスカーソル１４の移動量のデータをＩＰ−ＫＶＭスイッチ２を介してサーバ１に出力し、サーバ１は遠隔端末４からの移動量のデータに基づいてマウスカーソル１３を移動させる。従って、マウスカーソル１３はマウスカーソル１４の動きに追従する。これにより、ユーザはマウスカーソル１４でサーバ１の操作画面を操作することができる。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００９−１４６３９４号公報
【００１２】
【特許文献２】特開２０１０−２３１７０３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ところで、マウスカーソル１４がウインドウ１２内に位置する場合でも、マウスカーソル１４がマウスカーソル１３と重ならない場合が生じる。即ち、マウスカーソル１４がマウスカーソル１３からずれる場合がある。
【００１４】
図３（Ａ）〜（Ｅ）はマウスカーソル１４がマウスカーソル１３とずれる場合の説明図である。ここでは、マウスカーソル１４が操作可能領域１６から表示専用領域１５Ａに移動し、再び表示専用領域１５Ａから操作可能領域１６に戻る場合を考える。
【００１５】
図３（Ａ）は、マウスカーソル１４及び１３が操作可能領域１６に位置し、マウスカーソル１４はマウスカーソル１３に重なっている状態を示す。図３（Ｂ）に示すようにユーザがマウスカーソル１４を上方に移動させると、マウスカーソル１３はマウスカーソル１４の移動に追従する。さらに、図３（Ｃ）に示すように、ユーザがマウスカーソル１４を上方に移動させ、マウスカーソル１４が操作可能領域１６から表示専用領域１５Ａに進入すると、マウスカーソル１３は、表示専用領域１５Ａと操作可能領域１６との境界で止まり、表示専用領域１５Ａに進入できない。一方、マウスカーソル１４は表示専用領域１５Ａ内でも移動できるため、この時点で、マウスカーソル１４及び１３の位置はずれる。
【００１６】
さらに、図３（Ｄ）に示すように、ユーザがマウスカーソル１４を上方に移動させると、マウスカーソル１３は、マウスカーソル１４の移動に追従できず、マウスカーソル１４とマウスカーソル１３との間のずれが大きくなる。そして、図３（Ｅ）に示すように、ユーザがマウスカーソル１４を下方に移動させると、マウスカーソル１３は、マウスカーソル１４の移動に追従し、マウスカーソル１４と重なることなく下方に移動する。
【００１７】
このずれの原因は、マウスカーソル１４がウインドウ１２内で移動する場合、サーバ１は、遠隔端末４からＩＰ−ＫＶＭスイッチ２を介して送られてくるマウスカーソル１４の移動量のデータを常に受け付けるが、その移動量に応じてマウスカーソル１３を移動させる範囲を操作可能領域１６に限定していることである。
【００１８】
本発明は、サーバの操作画面に操作可能領域及び操作不可能領域が含まれる場合に、サーバの操作画面を表示するウインドウ内で、サーバのマウスカーソルと自装置のマウスカーソルとのずれを抑制することができるプログラム、中継装置及び情報処理装置を提供することにある。
【課題を解決するための手段】
【００１９】
上記目的を達成するため、明細書に開示されたプログラムは、ＩＰ−ＫＶＭ（Ｋ：キーボード、Ｖ：ビデオ、Ｍ：マウス）スイッチを介してサーバに接続されると共に、当該サーバの操作画面に表示される第１マウスカーソルと自身の操作画面に表示される第２マウスカーソルとを表示して当該サーバの操作画面を遠隔操作するコンピュータを、前記サーバの操作画面内の操作可能領域と操作不可能領域との境界を示す座標情報を取得する第１取得手段、前記第１マウスカーソルを含む前記サーバの操作画面を表示する第１ウインドウの配置座標を前記コンピュータのオペレーティングシステムから取得する第２取得手段、前記第１取得手段で取得された座標情報と、前記第２取得手段で取得された第１ウインドウの配置座標とから、前記操作可能領域及び前記操作不可能領域の位置を検出する検出手段、及び前記コンピュータのオペレーティングシステムから取得した第２マウスカーソルの座標が前記操作不可能領域に含まれる場合には、前記第２マウスカーソルの座標を前記第１ウインドウに通知することを遮断する遮断手段として機能する。
【００２０】
明細書に開示された中継装置は、サーバの操作画面に表示される第１マウスカーソルと自身の操作画面に表示される第２マウスカーソルとを表示して当該サーバの操作画面を遠隔操作するクライアントに接続されるＩＰ−ＫＶＭ（Ｋ：キーボード、Ｖ：ビデオ、Ｍ：マウス）スイッチとサーバとの間に接続される中継装置であって、前記サーバの操作画面内の操作可能領域と操作不可能領域との境界を示す座標情報及び前記サーバの操作画面のサイズ情報を取得する第１取得手段と、前記第１取得手段で取得された座標情報及びサイズ情報から前記操作可能領域及び前記操作不可能領域の位置を検出する検出手段と、前記クライアントで実行される前記第１マウスカーソル及び前記第２マウスカーソルの位置合わせ処理から前記第２マウスカーソルの座標を取得する第２取得手段と、前記ＩＰ−ＫＶＭから取得される第２マウスカーソルの相対座標を前記第２マウスカーソルの前回座標に加算することで前記第２マウスカーソルの今回座標を算出し、前記第２マウスカーソルの今回座標が、前記操作不可能領域に含まれる場合には、前記第２マウスカーソルの今回座標を前記サーバに通知することを遮断する遮断手段とを備える。
【００２１】
明細書に開示された情報処理装置は、ＩＰ−ＫＶＭ（Ｋ：キーボード、Ｖ：ビデオ、Ｍ：マウス）スイッチを介してサーバに接続され、当該サーバの操作画面に表示される第１マウスカーソルと自身の操作画面に表示される第２マウスカーソルとを表示して当該サーバの操作画面を遠隔操作する情報処理装置であって、前記サーバの操作画面内の操作可能領域と操作不可能領域との境界を示す座標情報を取得する第１取得手段と、前記第１マウスカーソルが表示される前記サーバの操作画面を表示するソフトウエアが生成する第１ウインドウの配置座標を前記情報処理装置から取得する第２取得手段と、前記第１取得手段で取得された座標情報と、前記第２取得手段で取得された第１ウインドウの配置座標とから、前記操作可能領域及び前記操作不可能領域の位置を検出する検出手段と、前記情報処理装置から取得した第２マウスカーソルの座標が前記操作不可能領域に含まれる場合には、前記第２マウスカーソルの座標を前記第１ウインドウに通知することを遮断する遮断手段とを備える。
【発明の効果】
【００２２】
本発明によれば、サーバの操作画面に操作可能領域及び操作不可能領域が含まれる場合に、サーバの操作画面を表示するウインドウ内で、サーバのマウスカーソルと自装置のマウスカーソルとのずれを抑制することができる。
【図面の簡単な説明】
【００２３】
【図１】一般的なＩＰ−ＫＶＭスイッチを備える通信システムの構成図である。
【図２】（Ａ）は、ディスプレイに表示される操作画面の一例を示す図である。（Ｂ）は、図２（Ａ）の操作画面を表示するシステムの概念図である。（Ｃ）は、２つのマウスカーソル１３，１４が重なる例を示す図である。
【図３】（Ａ）〜（Ｅ）はマウスカーソル１４がマウスカーソル１３とずれる場合の説明図である。
【図４】第１の実施の形態に係る遠隔システムの概略構成図である。
【図５】（Ａ）は、サーバのハードウエア構成を示すブロック図である。（Ｂ）は、クライアントのハードウエア構成を示すブロック図である。
【図６】（Ａ）は、ディスプレイに表示される操作画面の一例を示す図である。（Ｂ）は、図６（Ａ）の操作画面を表示するシステムの概念図である。
【図７】（Ａ）は、マウスの動きの一例を示す図である。（Ｂ）は、図７（Ａ）のマウスの動きに対応する座標データを概略的に示した図である。（Ｃ）は、（Ａ）に対応するマウスカーソルが表示専用領域と操作可能領域との境界を超える場合の座標データの処理方法を示す図である。
【図８】ソフトウエアで実行される動作を示すフローチャートである。
【図９】図８のステップＳ７の他の処理を示すフローチャートである。
【図１０】図８のステップＳ６のマウスカーソル４２０の移動に関する処理を示すフローチャートである。
【図１１】第２の実施の形態に係るソフトウエアで実行される動作を示すフローチャートである。
【図１２】第３の実施の形態に係る遠隔システムの概略構成図である。
【図１３】中継装置の概略構成を示すブロック図である。
【図１４】下流側Ｉ／Ｆ処理部の概略構成を示すブロック図である。
【図１５】ＯＳＤ画面の一例を示す図である。
【図１６】中継装置で実行される動作を示すフローチャートである。
【図１７】２つのマウスカーソルの位置を一致させる処理を説明する図である。
【図１８】図１６のステップＳ４６の他の処理を示すフローチャートである。
【図１９】図１６のステップＳ４５のマウスカーソルの移動に関する処理を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下、図面を参照しながら本発明の実施の形態を説明する。
【００２５】
（第１の実施の形態）
図４は、第１の実施の形態に係る遠隔システムの概略構成図である。
【００２６】
図４において、遠隔システム１０００は、サーバ１００、ＩＰ−ＫＶＭ（Ｋ：キーボード、Ｖ：ビデオ、Ｍ：マウス）スイッチ２００及びクライアント４００を備えている。ＩＰ−ＫＶＭスイッチ２００は、クライアント４００側からサーバ１００の操作画面を遠隔操作するための装置である。サーバ１００は、通信ケーブル３０を介してＩＰ−ＫＶＭスイッチ２００に接続されている。クライアント４００は、ネットワーク３００及び通信ケーブル３１，３２を介してＩＰ−ＫＶＭスイッチ２００に接続されている。通信ケーブル３０は、例えば、ＵＳＢ（Universal Serial Bus）ケーブル及びＤＶＩ（Digital Visual Interface）ケーブルである。通信ケーブル３１、３２は、例えばＬＡＮ（Local Area Network）ケーブルである。図４においては、遠隔システム１０００は、サーバ１００及びクライアント４００を備えているが、複数のサーバ及び複数のクライアントを備えていてもよい。
【００２７】
サーバ１００は、通信ケーブル３０が接続される通信インターフェース（Ｉ／Ｆ）１０１と、ＩＰ−ＫＶＭスイッチ２００から受信したパケットから、マウスカーソルの座標（例えば相対座標で示される）を示す座標データ、及びマウスのボタンが押下されているか否かを示すボタンデータを抽出し、それらをマウスクラスドライバ１０３に出力すると共に、マウスクラスドライバ１０３が出力する座標データ及びボタンデータを割り込み取得するデバイスドライバ１０２と、デバイスドライバ１０２から取得した座標データに加速度／速度処理によるカーソルの移動量を追加するマウスクラスドライバ１０３と、デバイスドライバ１０２から受信した座標量データに基づいてマウスカーソルの移動を実行するオペレーティング・システム（ＯＳ）１０４とを備えている。ＯＳ１０４は、Windows（登録商標）、UNIX（登録商標）、又はMAC OSなどであるが、本実施の形態では、Windows（登録商標）を利用する。
【００２８】
加速度／速度処理とは、サーバ１００が、ＩＰ−ＫＶＭスイッチ２００を介してクライアント４００から受信した、相対座標で示されるマウスカーソルの座標に対して、マウスの移動速度又移動加速度に基づくマウスカーソルの移動量を加算する処理である。
【００２９】
尚、マウスクラスドライバ１０３の有効及び無効は、サーバ１００のＯＳ１０４の設定で切り替えることができる。マウスクラスドライバ１０３が有効である場合には、上述した加速度／速度処理が実行される。マウスクラスドライバ１０３が無効である場合には、加速度／速度処理は実行されない。マウスクラスドライバ１０３が無効である場合、デバイスドライバ１０２はカーソルの座標データ及びボタンデータを直接ＯＳ１０４に送信する。
【００３０】
ＩＰ−ＫＶＭスイッチ２００は、通信ケーブル３０を介してサーバ１００から操作画面を示すビデオ信号（以下、このビデオ信号をサーバ１００の画面データという）を受信すると共に、座標データ及びボタンデータをサーバ１００に送信する通信Ｉ／Ｆ２０１と、座標データ及びボタンデータ並びにキーボード５１からのキーコードをクライアント４００から受信すると共にサーバ１００からの画面データをクライアント４００に送信する通信Ｉ／Ｆ２０２と、各種の処理を実行すると共に通信Ｉ／Ｆ２０１，２０２を含む装置全体を制御する制御部２０３と、各種データを記憶するメモリ２０４とを備えている。制御部２０３はマイコンで構成され、メモリ２０４はハードディスクドライブ又は不揮発性のメモリで構成されている。尚、通信Ｉ／Ｆ２０１及び通信Ｉ／Ｆ２０２の個数は、１つに限定されるものではなく、複数あってもよい。
【００３１】
クライアント４００は、マウス５２の座標データ及びボタンデータ並びにキーボード５１からのキーコードを、ネットワーク３００を介してＩＰ−ＫＶＭスイッチ２００に送信すると共に、サーバ１００の画面データをネットワーク３００を介してＩＰ−ＫＶＭスイッチ２００から受信する通信Ｉ／Ｆ４０１と、キーボード５１からのキーコードを受信するキーボード用Ｉ／Ｆ４０２と、マウス５２からの座標データ及びボタンデータを受信するマウス用Ｉ／Ｆ４０３と、ディスプレイ５３にクライアント４００の操作画面を示すビデオ信号を出力するディスプレイ用Ｉ／Ｆ４０４とを備えている。
【００３２】
さらに、クライアント４００は、キーボード５１、マウス５２、及びディスプレイ５３を制御する複数のデバイスドライバを含むＯＳ（Operating System）４０５と、サーバ１００の画面データをディスプレイ５３に表示させ、遠隔操作を実行するための遠隔操作用ソフトウエア４０６と、遠隔操作用ソフトウエア４０６に含まれる表示専用領域（これは、サーバの画面データに含まれる表示専用領域に対応する）に位置するマウスカーソルの座標データをサーバ１００に出力しないように遮断するソフトウエア４０７とを備えている。ソフトウエア４０７により実現する機能は、第１取得手段、第２取得手段、検出手段、遮断手段、及び実行手段の一例である。
【００３３】
ＯＳ４０５は、通信Ｉ／Ｆ４０１からサーバ１００の画面データを受信し、ソフトウエア４０７を介して遠隔操作用ソフトウエア４０６に出力する。また、ＯＳ４０５は、キーボード用Ｉ／Ｆ４０２からキーコードを受信し、ソフトウエア４０７を介して遠隔操作用ソフトウエア４０６に出力する。ＯＳ４０５は、マウス用Ｉ／Ｆ４０３から座標データ及びボタンデータを受信し、ソフトウエア４０７に出力する。ソフトウエア４０７は、遠隔操作用ソフトウエア４０６に含まれる表示専用領域に位置するマウスカーソルの座標データ及びボタンデータを遮断して遠隔操作用ソフトウエア４０６に出力せず、表示専用領域以外の操作可能領域に位置するマウスカーソルの座標データ及びボタンデータを遠隔操作用ソフトウエア４０６に出力する。表示専用領域は操作不可能領域として機能する。なお、表示専用領域及び操作可能領域については後述する。
【００３４】
尚、遠隔操作用ソフトウエア４０６は後述するウインドウ４１１を作成（即ち起動）、移動、拡大、縮小及び消去（即ち終了）或いはデータの入出力などを実行するプログラムモジュールを備え、後述するウインドウ４１１が実行する処理は、対応するプログラムモジュールをＣＰＵが実行することにより実現される。ソフトウエア４０７は、後述するウインドウ４１５を作成（即ち起動）、移動、拡大、縮小及び消去（即ち終了）したり、座標データをウインドウ４１１に通知したり、又は座標データをウインドウ４１１に通知することを遮断するプログラムモジュールなどを備え、後述するウインドウ４１５が実行する処理は、対応するプログラムモジュールをＣＰＵが実行することにより実現される。
【００３５】
さらに、ＯＳ４０５は、遠隔操作用ソフトウエア４０６からキーコード並びにマウスカーソルの座標データ及びボタンデータを受信し、通信Ｉ／Ｆ４０１及びＩＰ−ＫＶＭスイッチ２００を介してサーバ１００に出力する。
【００３６】
なお、遠隔操作用ソフトウエア４０６の処理により表示されるサーバ１００の操作画面はクライアント４００の操作画面上に表示されるので、遠隔操作用ソフトウエア４０６が表示するサーバの操作画面の座標系はクライアント４００の操作画面の座標系と異なる。従って、マウスカーソルの座標データがＩＰ−ＫＶＭスイッチ２００と通信される場合には、ＯＳ４０５は、マウスカーソルの座標データをクライアント４００の操作画面の座標系から遠隔操作用ソフトウエア４０６の座標系に適合させる。
【００３７】
図５（Ａ）は、サーバ１００のハードウエア構成を示すブロック図であり、図５（Ｂ）は、クライアント４００のハードウエア構成を示すブロック図である。
【００３８】
サーバ１００は、通信Ｉ／Ｆ１０１と、装置全体を制御するＣＰＵ１２１と、制御プログラムを備えるＲＯＭ１２２と、ワーキングエリアとして機能するＲＡＭ１２３と、デバイスドライバ１０２、マウスクラスドライバ１０３、ＯＳ１０４、及び各種の情報やプログラムを備えるハードディスクドライブ（ＨＤＤ）１２４と、ＰＳ／２用Ｉ／Ｆ１２５と、不図示のＵＳＢ機器と接続するためのＵＳＢ用Ｉ／Ｆ１２６とを備えている。ＣＰＵ１２１は、システムバス１２７を介して、通信Ｉ／Ｆ１０１、ＲＯＭ１２２、ＲＡＭ１２３、ＨＤＤ１２４、ＰＳ／２用Ｉ／Ｆ１２５、及びＵＳＢ用Ｉ／Ｆ１２６に接続されている。
【００３９】
尚、デバイスドライバ１０２、マウスクラスドライバ１０３、又はＯＳ１０４が実行する処理は、ＣＰＵ１２１が、デバイスドライバ１０２、マウスクラスドライバ１０３、又はＯＳ１０４を適宜ＨＤＤ１２４から読み出し実行することで実現される。
【００４０】
クライアント４００は、通信Ｉ／Ｆ４０１と、キーボード用Ｉ／Ｆ４０２と、マウス用Ｉ／Ｆ４０３と、ディスプレイ用Ｉ／Ｆ４０４と、装置全体を制御するＣＰＵ４２１と、制御プログラムを備えるＲＯＭ４２２と、ワーキングエリアとして機能するＲＡＭ４２３と、ＯＳ４０５、遠隔操作用ソフトウエア４０６、ソフトウエア４０７及び各種の情報やプログラムを備えるハードディスクドライブ（ＨＤＤ）４２４と、不図示のＵＳＢ機器と接続するためのＵＳＢ用Ｉ／Ｆ４２５とを備えている。ＣＰＵ４２１は、システムバス４２６を介して、通信Ｉ／Ｆ４０１、キーボード用Ｉ／Ｆ４０２、マウス用Ｉ／Ｆ４０３、ディスプレイ用Ｉ／Ｆ４０４、ＲＯＭ４２２、ＲＡＭ４２３、ＨＤＤ４２４、及びＵＳＢ用Ｉ／Ｆ４２５に接続されている。
【００４１】
尚、ＯＳ４０５、遠隔操作用ソフトウエア４０６及びソフトウエア４０７が実行する処理は、ＣＰＵ１２１が、ＯＳ４０５、遠隔操作用ソフトウエア４０６又はソフトウエア４０７を適宜ＨＤＤ４２４から読み出し実行することで実現される。
【００４２】
図６（Ａ）は、ディスプレイ５３に表示される操作画面４１０の一例を示す図である。図６（Ｂ）は、図６（Ａ）の操作画面４１０を表示するシステムの概念図である。
【００４３】
図６（Ａ）に示すように、ディスプレイ５３に表示される操作画面４１０は、例えば、背景４１２と、遠隔操作用ソフトウエア４０６が実行されているときに表示されるウインドウ４１１とを含む。ソフトウエア４０７が実行されているときに表示されるウインドウ４１５は、透明なウインドウであり、ウインドウ４１１と重なるように配置されている。操作画面４１０の左上端の点Ｕの座標は（０，０）とし、左下端の点Ｖの座標は（Ｘ，Ｙ）とする。
【００４４】
ウインドウ４１１には、サーバ１００から出力されるビデオ信号を表示している。つまり、ウインドウ４１１はサーバ１００の操作画面を表示する。ウインドウ４１１にはマウスカーソル４２０及び４２１が表示される。マウスカーソル４２１は、サーバ１００上で動作するマウスカーソルである。マウスカーソル４２０は、クライアント４００上で動作するマウスカーソルである。以下、マウスカーソル４２１をサーバのマウスカーソルといい、マウスカーソル４２０をクライアントのマウスカーソルという場合がある。また、説明の都合上、マウスカーソル４２１は破線で示され、マウスカーソル４２０は実線で示されている。実際のマウスカーソル４２０及び４２１は、同じ形状であってもよい。
【００４５】
ウインドウ４１１は、表示専用領域４１３と、操作可能領域４１４とを備えている。操作可能領域４１４は図６（Ａ）の破線で囲まれた領域である。表示専用領域４１３は、ウインドウ４１１内の操作可能領域４１４以外の領域である。表示専用領域４１３は、データの表示のみが行われ、マウスカーソル４２１が移動できない（すなわち進入できない）領域である。操作可能領域４１４は、データの表示が行われ、且つマウスカーソル４２１が自由に移動することができる領域である。マウスカーソル４２１は、操作可能領域４１４の内部に位置する。マウスカーソル４２０は、操作画面４１０内を自由に移動することができ、ウインドウ４１１の内部にも、外部にも位置することができる。ウインドウ４１１の左上端の点Ｇの座標は（ｘ１，ｙ１）とし、右下端の点Ｈの座標は（ｘ２，ｙ２）とする。また、ウインドウ４１１における表示専用領域４１３の下、上、左及び右の幅をそれぞれ「ａ」、「ｂ」、「ｃ」、「ｄ」とする。
【００４６】
本実施の形態で使用されるWindows（登録商標）のようなＯＳでは、ウインドウやマウスカーソルなどの全てのオブジェクトに重なり順がある。図６（Ａ）では、オブジェクトの重なり順が分かりにくいため、図６（Ｂ）にウインドウシステムによるオブジェクトの重なり順が示されている。なお、以降ウインドウを表示しているソフトウエアあるいはウインドウシステムが実行する処理を、対応するウインドウが行う処理として説明する。
【００４７】
図６（Ｂ）に示すように、一番下に背景４１２が配置され、背景４１２の上に遠隔操作用ソフトウエア４０６のウインドウ４１１が配置される。さらに、遠隔操作用ソフトウエア４０６のウインドウ４１１の上にソフトウエア４０７により生成されるウインドウ４１５が配置され、ソフトウエア４０７のウインドウ４１５の上にマウスカーソル４２０が配置される。
【００４８】
オブジェクトを管理しているＯＳ４０５では、マウス５２の位置を示す座標を管理し、その管理された位置にマウスカーソル４２０を描画する。そして、ＯＳ４０５は、描画したマウスカーソル４２０の直下にあるソフトウエア４０７のウインドウ４１５に対してマウスカーソル４２０の座標を通知する。そして、マウスカーソル４２０が操作可能領域４１４に位置する場合に、ソフトウエア４０７は、マウスカーソル４２０の座標を遠隔操作用ソフトウエア４０６のウインドウ４１１に通知する。マウスカーソル４２０が表示専用領域４１３に位置する場合に、ソフトウエア４０７は、マウスカーソル４２０の座標を遠隔操作用ソフトウエア４０６から遮断し、遠隔操作用ソフトウエア４０６のウインドウ４１１に通知しない。
【００４９】
ここで、図２（Ｂ）の例では、マウスカーソル１４が、ＩＰ−ＫＶＭ用ソフトウエアのウインドウ１２上に直接配置されている。一方、本実施の形態では、ソフトウエア４０７のウインドウ４１５が、遠隔操作用ソフトウエア４０６のウインドウ４１１とマウスカーソル４２０との間に挿入されている。この配置により、上記のように、ソフトウエア４０７のウインドウ４１５は、遠隔操作用ソフトウエア４０６のウインドウ４１１よりも先にマウスカーソル４２０の座標を受信できる。
【００５０】
ソフトウエア４０７のウインドウ４１５は、常に遠隔操作用ソフトウエア４０６のウインドウ４１１をカバーする大きさで前面に位置し、かつ透明なウインドウにより操作者の目に見えないようにする。遠隔操作用ソフトウエア４０６のウインドウ４１１は、操作者の操作により移動、拡大、縮小、消去（即ち終了）及び作成（即ち起動）が行われるが、ソフトウエア４０７のウインドウ４１５は操作者の操作により作成（即ち起動）のみが行われる。
【００５１】
ウインドウ４１５の作成指示が入力されたとき、ソフトウエア４０７は、遠隔操作用ソフトウエア４０６のウインドウ４１１が存在するか否かを確認する。遠隔操作用ソフトウエア４０６のウインドウ４１１が存在していなければ、ソフトウエア４０７はウインドウ４１５の作成を中止する、即ち、ウインドウ４１５を起動しない。遠隔操作用ソフトウエア４０６のウインドウ４１１が存在する場合は、ソフトウエア４０７は、遠隔操作用ソフトウエア４０６のウインドウ４１１をカバーするように、ウインドウ４１１と同じ大きさで且つウインドウ４１１と同じ位置に、透明なウインドウ４１５を配置する。
【００５２】
ソフトウエア４０７は、ウインドウ４１５が作成された後は、ＯＳ４０５から通知されるマウスカーソル４２０の座標を、そのまま又は加工して遠隔操作用ソフトウエア４０６に通知する、若しくは遠隔操作用ソフトウエア４０６に通知しない処理を選択的に実行する。
【００５３】
ソフトウエア４０７は、マウスカーソル４２０の座標を遠隔操作用ソフトウエア４０６にそのまま通知するか、加工して通知するか、あるいは通知しないかを判断するために、ＯＳ４０５から得られない情報が必要となる。その情報は、表示専用領域４１３と操作可能領域４１４との境界を示す座標情報であり、具体的には、上述した、表示専用領域４１３の下、上、左及び右の幅をそれぞれ示す「ａ」、「ｂ」、「ｃ」及び「ｄ」の情報である。ソフトウエア４０７は、マウスカーソル４２０の座標を遠隔操作用ソフトウエア４０６にそのまま通知するか、加工して通知するか、あるいは通知しないかの判断を行う前に、表示専用領域４１３と操作可能領域４１４との境界を示す座標情報を取得する。表示専用領域４１３と操作可能領域４１４との境界を示す座標情報を取得する方法は、公知の方法でよい。例えば、表示専用領域４１３と操作可能領域４１４との境界を示す座標情報が記憶されたファイルから当該座標情報を読み取って、ソフトウエア４０７の内部パラメータに格納する。 
【００５４】
マウスカーソル４２０の座標を加工して遠隔操作用ソフトウエア４０６に通知することに関しては、図７（Ａ）〜（Ｃ）を参照して説明する。図７（Ａ）は、マウス５２の動きの一例を示す図であり、図７（Ｂ）は、図７（Ａ）のマウス５２の動きに対応する座標データを概略的に示した図である。図７（Ｃ）は、図７（Ａ）に対応するマウスカーソル４２０が表示専用領域４１３と操作可能領域４１４との境界を超える場合の座標データの処理方法を示す図である。
【００５５】
図７（Ａ）に示すように、マウス５２の動きは連続的である。しかし、図７（Ａ）のマウス５２の動きに対応する座標データは周期的に入力されるので、マウスカーソル４２０の動きは図７（Ｂ）に示すように直線の連続となる。そして、図７（Ｃ）に示すように、マウスカーソル４２０が表示専用領域４１３と操作可能領域４１４との境界を超える場合、ソフトウエア４０７のウインドウ４１５はＯＳ４０５から点Ａの座標データを受け取るが、点Ａの座標は操作可能領域４１４内にあるため、ウインドウ４１５は遠隔操作用ソフトウエア４０６のウインドウ４１１に対して点Ａの座標データをそのまま通知する。次に、ソフトウエア４０７のウインドウ４１５はＯＳ４０５から点Ｂの座標データを受け取ると、点Ｂの座標は表示専用領域４１３にあるので、ソフトウエア４０７は、点Ａ及び点Ｂの座標データ並びに表示専用領域４１３と操作可能領域４１４との境界を示す座標情報に基づいて、点Ａと点Ｂとを結ぶ直線と境界との交点である点Ｃの座標を算出し、点Ｃの座標データを遠隔操作用ソフトウエア４０６のウインドウ４１１に通知する。これにより、操作可能領域４１４内のマウスカーソル４２０の座標のみが遠隔操作用ソフトウエア４０６のウインドウ４１１に通知される。
【００５６】
遠隔操作用ソフトウエア４０６は、ソフトウエア４０７から前回通知された座標と今回通知された座標との差分を算出し、その差分を移動距離（相対座標）としてＩＰ−ＫＶＭスイッチ２００に通知する。
【００５７】
遠隔操作用ソフトウエア４０６のウインドウ４１１を移動する場合は、ＯＳ４０５から移動命令と移動先の座標がソフトウエア４０７に通知される。ソフトウエア４０７は、この通知に従ってウインドウ４１５を移動し、ウインドウ４１５を移動した旨を遠隔操作用ソフトウエア４０６に通知する。遠隔操作用ソフトウエア４０６はソフトウエア４０７からの通知に従ってウインドウ４１１を移動するので、ウインドウ４１５及びウインドウ４１１の位置は互いにずれることはない。
【００５８】
遠隔操作用ソフトウエア４０６のウインドウ４１１を拡大又は縮小時は、ウインドウ４１１の移動と同様に、ＯＳ４０５から拡大又は縮小の命令と拡大後又は縮小後の配置座標がソフトウエア４０７に通知される。ソフトウエア４０７は、この通知に従ってウインドウ４１５を拡大又は縮小し、ウインドウ４１５を拡大又は縮小したことを遠隔操作用ソフトウエア４０６に通知する。遠隔操作用ソフトウエア４０６はソフトウエア４０７からの通知に従ってウインドウ４１１を拡大又は縮小する。
【００５９】
遠隔操作用ソフトウエア４０６のウインドウ４１１を消去することは、遠隔操作用ソフトウエア４０６を終了させることである。従って、ソフトウエア４０７は、ＯＳ４０５から遠隔操作用ソフトウエア４０６の終了命令を受信した場合に、ウインドウ４１５を閉じ、自身の動作も終了する。
【００６０】
図８は、ソフトウエア４０７で実行される動作を示すフローチャートである。ここで、図６（Ａ）を参照して、背景４１２の領域、即ちＯＳ４０５のデスクトップ領域を（０，０）−（Ｘ，Ｙ）とし、遠隔操作用ソフトウエア４０６のウインドウ４１１の領域を（ｘ１，ｙ１）−（ｘ２，ｙ２）とし、操作可能領域４１４を（ｘ１＋ｃ，ｙ１＋ｂ）−（ｘ２−ｄ，ｙ２−ａ）とし、ＯＳ４０５から通知されたマウスカーソル４２０の座標を（ｍ，ｎ）とする。
【００６１】
まず、ＯＳ４０５上でソフトウエア４０７の動作が開始されると、ソフトウエア４０７は、新規のウインドウ４１５を生成する為に、ＯＳ４０５との間で必要な初期化処理を実施すると共に、操作可能領域４１４を確定するための表示専用領域４１３と操作可能領域４１４との境界を示す座標情報（「ａ」〜「ｄ」）を外部から取り込む（ステップＳ１）。表示専用領域４１３と操作可能領域４１４との境界を示す座標情報は、例えばファイルから読み込んでもよいし、操作者がユーザインターフェースを介して入力するようにしてもよい。
【００６２】
ソフトウエア４０７は、遠隔操作用ソフトウエア４０６のウインドウ４１１の配置座標（ｘ１，ｙ１）−（ｘ２，ｙ２）をＯＳ４０５から取得し、ウインドウ４１１の配置座標に合わせてウインドウ４１５を配置する（ステップＳ２）。これにより、ウインドウ４１５はウインドウ４１１に重なるように配置される。
【００６３】
また、ソフトウエア４０７は、ステップＳ１で取得された表示専用領域４１３と操作可能領域４１４との境界を示す座標情報と、ステップＳ２で取得されたウインドウ４１１の配置座標から、表示専用領域４１３及び操作可能領域４１４の位置を検出する（ステップＳ３）。具体的には、ソフトウエア４０７は、ウインドウ４１１の配置座標（ｘ１，ｙ１）−（ｘ２，ｙ２）と、表示専用領域４１３と操作可能領域４１４との境界を示す座標情報（「ａ」〜「ｄ」）とから、操作可能領域４１４が（ｘ１＋ｃ，ｙ１＋ｂ）−（ｘ２−ｄ，ｙ２−ａ）であることを検出する。さらに、ソフトウエア４０７は、ウインドウ４１１の配置座標内の操作可能領域４１４以外の領域を表示専用領域４１３とする。
【００６４】
ソフトウエア４０７は、ＯＳ４０５から通知を受信したか否かを判別する（ステップＳ４）。ＯＳ４０５から通知を受信していない場合には（ステップＳ４でＮＯ）、Ｓ４の判別を繰り返す。一方、ＯＳ４０５から通知を受信した場合には（ステップＳ４でＹＥＳ）、当該通知がマウスカーソル４２０の移動に関する通知であるか否かを判別する（ステップＳ５）。ＯＳ４０５から受信した通知がマウスカーソル４２０の移動に関する通知である場合には（ステップＳ５でＹＥＳ）、後述するマウスカーソル４２０の移動に関する処理を実行する（ステップＳ６）。
【００６５】
ＯＳ４０５から受信した通知がマウスカーソル４２０の移動に関する通知でない場合には（ステップＳ５でＮＯ）、後述する他の処理を実行する（ステップＳ７）。ステップＳ６あるいはＳ７の後、ソフトウエア４０７は、動作を継続するか否かを判別する（ステップＳ８）。ここでは、ソフトウエア４０７は遠隔操作用ソフトウエア４０６の終了命令を受信しない限り、動作を継続する。動作を継続する場合には（ステップＳ８でＹＥＳ）、手順はステップＳ４に戻り、動作を継続しない場合には（ステップＳ８でＮＯ）、本処理を終了する。
【００６６】
図９は、図８のステップＳ７の他の処理を示すフローチャートである。
【００６７】
まず、ソフトウエア４０７は、ＯＳ４０５から受信した通知が遠隔操作用ソフトウエア４０６のウインドウ４１１の移動命令であるか否かを判別する（ステップＳ１１）。ＯＳ４０５から受信した通知が遠隔操作用ソフトウエア４０６のウインドウ４１１の移動命令である場合には（ステップＳ１１でＹＥＳ）、ウインドウ４１１の移動命令に付随するウインドウ４１１の移動先の座標に基づいてウインドウ４１５を移動させる（ステップＳ１２）。その後、ソフトウエア４０７は、自身の動作の継続を設定し（ステップＳ１３）、手順は図８のステップＳ８に進む。
【００６８】
ソフトウエア４０７は、ＯＳ４０５から受信した通知が遠隔操作用ソフトウエア４０６のウインドウ４１１の移動命令でない場合には（ステップＳ１１でＮＯ）、ＯＳ４０５から受信した通知が遠隔操作用ソフトウエア４０６のウインドウ４１１の拡大命令であるか否かを判別する（ステップＳ１４）。
【００６９】
ＯＳ４０５から受信した通知が遠隔操作用ソフトウエア４０６のウインドウ４１１の拡大命令である場合には（ステップＳ１４でＹＥＳ）、ソフトウエア４０７は、ウインドウ４１１の拡大命令に付随するウインドウ４１１の拡大後の配置座標に基づいてウインドウ４１５を拡大する（ステップＳ１５）。さらに、ソフトウエア４０７は、ウインドウ４１１の拡大後の配置座標（ｘ１，ｙ１）’−（ｘ２，ｙ２）’と、拡大前の配置座標（ｘ１，ｙ１）−（ｘ２，ｙ２）との比を算出し、その比率で拡大前の操作可能領域４１４を拡大する（ステップＳ１５）。これにより、ウインドウ４１１の拡大後も、ウインドウ４１１と操作可能領域４１４とのサイズ比を、拡大前のサイズ比と一致させることができる。ステップＳ１５の後、手順はステップＳ１３に進む。
【００７０】
ＯＳ４０５から受信した通知が遠隔操作用ソフトウエア４０６のウインドウ４１１の拡大命令でない場合には（ステップＳ１４でＮＯ）、ソフトウエア４０７は、ＯＳ４０５から受信した通知が遠隔操作用ソフトウエア４０６のウインドウ４１１の縮小命令であるか否かを判別する（ステップＳ１６）。
【００７１】
ＯＳ４０５から受信した通知が遠隔操作用ソフトウエア４０６のウインドウ４１１の縮小命令である場合には（ステップＳ１６でＹＥＳ）、ソフトウエア４０７は、ウインドウ４１１の縮小命令に付随するウインドウ４１１の縮小後の配置座標に基づいてウインドウ４１５を縮小する（ステップＳ１７）。さらに、ソフトウエア４０７は、ウインドウ４１１の縮小後の配置座標（ｘ１，ｙ１）”−（ｘ２，ｙ２）”と、縮小前の配置座標（ｘ１，ｙ１）−（ｘ２，ｙ２）との比を算出し、その比率で縮小前の操作可能領域４１４を縮小する（ステップＳ１７）。これにより、ウインドウ４１１の縮小後も、ウインドウ４１１と操作可能領域４１４とのサイズ比を、縮小前のサイズ比と一致させることができる。ステップＳ１７の後、手順はステップＳ１３に進む。
【００７２】
ＯＳ４０５から受信した通知が遠隔操作用ソフトウエア４０６のウインドウ４１１の縮小命令でない場合には（ステップＳ１６でＮＯ）、ソフトウエア４０７は、ＯＳ４０５から受信した通知が遠隔操作用ソフトウエア４０６の終了命令であるか否かを判別する（ステップＳ１８）。ＯＳ４０５から受信した通知が遠隔操作用ソフトウエア４０６の終了命令でない場合には（ステップＳ１８でＮＯ）、ソフトウエア４０７は、ＯＳ４０５から受信した通知に応じた処理を実行し（ステップＳ１９）、手順はステップＳ１３に進む。
【００７３】
ＯＳ４０５から受信した通知が遠隔操作用ソフトウエア４０６の終了命令である場合には（ステップＳ１８でＹＥＳ）、ソフトウエア４０７は、ウインドウ４１５を閉じて終了し（ステップＳ２０）、自身の動作の非継続を設定し（ステップＳ２１）、手順は図８のステップＳ８に進む。
【００７４】
図１０は、図８のステップＳ６のマウスカーソル４２０の移動に関する処理を示すフローチャートである。
【００７５】
まず、ソフトウエア４０７は、ＯＳ４０５から今回受信したマウスカーソル４２０の座標が前回受信したマウスカーソル４２０の座標と異なるか否かを判別する（ステップＳ３１）。ＯＳ４０５から今回受信したマウスカーソル４２０の座標が前回受信したマウスカーソル４２０の座標と同一である場合には（ステップＳ３１でＮＯ）、マウスカーソル４２０の移動処理は不要であるため、ソフトウエア４０７は、自身の動作の継続を設定し（ステップＳ３６）、手順は図８のステップＳ８に進む。
【００７６】
ＯＳ４０５から今回受信したマウスカーソル４２０の座標が前回受信したマウスカーソル４２０の座標と異なる場合には（ステップＳ３１でＹＥＳ）、ソフトウエア４０７は、ＯＳ４０５から今回受信したマウスカーソル４２０の座標が操作可能領域４１４に含まれているか否かを判別する（ステップＳ３２）。
【００７７】
ＯＳ４０５から今回受信したマウスカーソル４２０の座標が操作可能領域４１４に含まれている場合には（ステップＳ３２でＹＥＳ）、ソフトウエア４０７は、ＯＳ４０５から前回受信したマウスカーソル４２０の座標（即ち、現在のマウスカーソル４２０の座標）が操作可能領域４１４に含まれているか否かを判別する（ステップＳ３３）。
【００７８】
ＯＳ４０５から前回受信したマウスカーソル４２０の座標が操作可能領域４１４に含まれている場合には（ステップＳ３３でＹＥＳ）、マウスカーソル４２０は操作可能領域４１４内で移動するので、ソフトウエア４０７は、ＯＳ４０５から今回受信したマウスカーソル４２０の座標を遠隔操作用ソフトウエア４０６にそのまま通知し（ステップＳ３４）、手順はステップＳ３６に進む。
【００７９】
ＯＳ４０５から前回受信したマウスカーソル４２０の座標が操作可能領域４１４に含まれていない場合には（ステップＳ３３でＮＯ）、ソフトウエア４０７は、今回受信したマウスカーソル４２０の座標及び前回受信したマウスカーソル４２０の座標を結ぶ直線と、表示専用領域４１３及び操作可能領域４１４の境界との交点を算出し、その交点の座標を遠隔操作用ソフトウエア４０６に通知し、その後、今回受信したマウスカーソル４２０の座標を遠隔操作用ソフトウエア４０６に通知し（ステップＳ３５）、手順はステップＳ３６に進む。この場合、マウスカーソル４２０は表示専用領域４１３から操作可能領域４１４に移動するので、交点の座標が遠隔操作用ソフトウエア４０６に通知されることで、マウスカーソル４２０が操作可能領域４１４内に進入した時点でマウスカーソル４２１がマウスカーソル４２０と重なる。その後、今回受信したマウスカーソル４２０の座標が遠隔操作用ソフトウエア４０６に通知されることで、マウスカーソル４２１がマウスカーソル４２０の移動に追従する。また、マウスカーソル４２０が操作可能領域４１４外から表示専用領域４１３と操作可能領域４１４との境界に到達するまで、ソフトウエア４０７は、マウスカーソル４２０の座標を遠隔操作用ソフトウエア４０６に通知せず、遮断している（ステップＳ３５）。
【００８０】
ＯＳ４０５から今回受信したマウスカーソル４２０の座標が操作可能領域４１４に含まれていない場合には（ステップＳ３２でＮＯ）、ソフトウエア４０７は、ＯＳ４０５から前回受信したマウスカーソル４２０の座標が操作可能領域４１４に含まれているか否かを判別する（ステップＳ３７）。
【００８１】
ＯＳ４０５から前回受信したマウスカーソル４２０の座標が操作可能領域４１４に含まれている場合には（ステップＳ３７でＹＥＳ）、ソフトウエア４０７は、今回受信したマウスカーソル４２０の座標及び前回受信したマウスカーソル４２０の座標を結ぶ直線と、表示専用領域４１３及び操作可能領域４１４の境界との交点を算出し、その交点の座標を遠隔操作用ソフトウエア４０６に通知し、今回受信したマウスカーソル４２０の座標は遠隔操作用ソフトウエア４０６に通知せず遮断し（ステップＳ３８）、手順はステップＳ３６に進む。この場合、マウスカーソル４２０は操作可能領域４１４から表示専用領域４１３に移動するので、交点の座標が遠隔操作用ソフトウエア４０６に通知されることで、マウスカーソル４２１は境界に到達するまでマウスカーソル４２０の移動に追従し、交点座標で移動が停止する。
【００８２】
ＯＳ４０５から前回受信したマウスカーソル４２０の座標が操作可能領域４１４に含まれていない場合には（ステップＳ３７でＮＯ）、マウスカーソル４２０は表示専用領域４１３内（操作可能領域外）を移動しているので、ソフトウエア４０７は、今回受信したマウスカーソル４２０の座標を遠隔操作用ソフトウエア４０６に通知せずに遮断し（ステップＳ３９）、手順はステップＳ３６に進む。
【００８３】
以上説明したように、ソフトウエア４０７は、表示専用領域４１３と操作可能領域４１４との境界を示す座標情報（「ａ」〜「ｄ」）を外部から取得し（ステップＳ１）、遠隔操作用ソフトウエア４０６のウインドウ４１１の配置座標をＯＳ４０５から取得し、ウインドウ４１１の配置座標に合わせてウインドウ４１５を配置する（ステップＳ２）。そして、ソフトウエア４０７は、ステップＳ１で取得された表示専用領域４１３と操作可能領域４１４との境界を示す座標情報と、ステップＳ２で取得されたウインドウ４１１の配置座標から、表示専用領域４１３及び操作可能領域４１４の位置を検出し（ステップＳ３）、ＯＳ４０５から取得したマウスカーソル４２０の座標が、サーバ１００上で動作するマウスカーソル４２１が進入できない表示専用領域４１３に含まれる場合には、マウスカーソル４２０の座標を遠隔操作用ソフトウエア４０６に通知せず、遮断する（ステップＳ３５、Ｓ３８、Ｓ３９）。よって、サーバ１００上で動作するマウスカーソル４２１とクライアント４００で動作するマウスカーソル４２０とのずれを抑制することができる。
【００８４】
（第２の実施の形態）
第２の実施の形態の通信システムは、第１の実施の形態の図４の通信システムと同様である。
【００８５】
第１の実施の形態では、遠隔操作用ソフトウエア４０６のウインドウ４１１の上にソフトウエア４０７のウインドウ４１５を配置し、ウインドウ４１５がウインドウ４１１よりも先にＯＳ４０５から出力されるマウスカーソル４２０の座標を取得した。第２の実施の形態では、ソフトウエア４０７は、ウインドウ４１５を作成せず、ＯＳ４０５（Windows（登録商標））が提供するメッセージフック機能を利用する。
【００８６】
Windows（登録商標）では、Win32API関数におけるSetWindowHookEx関数のように、対象ウィンドウに送信される通知を横取りする仕組みが用意されている。ソフトウエア４０７は、ＯＳ４０５から遠隔操作用ソフトウエア４０６のウインドウ４１１に出力されるマウスカーソル４２０の座標を横取りする又は検出するフック関数を含む。フック関数は、横取手段の一例である。
【００８７】
図１１は、第２の実施の形態に係るソフトウエア４０７で実行される動作を示すフローチャートである。図１１のフローチャートは、図８のフローチャートと比べて、図８のステップＳ２だけが異なるので、異なる点のみ説明する。
【００８８】
ソフトウエア４０７は、図８のステップＳ２の新規のウインドウ４１５の配置に代えて、フック関数の呼び出しを実行する（ステップＳ２Ａ）。その他の処理は、第１の実施の形態で説明した処理と同様であるので、その説明は省略する。
【００８９】
第２の実施の形態によれば、ウインドウ４１５の代わりに、ソフトウエア４０７に含まれるフック関数が、ＯＳ４０５から遠隔操作用ソフトウエア４０６のウインドウ４１１に出力されるマウスカーソル４２０の座標を横取りするので、第２の実施の形態に係るソフトウエア４０７は、第１の実施の形態に係るソフトウエア４０７と同様の処理を実行できる。結果として、第１の実施の形態と同様の効果を奏することができる。
【００９０】
（第３の実施の形態）
上記第１及び第２の実施の形態では、マウスカーソル４２１とマウスカーソル４２０とのずれを抑制するために、ソフトウエア４０７を利用した。第３の実施の形態では、サーバ１００、ＩＰ−ＫＶＭスイッチ２００及びクライアント４００以外のハードウエアを利用して、マウスカーソル４２１とマウスカーソル４２０とのずれを抑制する。
【００９１】
図１２は、第３の実施の形態に係る遠隔システムの概略構成図である。
【００９２】
図１２の遠隔システム１００１は、図４の遠隔システム１０００と比べて、中継装置５００を備える点で異なる。また、クライアント４００は、ソフトウエア４０７を備えていない。中継装置５００は、サーバ１００とＩＰ−ＫＶＭスイッチ２００との間に通信ケーブル３０を介して接続されている。通信ケーブル３０は、例えば、ＵＳＢ（Universal Serial Bus）ケーブル及びＤＶＩ（Digital Visual Interface）ケーブルである。また、中継装置５００は、通信ケーブル３３を介してネットワーク３００に接続可能である。通信ケーブル３３は、例えばＬＡＮ（Local Area Network）ケーブルである。遠隔システム１００１の他の構成は図４の遠隔システム１０００と同様であるので、その説明は省略する。
【００９３】
図１３は、中継装置５００の概略構成を示すブロック図である。
【００９４】
中継装置５００は、下流側Ｉ／Ｆ（インターフェース）処理部５０１、上流側Ｉ／Ｆ処理部５０２、データ処理部５０３、通信部５０４、入力Ｉ／Ｆ５０５及び記憶部５０６を備えている。下流側Ｉ／Ｆ処理部５０１、上流側Ｉ／Ｆ処理部５０２、データ処理部５０３、通信部５０４、入力Ｉ／Ｆ５０５及び記憶部５０６の機能はマイコンで実現される。データ処理部５０３は、検出手段、第２取得手段、及び遮断手段の一例である。下流側Ｉ／Ｆ処理部５０１、データ処理部５０３、通信部５０４及び入力Ｉ／Ｆ５０５は第１取得手段の一例である。通信部５０４は通信手段の一例である。
【００９５】
下流側Ｉ／Ｆ処理部５０１は、通信ケーブル３０を介してＩＰ−ＫＶＭスイッチ２００に接続され、マウスカーソル４２０の座標データ及びボタンデータを受信し、サーバ１００からのビデオ信号をＩＰ−ＫＶＭスイッチ２００に出力する。下流側Ｉ／Ｆ処理部５０１が受信するマウスカーソル４２０の座標データは、ＩＰ−ＫＶＭスイッチ２００から出力される相対座標であり、サーバ１００の操作画面が持つ解像度に適合する値である。
【００９６】
データ処理部５０３は、下流側Ｉ／Ｆ処理部５０１が受信するマウスカーソル４２０の座標データがサーバ１００の操作画面が持つ解像度に適合する値であるという特徴を利用して、下流側Ｉ／Ｆ処理部５０１から受信した相対座標からサーバ１００の操作画面の座標に変換する。その後、データ処理部５０３は、第１の実施の形態のソフトウエア４０７と同様に、下流側Ｉ／Ｆ処理部５０１から受信した相対座標を上流側Ｉ／Ｆ処理部５０２を介してサーバ１００に通知するか否かを判断する。また、サーバ１００に通知する値は、下流側Ｉ／Ｆ処理部５０１から受信した相対座標でもよいし、その相対座標をサーバ１００の操作画面の座標に変換した値でもよい。
【００９７】
上流側Ｉ／Ｆ処理部５０２は、通信ケーブル３０を介してサーバ１００に接続され、サーバ１００からのビデオ信号を受信し、マウスカーソル４２０の座標データ及びボタンデータをサーバ１００に出力する。上流側Ｉ／Ｆ処理部５０２は、サーバ１００と下流側Ｉ／Ｆ処理部５０１との間の中継処理を行い、下流側Ｉ／Ｆ処理部５０１の各機能をエミュレートする。エミュレートとは、例えば、キーボードがキーボードとして動作し、マウスがマウスとして動作し、ディスプレイがディスプレイとして動作することを意味する。ここでは、下流側Ｉ／Ｆ処理部５０１がキーボードやマウスを備えていないので、上流側Ｉ／Ｆ処理部５０２は、下流側Ｉ／Ｆ処理部５０１から受信したキーコード、マウスカーソルの座標データ及びボタンデータに依存する。上流側Ｉ／Ｆ処理部５０２は、下流側Ｉ／Ｆ処理部５０１に接続されているディスプレイ又は対応するＥＤＩＤ（Extended Display Identification Data）をエミュレートする。
【００９８】
通信部５０４は、ネットワーク３００を介してクライアント４００と通信する。入力Ｉ／Ｆ５０５は、表示専用領域４１３と操作可能領域４１４との境界を示す座標情報（「ａ」〜「ｄ」）及びサーバ１００の操作画面のサイズ情報（即ち、サーバ１００の操作画面が持つ解像度）を記憶する記憶媒体（例えばＵＳＢメモリ）を接続する。記憶部５０６は、取得した座標情報（「ａ」〜「ｄ」）、取得したサーバ１００の操作画面のサイズ情報及び中継装置５００を制御するファームウエアを記憶する。座標情報（「ａ」〜「ｄ」）及びサーバ１００の操作画面のサイズ情報は例えばテキストデータで提供される。
【００９９】
図１４は、下流側Ｉ／Ｆ処理部５０１の概略構成を示すブロック図である。
【０１００】
下流側Ｉ／Ｆ処理部５０１は、ビデオ信号受信回路５１０と、ＯＳＤコントローラ５１１、合成部５１２と、キーボード制御部５１３とを備えている。ビデオ信号受信回路５１０は、上流側Ｉ／Ｆ処理部５０２からビデオ信号を受信し、ＯＳＤコントローラ５１１又はＩＰ−ＫＶＭスイッチ２００に出力する。ＯＳＤコントローラ５１１は、後述するＯＳＤ画面のデータ及びビデオ信号受信回路５１０から受信したビデオ信号を合成部５１２に出力する。合成部５１２は、ＯＳＤ画面のデータ及びビデオ信号受信回路５１０から受信したビデオ信号を合成し、合成されたデータをローカル用のディスプレイ（不図示）に出力する。キーボード制御部５１３は、不図示のローカル用のキーボードの操作によりＯＳＤ画面にデータを入力する。ＯＳＤ画面に入力されたデータは、データ処理部５０３に送信される。ＯＳＤコントローラ５１１は、出力手段の一例である。
【０１０１】
図１５は、ＯＳＤ画面の一例を示す図である。
【０１０２】
不図示のローカル用のキーボードからホットキーの入力がある（例えば「ｃｔｒｌ」キーと「Ｆ１」キーの同時入力）と、ローカル用のディスプレイに図１５のＯＳＤ画面が表示される。この状態で、数字キーを押下すると、当該数字キーに対応する項目の入力ができる。例えば、数字キー「１」を押下すると、表示専用領域４１３と操作可能領域４１４との境界を示す座標情報「ａ」の値を入力できる。尚、図１５の「ｓｉｚｅＸ」及び「ｓｉｚｅＹ」は、サーバ１００の操作画面の水平方向及び垂直方向のサイズ（サーバ１００の操作画面が持つ水平方向及び垂直方向の解像度）をそれぞれ示す。図１５の状態で「Ｒ」キーを押下すると、各項目の値は、中継装置５００の起動時の対応する設定値に復帰する。図１５の状態で「Ｓ」キーを押下すると、各項目の値が中継装置５００の起動時の対応する設定値に上書きされて保存される。
【０１０３】
図１６は、中継装置５００で実行される動作を示すフローチャートである。
【０１０４】
まず、中継装置５００が動作を開始すると、データ処理部５０３は必要な初期化処理を実施すると共に、表示専用領域４１３と操作可能領域４１４との境界を示す座標情報（「ａ」〜「ｄ」）及びサーバ１００の操作画面のサイズ情報を取り込む（ステップＳ４１）。境界を示す座標情報及びサーバ１００の操作画面のサイズ情報を取り込む方法は、（１）入力Ｉ／Ｆ５０５に接続された、これらの情報が記憶された記憶媒体から取り込む、（２）通信部５０４がクライアント４００と通信し、クライアント４００からこれらの情報を取り込む、又は（３）操作者がＯＳＤ画面にこれらの情報を入力し、入力されたこれらの情報を取り込むである。取り込まれた境界を示す座標情報及びサーバ１００の操作画面のサイズ情報は記憶部５０６に記憶される。
【０１０５】
また、データ処理部５０３は、ステップＳ１で取得された表示専用領域４１３と操作可能領域４１４との境界を示す座標情報及びサーバ１００の操作画面のサイズ情報から、表示専用領域４１３及び操作可能領域４１４の位置を検出する（ステップＳ４２）。データ処理部５０３は、ＩＰ−ＫＶＭスイッチ２００から通知を受信したか否かを判別する（ステップＳ４３）。ＩＰ−ＫＶＭスイッチ２００から通知を受信していない場合には（ステップＳ４３でＮＯ）、当該判別を繰り返す。一方、ＩＰ−ＫＶＭスイッチ２００から通知を受信した場合には（ステップＳ４３でＹＥＳ）、当該通知がマウスカーソル４２０の移動に関する通知であるか否かを判別する（ステップＳ４４）。
【０１０６】
ＩＰ−ＫＶＭスイッチ２００から受信した通知がマウスカーソル４２０の移動に関する通知である場合には（ステップＳ４４でＹＥＳ）、データ処理部５０３は後述するマウスカーソル４２０の移動に関する処理を実行する（ステップＳ４５）。ＯＳ４０５から受信した通知がマウスカーソル４２０の移動に関する通知でない場合には（ステップＳ４５でＮＯ）、データ処理部５０３は後述する他の処理を実行する（ステップＳ４６）。ステップＳ４５、Ｓ４６の後、データ処理部５０３は、動作を継続するか否かを判別する（ステップＳ４７）。動作を継続する場合には（ステップＳ４７でＹＥＳ）、手順はステップＳ４３に戻り、動作を継続しない場合には（ステップＳ８でＮＯ）、ステップＳ４１に戻る。
【０１０７】
遠隔操作用ソフトウエア４０６では、サーバ１００のマウスカーソル４２１とクライアント４００のマウスカーソル４２０の位置とは常に一致していることを必須条件としている。遠隔操作用ソフトウエア４０６のウインドウ４１１の動作開始時点では、この二つのマウスカーソルの位置が一致していない可能性もある。遠隔操作用ソフトウエア４０６のウインドウ４１１の動作開始時に、マウスカーソル４２０及び４２１の位置を一致させるためにクライアント４００は一定の座標を出力する。
【０１０８】
図１７は、マウスカーソル４２０及び４２１の位置を一致させる処理を説明する図である。
【０１０９】
まず、遠隔操作用ソフトウエア４０６は、点Ｌにあるマウスカーソル４２１を点Ｍ（操作可能領域４１４の左上端）に移動させるために、マウスカーソル４２１の移動量として、マウスカーソル４２１の座標に加算される相対座標Ｚ１をＩＰ−ＫＶＭスイッチ２００を介してサーバ１００に通知する。マウスカーソル４２１を点Ｍに移動させるためには、通知する相対座標値を累積したときに操作可能領域４１４の大きさを超える移動量となるようにする。次に、遠隔操作用ソフトウエア４０６は、マウスカーソル４２１を点Ｍからマウスカーソル４２０が位置する点Ｎに移動させるために、点Ｍの座標と点Ｎの座標との差分を求め、求めた差分に相当する移動量として、マウスカーソル４２１の座標に加算される相対座標Ｚ２をＩＰ−ＫＶＭスイッチ２００を介してサーバ１００に通知する。これによって、マウスカーソル４２１とマウスカーソル４２０とを重ね合わせることができる。
【０１１０】
点Ｌから点Ｍにマウスカーソル４２１を移動させるための移動量は、点Ｍから点Ｌにマウスカーソル４２１を移動させるための移動量よりも非常に大きくされており、マウスカーソル４２１を点Ｌから点Ｍに確実に移動させることができる移動量又は移動量の送出回数がサーバ１００に通知される。また、サーバ１００の加速／加速度処理やＩＰ−ＫＶＭスイッチ２００の特性などの影響を受けずにマウスカーソル４２１を点Ｍから点Ｎに確実に移動させるために、マウスカーソル４２１を点Ｍから点Ｎに移動させる際は、サーバ１００によって加速されない大きさの移動量又は移動量の送出回数がサーバ１００に通知される。
【０１１１】
中継装置５００のデータ処理部５０３は、遠隔操作用ソフトウエア４０６のマウスカーソル４２０及び４２１の位置合わせのための相対座標の出力を監視して、マウスカーソル４２０及び４２１の座標を特定する。具体的には、データ処理部５０３は、表示専用領域４１３と操作可能領域４１４との境界を示す座標情報及びサーバ１００の操作画面のサイズ情報から点Ｍの座標を算出する。そして、データ処理部５０３は、点Ｍの座標から相対座標Ｚ２を加算することにより一致したマウスカーソル４２０及び４２１の位置（すなわち点Ｎ）の座標を特定することができる。
【０１１２】
ここで、点Ｍをマウスカーソル４２０及び４２１の位置を特定するための基準点とする。点Ｍは、操作可能領域４１４の左上端としたが、本実施の形態では、基準点である点Ｍは、操作可能領域４１４の左上端に限定するものではない。例えば、基準点は、操作可能領域４１４の左下端、右下端、右上端、又は操作可能領域４１４の中心のいずれかであってもよい。
【０１１３】
図１８は、図１６のステップＳ４６の他の処理を示すフローチャートである。
【０１１４】
まず、データ処理部５０３は、受信した通知が表示専用領域４１３と操作可能領域４１４との境界を示す座標情報（「ａ」〜「ｄ」）であるか否かを判別する（ステップＳ５１）。受信した通知が表示専用領域４１３と操作可能領域４１４との境界を示す座標情報である場合には（ステップＳ５１でＹＥＳ）、データ処理部５０３は、記憶部５０６に保存された境界を示す座標情報を更新し（ステップＳ５２）、中継装置５００の動作の継続を設定し（ステップＳ５３）、手順は図１５のステップＳ４７に進む。
【０１１５】
データ処理部５０３は、受信した通知が表示専用領域４１３と操作可能領域４１４との境界を示す座標情報でない場合には（ステップＳ５１でＮＯ）、受信した通知がマウスカーソル４２０及び４２１の位置合わせのための命令であるか否かを判別する（ステップＳ５４）。ＩＰ−ＫＶＭスイッチ２００から受信した通知がマウスカーソル４２０及び４２１の位置合わせのための命令である場合には（ステップＳ５４でＹＥＳ）、データ処理部５０３は、マウスカーソル４２０及び４２１の位置合わせのための相対座標をサーバ１００に出力し、マウスカーソル４２１をマウスカーソル４２０の位置に移動させる（ステップＳ５５）。手順はステップＳ５３に進む。
【０１１６】
ＩＰ−ＫＶＭスイッチ２００から受信した通知がマウスカーソル４２０及び４２１の位置合わせのための命令でない場合には（ステップＳ５４でＮＯ）、データ処理部５０３は、受信した通知がリセット命令であるか否かを判別する（ステップＳ５６）。受信した通知がリセット命令である場合には（ステップＳ５６でＹＥＳ）、データ処理部５０３は、中継装置５００の動作の非継続を設定し（ステップＳ５７）、手順は図１５のステップＳ４７に進む。受信した通知がリセット命令でない場合には（ステップＳ５６でＮＯ）、データ処理部５０３は、受信した通知がファームウエアの書き換え命令であるか否かを判別する（ステップＳ５８）。
【０１１７】
受信した通知がファームウエアの書き換え命令である場合には（ステップＳ５８でＹＥＳ）、データ処理部５０３は、記憶部５０６に保存されたファームウエアを更新し（ステップＳ５９）、手順はステップＳ５７に進む。受信した通知がファームウエアの書き換え命令でない場合には（ステップＳ５８でＮＯ）、データ処理部５０３は、受信した通知に応じた処理を実行し（ステップＳ６０）、手順はステップＳ５７に進む。
【０１１８】
図１９は、図１６のステップＳ４５のマウスカーソル４２０の移動に関する処理を示すフローチャートである。ここでは、すでにマウスカーソル４２０及び４２１の位置合わせ（図１８のステップＳ５５）が終了しているものとする。従って、マウスカーソル４２０の位置はマウスカーソル４２１の位置と一致し、マウスカーソル４２０の移動量はマウスカーソル４２１の移動量と一致する。
【０１１９】
まず、ＩＰ−ＫＶＭスイッチ２００からマウスカーソル４２０の相対座標（即ち、マウスカーソル４２０の移動量）を受信すると、データ処理部５０３は、前回のマウスカーソル４２０の座標に受信したマウスカーソル４２０の相対座標を加算し、その結果を今回のマウスカーソル４２０の座標とする（ステップＳ６１）。
【０１２０】
データ処理部５０３は、今回のマウスカーソル４２０の座標が前回のマウスカーソル４２０の座標と異なるか否かを判別する（ステップＳ６２）。今回のマウスカーソル４２０の座標が前回のマウスカーソル４２０の座標と同一である場合には（ステップＳ６２でＮＯ）、データ処理部５０３は、動作の継続を設定し（ステップＳ６７）、手順は図１６のステップＳ４７に進む。今回のマウスカーソル４２０の座標が前回のマウスカーソル４２０の座標と異なる場合には（ステップＳ６２でＹＥＳ）、データ処理部５０３は、今回のマウスカーソル４２０の座標が操作可能領域４１４に含まれているか否かを判別する（ステップＳ６３）。
【０１２１】
今回のマウスカーソル４２０の座標が操作可能領域４１４に含まれている場合には（ステップＳ６３でＹＥＳ）、データ処理部５０３は、前回のマウスカーソル４２０の座標（即ち、現在のマウスカーソル４２０の座標）が操作可能領域４１４に含まれているか否かを判別する（ステップＳ６４）。前回のマウスカーソル４２０の座標が操作可能領域４１４に含まれている場合には（ステップＳ６４でＹＥＳ）、マウスカーソル４２０は操作可能領域４１４内で移動するので、データ処理部５０３は、今回のマウスカーソル４２０の座標をサーバ１００にそのまま通知し（ステップＳ６５）、手順はステップＳ６７に進む。
【０１２２】
前回のマウスカーソル４２０の座標が操作可能領域４１４に含まれていない場合には（ステップＳ６４でＮＯ）、データ処理部５０３は、今回のマウスカーソル４２０の座標及び前回のマウスカーソル４２０の座標を結ぶ直線と、表示専用領域４１３及び操作可能領域４１４の境界との交点を算出し、その交点の座標をサーバ１００に通知し、その後、今回のマウスカーソル４２０の座標をサーバ１００に通知し（ステップＳ６６）、手順はステップＳ６７に進む。この場合、マウスカーソル４２０は表示専用領域４１３から操作可能領域４１４に移動するので、交点の座標がサーバ１００に通知されることで、マウスカーソル４２０が操作可能領域４１４内に進入した時点でマウスカーソル４２１がマウスカーソル４２０と重なる。その後、今回のマウスカーソル４２０の座標がサーバ１００に通知されることで、マウスカーソル４２１がマウスカーソル４２０の移動に追従して移動する。また、マウスカーソル４２０が操作可能領域４１４の外から表示専用領域４１３と操作可能領域４１４との境界に到達するまで、データ処理部５０３は、マウスカーソル４２０の座標をサーバ１００に通知せず、遮断している（ステップＳ６６）。
【０１２３】
今回のマウスカーソル４２０の座標が操作可能領域４１４に含まれていない場合には（ステップＳ６３でＮＯ）、データ処理部５０３は、前回のマウスカーソル４２０の座標が操作可能領域４１４に含まれているか否かを判別する（ステップＳ６８）。前回のマウスカーソル４２０の座標が操作可能領域４１４に含まれている場合には（ステップＳ６８でＹＥＳ）、データ処理部５０３は、今回のマウスカーソル４２０の座標及び前回のマウスカーソル４２０の座標を結ぶ直線と、表示専用領域４１３及び操作可能領域４１４の境界との交点を算出し、その交点の座標をサーバ１００に通知し、今回のマウスカーソル４２０の座標はサーバ１００に通知せず遮断し（ステップＳ６９）、手順はステップＳ６７に進む。この場合、マウスカーソル４２０は操作可能領域４１４から表示専用領域４１３（操作可能領域４１４外）に移動するので、交点の座標がサーバ１００に通知されることで、マウスカーソル４２１は境界に到達するまでマウスカーソル４２０の移動に追従し、境界に到達すると移動を停止する。
【０１２４】
前回のマウスカーソル４２０の座標が操作可能領域４１４に含まれていない場合には（ステップＳ６８でＮＯ）、マウスカーソル４２０は表示専用領域４１３内（操作可能領域４１４外）を移動しているので、データ処理部５０３は、今回のマウスカーソル４２０の座標をサーバ１００に通知せず、遮断し（ステップＳ７０）、手順はステップＳ６７に進む。
【０１２５】
第３の実施の形態によれば、クライアント４００にソフトウエア４０７を追加することなく、即ち、クライアント４００に新たな負担を掛けずに、サーバ１００上で動作するマウスカーソル４２１とクライアント４００で動作するマウスカーソル４２０とのずれを抑制することができる。
【０１２６】
中継装置５００の機能を実現するためのソフトウェアのプログラムが記録されている記録媒体を、中継装置５００に供給し、中継装置５００に含まれるマイコンが記憶媒体に格納されたプログラムを読み出し実行することによっても、上記実施の形態と同様の効果を奏する。プログラムを供給するための記憶媒体としては、例えば、ＣＤ−ＲＯＭ、ＤＶＤ、又はＳＤカードなどがある。さらに、中継装置５００の機能を実現するためのソフトウェアのプログラムを、中継装置５００に供給し、中継装置５００に含まれるマイコンが当該プログラムを読み出し実行することによっても、第３の実施の形態と同様の効果を奏する。
【０１２７】
尚、本発明は、上述した実施の形態に限定されるものではなく、その要旨を逸脱しない範囲内で種々変形して実施することが可能である。
【符号の説明】
【０１２８】
１００  サーバ
２００  ＩＰ−ＫＶＭスイッチ
４００  クライアント
４０５  ＯＳ
４０６  遠隔操作用ソフトウエア
４０７  ソフトウエア
５００  中継装置
５０１  下流側Ｉ／Ｆ処理部
５０２  上流側Ｉ／Ｆ処理部
５０３  データ処理部
５０４  通信部
５０５  入力Ｉ／Ｆ
５０６  記憶部
【図１】
2015210714.tif 000003
【図２】
2015210714.tif 000004
【図３】
2015210714.tif 000005
【図４】
2015210714.tif 000006
【図５】
2015210714.tif 000007
【図６】
2015210714.tif 000008
【図７】
2015210714.tif 000009
【図８】
2015210714.tif 000010
【図９】
2015210714.tif 000011
【図１０】
2015210714.tif 000012
【図１１】
2015210714.tif 000013
【図１２】
2015210714.tif 000014
【図１３】
2015210714.tif 000015
【図１４】
2015210714.tif 000016
【図１５】
2015210714.tif 000017
【図１６】
2015210714.tif 000018
【図１７】
2015210714.tif 000019
【図１８】
2015210714.tif 000020
【図１９】
2015210714.tif 000021