JP6280435B2 - プログラム、中継装置及び情報処理装置 - Google Patents

プログラム、中継装置及び情報処理装置 Download PDF

Info

Publication number
JP6280435B2
JP6280435B2 JP2014092730A JP2014092730A JP6280435B2 JP 6280435 B2 JP6280435 B2 JP 6280435B2 JP 2014092730 A JP2014092730 A JP 2014092730A JP 2014092730 A JP2014092730 A JP 2014092730A JP 6280435 B2 JP6280435 B2 JP 6280435B2
Authority
JP
Japan
Prior art keywords
mouse cursor
coordinates
window
server
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014092730A
Other languages
English (en)
Other versions
JP2015210714A (ja
Inventor
尚幸 長尾
尚幸 長尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Component Ltd
Original Assignee
Fujitsu Component Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Component Ltd filed Critical Fujitsu Component Ltd
Priority to JP2014092730A priority Critical patent/JP6280435B2/ja
Priority to EP15163309.6A priority patent/EP2940558B1/en
Priority to US14/686,363 priority patent/US10275112B2/en
Priority to CN201510205511.1A priority patent/CN105045417B/zh
Publication of JP2015210714A publication Critical patent/JP2015210714A/ja
Application granted granted Critical
Publication of JP6280435B2 publication Critical patent/JP6280435B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/08Cursor circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/24Keyboard-Video-Mouse [KVM] switch

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、プログラム、中継装置及び情報処理装置に関する。
従来より、IP−KVM(K:キーボード、V:ビデオ、M:マウス)スイッチを介してサーバに接続されるクライアントが知られている(例えば、特許文献1参照)。サーバは、クライアントから送信されるマウスカーソルの移動量を増加させることがあるので(即ちマウスカーソルが加速される)、クライアントからサーバに送信された移動量がサーバによって増加されることを防ぐため、クライアントからIP−KVMスイッチに送信される移動量を予め調整する。
また、従来より、遠隔に設けられた複数の端末からネットワークを介して送られる操作信号を受け取って、ローカル側のサーバを操作するIP−KVM装置と、当該ネットワークとIP−KVM装置との間に工程管理装置とを備える遠隔作業工程管理システムが知られている(例えば、特許文献2参照)。このシステムでは、複数の端末が、工程管理装置が管理している作業工程管理情報を参照して、サーバに対する作業順序を管理する。
図1は、一般的なIP−KVMスイッチを備える通信システムの構成図である。図1の通信システムは、サーバ1、IP−KVMスイッチ2、遠隔端末4、ディスプレイ5、キーボード6及びマウス7を備えている。IP−KVMスイッチ2は、遠隔端末4からサーバ1を操作するために設けられている。遠隔端末4は、例えば、コンピュータであり、ディスプレイ5、キーボード6及びマウス7が接続されている。サーバ1はIP−KVMスイッチ2に接続されており、IP−KVMスイッチ2はネットワーク3を介して遠隔端末4に接続されている。遠隔端末4は、OSとしてWindows(登録商標)を利用している。遠隔端末4には、予めIP−KVM用のソフトウエアがインストールされている。IP−KVM用のソフトウエアは、遠隔端末4からIP−KVMスイッチ2を介してサーバ1の操作画面を操作するためのソフトウエアである。
図2(A)は、ディスプレイ5に表示される操作画面10の一例を示す図である。図2(B)は、図2(A)の操作画面10を表示するシステムの概念図である。Windows(登録商標)のようなOSでは、ウインドウやマウスカーソルなどの全てのオブジェクトに重なり順がある。図2(A)では、オブジェクトの重なり順が分かりにくいため、図2(B)にオブジェクトの重なり順が示されている。
図2(B)に示すように、一番下に背景11が配置され、背景11の上にウインドウ12が配置及び表示され、ウインドウ12の上にマウスカーソル14が配置及び表示される。オブジェクトを管理しているOSでは、マウス7の位置を示す座標を管理し、その管理された位置にマウスカーソル14を描画する。そして、OSは、描画したマウスカーソル14の直下にあるウインドウ12に対してマウスカーソル14の座標を通知する。
図2(A)に示すように、ディスプレイ5に表示される操作画面10は、例えば、背景11と、IP−KVM用のソフトウエアが実行されているときに表示されるウインドウ12とを含む。ウインドウ12は、サーバ1から出力されるビデオ信号を表示している。つまり、ウインドウ12はサーバ1の操作画面を表示する。ウインドウ12にはマウスカーソル13が表示される。マウスカーソル13は、サーバ1上で動作するマウスカーソルである。背景11には、マウスカーソル14が表示されている。このマウスカーソル14は、遠隔端末4上で動作するマウスカーソルである。以下、マウスカーソル13をサーバのマウスカーソルといい、マウスカーソル14を遠隔端末のマウスカーソルという場合がある。また、説明の都合上、マウスカーソル13は破線で示され、マウスカーソル14は実線で示されている。実際のマウスカーソル13,14は、同じ形状であってもよい。
ウインドウ12は、表示専用領域15A、15Bと、操作可能領域16を備えている。表示専用領域15A,15Bはデータの表示のみが行われ、マウスカーソル13が移動することができない領域である。操作可能領域16は、データの表示が行われ、且つマウスカーソル13が移動することができる領域である。マウスカーソル14は、表示専用領域15A、15B及び操作可能領域16に移動することができる。
図2(A)では、マウスカーソル14は、ウインドウ12の外部に位置するので、マウスカーソル14は、マウスカーソル13と重ならない。しかし、マウスカーソル14が、ウインドウ12の内部に位置する場合には、図2(C)に示すように、マウスカーソル13と重なることが要求される。これは、サーバ1の操作画面を操作するためのウインドウ12では、マウスカーソル14がマウスカーソル13と重ならないと、操作性が悪いからである。
遠隔端末4は、マウスカーソル14がウインドウ12内に位置する場合には、その座標データをIP−KVMスイッチ2を介してサーバ1に出力する。サーバ1はこの座標データに基づいてマウスカーソル13を移動させる。その後、遠隔端末4は、マウスカーソル14がウインドウ12内で移動すると、マウスカーソル14の移動量のデータをIP−KVMスイッチ2を介してサーバ1に出力し、サーバ1は遠隔端末4からの移動量のデータに基づいてマウスカーソル13を移動させる。従って、マウスカーソル13はマウスカーソル14の動きに追従する。これにより、ユーザはマウスカーソル14でサーバ1の操作画面を操作することができる。
特開2009−146394号公報
特開2010−231703号公報
ところで、マウスカーソル14がウインドウ12内に位置する場合でも、マウスカーソル14がマウスカーソル13と重ならない場合が生じる。即ち、マウスカーソル14がマウスカーソル13からずれる場合がある。
図3(A)〜(E)はマウスカーソル14がマウスカーソル13とずれる場合の説明図である。ここでは、マウスカーソル14が操作可能領域16から表示専用領域15Aに移動し、再び表示専用領域15Aから操作可能領域16に戻る場合を考える。
図3(A)は、マウスカーソル14及び13が操作可能領域16に位置し、マウスカーソル14はマウスカーソル13に重なっている状態を示す。図3(B)に示すようにユーザがマウスカーソル14を上方に移動させると、マウスカーソル13はマウスカーソル14の移動に追従する。さらに、図3(C)に示すように、ユーザがマウスカーソル14を上方に移動させ、マウスカーソル14が操作可能領域16から表示専用領域15Aに進入すると、マウスカーソル13は、表示専用領域15Aと操作可能領域16との境界で止まり、表示専用領域15Aに進入できない。一方、マウスカーソル14は表示専用領域15A内でも移動できるため、この時点で、マウスカーソル14及び13の位置はずれる。
さらに、図3(D)に示すように、ユーザがマウスカーソル14を上方に移動させると、マウスカーソル13は、マウスカーソル14の移動に追従できず、マウスカーソル14とマウスカーソル13との間のずれが大きくなる。そして、図3(E)に示すように、ユーザがマウスカーソル14を下方に移動させると、マウスカーソル13は、マウスカーソル14の移動に追従し、マウスカーソル14と重なることなく下方に移動する。
このずれの原因は、マウスカーソル14がウインドウ12内で移動する場合、サーバ1は、遠隔端末4からIP−KVMスイッチ2を介して送られてくるマウスカーソル14の移動量のデータを常に受け付けるが、その移動量に応じてマウスカーソル13を移動させる範囲を操作可能領域16に限定していることである。
本発明は、サーバの操作画面に操作可能領域及び操作不可能領域が含まれる場合に、サーバの操作画面を表示するウインドウ内で、サーバのマウスカーソルと自装置のマウスカーソルとのずれを抑制することができるプログラム、中継装置及び情報処理装置を提供することにある。
上記目的を達成するため、明細書に開示されたプログラムは、IP−KVM(K:キーボード、V:ビデオ、M:マウス)スイッチを介してサーバに接続されると共に、当該サーバの操作画面に表示される第1マウスカーソルと自身の操作画面に表示される第2マウスカーソルとを表示して当該サーバの操作画面を遠隔操作するコンピュータを、前記サーバの操作画面内の操作可能領域と操作不可能領域との境界を示す座標情報を取得する第1取得手段、前記第1マウスカーソルを含む前記サーバの操作画面を表示する第1ウインドウの配置座標を前記コンピュータのオペレーティングシステムから取得する第2取得手段、前記第1取得手段で取得された座標情報と、前記第2取得手段で取得された第1ウインドウの配置座標とから、前記操作可能領域及び前記操作不可能領域の位置を検出する検出手段、及び前記コンピュータのオペレーティングシステムから取得した第2マウスカーソルの座標が前記操作不可能領域に含まれる場合には、前記第2マウスカーソルの座標を前記第1ウインドウに通知することを遮断する遮断手段として機能する。
明細書に開示された中継装置は、サーバの操作画面に表示される第1マウスカーソルと自身の操作画面に表示される第2マウスカーソルとを表示して当該サーバの操作画面を遠隔操作するクライアントに接続されるIP−KVM(K:キーボード、V:ビデオ、M:マウス)スイッチとサーバとの間に接続される中継装置であって、前記サーバの操作画面内の操作可能領域と操作不可能領域との境界を示す座標情報及び前記サーバの操作画面のサイズ情報を取得する第1取得手段と、前記第1取得手段で取得された座標情報及びサイズ情報から前記操作可能領域及び前記操作不可能領域の位置を検出する検出手段と、前記クライアントで実行される前記第1マウスカーソル及び前記第2マウスカーソルの位置合わせ処理から前記第2マウスカーソルの座標を取得する第2取得手段と、前記IP−KVMから取得される第2マウスカーソルの相対座標を前記第2マウスカーソルの前回座標に加算することで前記第2マウスカーソルの今回座標を算出し、前記第2マウスカーソルの今回座標が、前記操作不可能領域に含まれる場合には、前記第2マウスカーソルの今回座標を前記サーバに通知することを遮断する遮断手段とを備える。
明細書に開示された情報処理装置は、IP−KVM(K:キーボード、V:ビデオ、M:マウス)スイッチを介してサーバに接続され、当該サーバの操作画面に表示される第1マウスカーソルと自身の操作画面に表示される第2マウスカーソルとを表示して当該サーバの操作画面を遠隔操作する情報処理装置であって、前記サーバの操作画面内の操作可能領域と操作不可能領域との境界を示す座標情報を取得する第1取得手段と、前記第1マウスカーソルが表示される前記サーバの操作画面を表示するソフトウエアが生成する第1ウインドウの配置座標を前記情報処理装置から取得する第2取得手段と、前記第1取得手段で取得された座標情報と、前記第2取得手段で取得された第1ウインドウの配置座標とから、前記操作可能領域及び前記操作不可能領域の位置を検出する検出手段と、前記情報処理装置から取得した第2マウスカーソルの座標が前記操作不可能領域に含まれる場合には、前記第2マウスカーソルの座標を前記第1ウインドウに通知することを遮断する遮断手段とを備える。
本発明によれば、サーバの操作画面に操作可能領域及び操作不可能領域が含まれる場合に、サーバの操作画面を表示するウインドウ内で、サーバのマウスカーソルと自装置のマウスカーソルとのずれを抑制することができる。
一般的なIP−KVMスイッチを備える通信システムの構成図である。 (A)は、ディスプレイに表示される操作画面の一例を示す図である。(B)は、図2(A)の操作画面を表示するシステムの概念図である。(C)は、2つのマウスカーソル13,14が重なる例を示す図である。 (A)〜(E)はマウスカーソル14がマウスカーソル13とずれる場合の説明図である。 第1の実施の形態に係る遠隔システムの概略構成図である。 (A)は、サーバのハードウエア構成を示すブロック図である。(B)は、クライアントのハードウエア構成を示すブロック図である。 (A)は、ディスプレイに表示される操作画面の一例を示す図である。(B)は、図6(A)の操作画面を表示するシステムの概念図である。 (A)は、マウスの動きの一例を示す図である。(B)は、図7(A)のマウスの動きに対応する座標データを概略的に示した図である。(C)は、(A)に対応するマウスカーソルが表示専用領域と操作可能領域との境界を超える場合の座標データの処理方法を示す図である。 ソフトウエアで実行される動作を示すフローチャートである。 図8のステップS7の他の処理を示すフローチャートである。 図8のステップS6のマウスカーソル420の移動に関する処理を示すフローチャートである。 第2の実施の形態に係るソフトウエアで実行される動作を示すフローチャートである。 第3の実施の形態に係る遠隔システムの概略構成図である。 中継装置の概略構成を示すブロック図である。 下流側I/F処理部の概略構成を示すブロック図である。 OSD画面の一例を示す図である。 中継装置で実行される動作を示すフローチャートである。 2つのマウスカーソルの位置を一致させる処理を説明する図である。 図16のステップS46の他の処理を示すフローチャートである。 図16のステップS45のマウスカーソルの移動に関する処理を示すフローチャートである。
以下、図面を参照しながら本発明の実施の形態を説明する。
(第1の実施の形態)
図4は、第1の実施の形態に係る遠隔システムの概略構成図である。
図4において、遠隔システム1000は、サーバ100、IP−KVM(K:キーボード、V:ビデオ、M:マウス)スイッチ200及びクライアント400を備えている。IP−KVMスイッチ200は、クライアント400側からサーバ100の操作画面を遠隔操作するための装置である。サーバ100は、通信ケーブル30を介してIP−KVMスイッチ200に接続されている。クライアント400は、ネットワーク300及び通信ケーブル31,32を介してIP−KVMスイッチ200に接続されている。通信ケーブル30は、例えば、USB(Universal Serial Bus)ケーブル及びDVI(Digital Visual Interface)ケーブルである。通信ケーブル31、32は、例えばLAN(Local Area Network)ケーブルである。図4においては、遠隔システム1000は、サーバ100及びクライアント400を備えているが、複数のサーバ及び複数のクライアントを備えていてもよい。
サーバ100は、通信ケーブル30が接続される通信インターフェース(I/F)101と、IP−KVMスイッチ200から受信したパケットから、マウスカーソルの座標(例えば相対座標で示される)を示す座標データ、及びマウスのボタンが押下されているか否かを示すボタンデータを抽出し、それらをマウスクラスドライバ103に出力すると共に、マウスクラスドライバ103が出力する座標データ及びボタンデータを割り込み取得するデバイスドライバ102と、デバイスドライバ102から取得した座標データに加速度/速度処理によるカーソルの移動量を追加するマウスクラスドライバ103と、デバイスドライバ102から受信した座標量データに基づいてマウスカーソルの移動を実行するオペレーティング・システム(OS)104とを備えている。OS104は、Windows(登録商標)、UNIX(登録商標)、又はMAC OSなどであるが、本実施の形態では、Windows(登録商標)を利用する。
加速度/速度処理とは、サーバ100が、IP−KVMスイッチ200を介してクライアント400から受信した、相対座標で示されるマウスカーソルの座標に対して、マウスの移動速度又移動加速度に基づくマウスカーソルの移動量を加算する処理である。
尚、マウスクラスドライバ103の有効及び無効は、サーバ100のOS104の設定で切り替えることができる。マウスクラスドライバ103が有効である場合には、上述した加速度/速度処理が実行される。マウスクラスドライバ103が無効である場合には、加速度/速度処理は実行されない。マウスクラスドライバ103が無効である場合、デバイスドライバ102はカーソルの座標データ及びボタンデータを直接OS104に送信する。
IP−KVMスイッチ200は、通信ケーブル30を介してサーバ100から操作画面を示すビデオ信号(以下、このビデオ信号をサーバ100の画面データという)を受信すると共に、座標データ及びボタンデータをサーバ100に送信する通信I/F201と、座標データ及びボタンデータ並びにキーボード51からのキーコードをクライアント400から受信すると共にサーバ100からの画面データをクライアント400に送信する通信I/F202と、各種の処理を実行すると共に通信I/F201,202を含む装置全体を制御する制御部203と、各種データを記憶するメモリ204とを備えている。制御部203はマイコンで構成され、メモリ204はハードディスクドライブ又は不揮発性のメモリで構成されている。尚、通信I/F201及び通信I/F202の個数は、1つに限定されるものではなく、複数あってもよい。
クライアント400は、マウス52の座標データ及びボタンデータ並びにキーボード51からのキーコードを、ネットワーク300を介してIP−KVMスイッチ200に送信すると共に、サーバ100の画面データをネットワーク300を介してIP−KVMスイッチ200から受信する通信I/F401と、キーボード51からのキーコードを受信するキーボード用I/F402と、マウス52からの座標データ及びボタンデータを受信するマウス用I/F403と、ディスプレイ53にクライアント400の操作画面を示すビデオ信号を出力するディスプレイ用I/F404とを備えている。
さらに、クライアント400は、キーボード51、マウス52、及びディスプレイ53を制御する複数のデバイスドライバを含むOS(Operating System)405と、サーバ100の画面データをディスプレイ53に表示させ、遠隔操作を実行するための遠隔操作用ソフトウエア406と、遠隔操作用ソフトウエア406に含まれる表示専用領域(これは、サーバの画面データに含まれる表示専用領域に対応する)に位置するマウスカーソルの座標データをサーバ100に出力しないように遮断するソフトウエア407とを備えている。ソフトウエア407により実現する機能は、第1取得手段、第2取得手段、検出手段、遮断手段、及び実行手段の一例である。
OS405は、通信I/F401からサーバ100の画面データを受信し、ソフトウエア407を介して遠隔操作用ソフトウエア406に出力する。また、OS405は、キーボード用I/F402からキーコードを受信し、ソフトウエア407を介して遠隔操作用ソフトウエア406に出力する。OS405は、マウス用I/F403から座標データ及びボタンデータを受信し、ソフトウエア407に出力する。ソフトウエア407は、遠隔操作用ソフトウエア406に含まれる表示専用領域に位置するマウスカーソルの座標データ及びボタンデータを遮断して遠隔操作用ソフトウエア406に出力せず、表示専用領域以外の操作可能領域に位置するマウスカーソルの座標データ及びボタンデータを遠隔操作用ソフトウエア406に出力する。表示専用領域は操作不可能領域として機能する。なお、表示専用領域及び操作可能領域については後述する。
尚、遠隔操作用ソフトウエア406は後述するウインドウ411を作成(即ち起動)、移動、拡大、縮小及び消去(即ち終了)或いはデータの入出力などを実行するプログラムモジュールを備え、後述するウインドウ411が実行する処理は、対応するプログラムモジュールをCPUが実行することにより実現される。ソフトウエア407は、後述するウインドウ415を作成(即ち起動)、移動、拡大、縮小及び消去(即ち終了)したり、座標データをウインドウ411に通知したり、又は座標データをウインドウ411に通知することを遮断するプログラムモジュールなどを備え、後述するウインドウ415が実行する処理は、対応するプログラムモジュールをCPUが実行することにより実現される。
さらに、OS405は、遠隔操作用ソフトウエア406からキーコード並びにマウスカーソルの座標データ及びボタンデータを受信し、通信I/F401及びIP−KVMスイッチ200を介してサーバ100に出力する。
なお、遠隔操作用ソフトウエア406の処理により表示されるサーバ100の操作画面はクライアント400の操作画面上に表示されるので、遠隔操作用ソフトウエア406が表示するサーバの操作画面の座標系はクライアント400の操作画面の座標系と異なる。従って、マウスカーソルの座標データがIP−KVMスイッチ200と通信される場合には、OS405は、マウスカーソルの座標データをクライアント400の操作画面の座標系から遠隔操作用ソフトウエア406の座標系に適合させる。
図5(A)は、サーバ100のハードウエア構成を示すブロック図であり、図5(B)は、クライアント400のハードウエア構成を示すブロック図である。
サーバ100は、通信I/F101と、装置全体を制御するCPU121と、制御プログラムを備えるROM122と、ワーキングエリアとして機能するRAM123と、デバイスドライバ102、マウスクラスドライバ103、OS104、及び各種の情報やプログラムを備えるハードディスクドライブ(HDD)124と、PS/2用I/F125と、不図示のUSB機器と接続するためのUSB用I/F126とを備えている。CPU121は、システムバス127を介して、通信I/F101、ROM122、RAM123、HDD124、PS/2用I/F125、及びUSB用I/F126に接続されている。
尚、デバイスドライバ102、マウスクラスドライバ103、又はOS104が実行する処理は、CPU121が、デバイスドライバ102、マウスクラスドライバ103、又はOS104を適宜HDD124から読み出し実行することで実現される。
クライアント400は、通信I/F401と、キーボード用I/F402と、マウス用I/F403と、ディスプレイ用I/F404と、装置全体を制御するCPU421と、制御プログラムを備えるROM422と、ワーキングエリアとして機能するRAM423と、OS405、遠隔操作用ソフトウエア406、ソフトウエア407及び各種の情報やプログラムを備えるハードディスクドライブ(HDD)424と、不図示のUSB機器と接続するためのUSB用I/F425とを備えている。CPU421は、システムバス426を介して、通信I/F401、キーボード用I/F402、マウス用I/F403、ディスプレイ用I/F404、ROM422、RAM423、HDD424、及びUSB用I/F425に接続されている。
尚、OS405、遠隔操作用ソフトウエア406及びソフトウエア407が実行する処理は、CPU121が、OS405、遠隔操作用ソフトウエア406又はソフトウエア407を適宜HDD424から読み出し実行することで実現される。
図6(A)は、ディスプレイ53に表示される操作画面410の一例を示す図である。図6(B)は、図6(A)の操作画面410を表示するシステムの概念図である。
図6(A)に示すように、ディスプレイ53に表示される操作画面410は、例えば、背景412と、遠隔操作用ソフトウエア406が実行されているときに表示されるウインドウ411とを含む。ソフトウエア407が実行されているときに表示されるウインドウ415は、透明なウインドウであり、ウインドウ411と重なるように配置されている。操作画面410の左上端の点Uの座標は(0,0)とし、左下端の点Vの座標は(X,Y)とする。
ウインドウ411には、サーバ100から出力されるビデオ信号を表示している。つまり、ウインドウ411はサーバ100の操作画面を表示する。ウインドウ411にはマウスカーソル420及び421が表示される。マウスカーソル421は、サーバ100上で動作するマウスカーソルである。マウスカーソル420は、クライアント400上で動作するマウスカーソルである。以下、マウスカーソル421をサーバのマウスカーソルといい、マウスカーソル420をクライアントのマウスカーソルという場合がある。また、説明の都合上、マウスカーソル421は破線で示され、マウスカーソル420は実線で示されている。実際のマウスカーソル420及び421は、同じ形状であってもよい。
ウインドウ411は、表示専用領域413と、操作可能領域414とを備えている。操作可能領域414は図6(A)の破線で囲まれた領域である。表示専用領域413は、ウインドウ411内の操作可能領域414以外の領域である。表示専用領域413は、データの表示のみが行われ、マウスカーソル421が移動できない(すなわち進入できない)領域である。操作可能領域414は、データの表示が行われ、且つマウスカーソル421が自由に移動することができる領域である。マウスカーソル421は、操作可能領域414の内部に位置する。マウスカーソル420は、操作画面410内を自由に移動することができ、ウインドウ411の内部にも、外部にも位置することができる。ウインドウ411の左上端の点Gの座標は(x1,y1)とし、右下端の点Hの座標は(x2,y2)とする。また、ウインドウ411における表示専用領域413の下、上、左及び右の幅をそれぞれ「a」、「b」、「c」、「d」とする。
本実施の形態で使用されるWindows(登録商標)のようなOSでは、ウインドウやマウスカーソルなどの全てのオブジェクトに重なり順がある。図6(A)では、オブジェクトの重なり順が分かりにくいため、図6(B)にウインドウシステムによるオブジェクトの重なり順が示されている。なお、以降ウインドウを表示しているソフトウエアあるいはウインドウシステムが実行する処理を、対応するウインドウが行う処理として説明する。
図6(B)に示すように、一番下に背景412が配置され、背景412の上に遠隔操作用ソフトウエア406のウインドウ411が配置される。さらに、遠隔操作用ソフトウエア406のウインドウ411の上にソフトウエア407により生成されるウインドウ415が配置され、ソフトウエア407のウインドウ415の上にマウスカーソル420が配置される。
オブジェクトを管理しているOS405では、マウス52の位置を示す座標を管理し、その管理された位置にマウスカーソル420を描画する。そして、OS405は、描画したマウスカーソル420の直下にあるソフトウエア407のウインドウ415に対してマウスカーソル420の座標を通知する。そして、マウスカーソル420が操作可能領域414に位置する場合に、ソフトウエア407は、マウスカーソル420の座標を遠隔操作用ソフトウエア406のウインドウ411に通知する。マウスカーソル420が表示専用領域413に位置する場合に、ソフトウエア407は、マウスカーソル420の座標を遠隔操作用ソフトウエア406から遮断し、遠隔操作用ソフトウエア406のウインドウ411に通知しない。
ここで、図2(B)の例では、マウスカーソル14が、IP−KVM用ソフトウエアのウインドウ12上に直接配置されている。一方、本実施の形態では、ソフトウエア407のウインドウ415が、遠隔操作用ソフトウエア406のウインドウ411とマウスカーソル420との間に挿入されている。この配置により、上記のように、ソフトウエア407のウインドウ415は、遠隔操作用ソフトウエア406のウインドウ411よりも先にマウスカーソル420の座標を受信できる。
ソフトウエア407のウインドウ415は、常に遠隔操作用ソフトウエア406のウインドウ411をカバーする大きさで前面に位置し、かつ透明なウインドウにより操作者の目に見えないようにする。遠隔操作用ソフトウエア406のウインドウ411は、操作者の操作により移動、拡大、縮小、消去(即ち終了)及び作成(即ち起動)が行われるが、ソフトウエア407のウインドウ415は操作者の操作により作成(即ち起動)のみが行われる。
ウインドウ415の作成指示が入力されたとき、ソフトウエア407は、遠隔操作用ソフトウエア406のウインドウ411が存在するか否かを確認する。遠隔操作用ソフトウエア406のウインドウ411が存在していなければ、ソフトウエア407はウインドウ415の作成を中止する、即ち、ウインドウ415を起動しない。遠隔操作用ソフトウエア406のウインドウ411が存在する場合は、ソフトウエア407は、遠隔操作用ソフトウエア406のウインドウ411をカバーするように、ウインドウ411と同じ大きさで且つウインドウ411と同じ位置に、透明なウインドウ415を配置する。
ソフトウエア407は、ウインドウ415が作成された後は、OS405から通知されるマウスカーソル420の座標を、そのまま又は加工して遠隔操作用ソフトウエア406に通知する、若しくは遠隔操作用ソフトウエア406に通知しない処理を選択的に実行する。
ソフトウエア407は、マウスカーソル420の座標を遠隔操作用ソフトウエア406にそのまま通知するか、加工して通知するか、あるいは通知しないかを判断するために、OS405から得られない情報が必要となる。その情報は、表示専用領域413と操作可能領域414との境界を示す座標情報であり、具体的には、上述した、表示専用領域413の下、上、左及び右の幅をそれぞれ示す「a」、「b」、「c」及び「d」の情報である。ソフトウエア407は、マウスカーソル420の座標を遠隔操作用ソフトウエア406にそのまま通知するか、加工して通知するか、あるいは通知しないかの判断を行う前に、表示専用領域413と操作可能領域414との境界を示す座標情報を取得する。表示専用領域413と操作可能領域414との境界を示す座標情報を取得する方法は、公知の方法でよい。例えば、表示専用領域413と操作可能領域414との境界を示す座標情報が記憶されたファイルから当該座標情報を読み取って、ソフトウエア407の内部パラメータに格納する。
マウスカーソル420の座標を加工して遠隔操作用ソフトウエア406に通知することに関しては、図7(A)〜(C)を参照して説明する。図7(A)は、マウス52の動きの一例を示す図であり、図7(B)は、図7(A)のマウス52の動きに対応する座標データを概略的に示した図である。図7(C)は、図7(A)に対応するマウスカーソル420が表示専用領域413と操作可能領域414との境界を超える場合の座標データの処理方法を示す図である。
図7(A)に示すように、マウス52の動きは連続的である。しかし、図7(A)のマウス52の動きに対応する座標データは周期的に入力されるので、マウスカーソル420の動きは図7(B)に示すように直線の連続となる。そして、図7(C)に示すように、マウスカーソル420が表示専用領域413と操作可能領域414との境界を超える場合、ソフトウエア407のウインドウ415はOS405から点Aの座標データを受け取るが、点Aの座標は操作可能領域414内にあるため、ウインドウ415は遠隔操作用ソフトウエア406のウインドウ411に対して点Aの座標データをそのまま通知する。次に、ソフトウエア407のウインドウ415はOS405から点Bの座標データを受け取ると、点Bの座標は表示専用領域413にあるので、ソフトウエア407は、点A及び点Bの座標データ並びに表示専用領域413と操作可能領域414との境界を示す座標情報に基づいて、点Aと点Bとを結ぶ直線と境界との交点である点Cの座標を算出し、点Cの座標データを遠隔操作用ソフトウエア406のウインドウ411に通知する。これにより、操作可能領域414内のマウスカーソル420の座標のみが遠隔操作用ソフトウエア406のウインドウ411に通知される。
遠隔操作用ソフトウエア406は、ソフトウエア407から前回通知された座標と今回通知された座標との差分を算出し、その差分を移動距離(相対座標)としてIP−KVMスイッチ200に通知する。
遠隔操作用ソフトウエア406のウインドウ411を移動する場合は、OS405から移動命令と移動先の座標がソフトウエア407に通知される。ソフトウエア407は、この通知に従ってウインドウ415を移動し、ウインドウ415を移動した旨を遠隔操作用ソフトウエア406に通知する。遠隔操作用ソフトウエア406はソフトウエア407からの通知に従ってウインドウ411を移動するので、ウインドウ415及びウインドウ411の位置は互いにずれることはない。
遠隔操作用ソフトウエア406のウインドウ411を拡大又は縮小時は、ウインドウ411の移動と同様に、OS405から拡大又は縮小の命令と拡大後又は縮小後の配置座標がソフトウエア407に通知される。ソフトウエア407は、この通知に従ってウインドウ415を拡大又は縮小し、ウインドウ415を拡大又は縮小したことを遠隔操作用ソフトウエア406に通知する。遠隔操作用ソフトウエア406はソフトウエア407からの通知に従ってウインドウ411を拡大又は縮小する。
遠隔操作用ソフトウエア406のウインドウ411を消去することは、遠隔操作用ソフトウエア406を終了させることである。従って、ソフトウエア407は、OS405から遠隔操作用ソフトウエア406の終了命令を受信した場合に、ウインドウ415を閉じ、自身の動作も終了する。
図8は、ソフトウエア407で実行される動作を示すフローチャートである。ここで、図6(A)を参照して、背景412の領域、即ちOS405のデスクトップ領域を(0,0)−(X,Y)とし、遠隔操作用ソフトウエア406のウインドウ411の領域を(x1,y1)−(x2,y2)とし、操作可能領域414を(x1+c,y1+b)−(x2−d,y2−a)とし、OS405から通知されたマウスカーソル420の座標を(m,n)とする。
まず、OS405上でソフトウエア407の動作が開始されると、ソフトウエア407は、新規のウインドウ415を生成する為に、OS405との間で必要な初期化処理を実施すると共に、操作可能領域414を確定するための表示専用領域413と操作可能領域414との境界を示す座標情報(「a」〜「d」)を外部から取り込む(ステップS1)。表示専用領域413と操作可能領域414との境界を示す座標情報は、例えばファイルから読み込んでもよいし、操作者がユーザインターフェースを介して入力するようにしてもよい。
ソフトウエア407は、遠隔操作用ソフトウエア406のウインドウ411の配置座標(x1,y1)−(x2,y2)をOS405から取得し、ウインドウ411の配置座標に合わせてウインドウ415を配置する(ステップS2)。これにより、ウインドウ415はウインドウ411に重なるように配置される。
また、ソフトウエア407は、ステップS1で取得された表示専用領域413と操作可能領域414との境界を示す座標情報と、ステップS2で取得されたウインドウ411の配置座標から、表示専用領域413及び操作可能領域414の位置を検出する(ステップS3)。具体的には、ソフトウエア407は、ウインドウ411の配置座標(x1,y1)−(x2,y2)と、表示専用領域413と操作可能領域414との境界を示す座標情報(「a」〜「d」)とから、操作可能領域414が(x1+c,y1+b)−(x2−d,y2−a)であることを検出する。さらに、ソフトウエア407は、ウインドウ411の配置座標内の操作可能領域414以外の領域を表示専用領域413とする。
ソフトウエア407は、OS405から通知を受信したか否かを判別する(ステップS4)。OS405から通知を受信していない場合には(ステップS4でNO)、S4の判別を繰り返す。一方、OS405から通知を受信した場合には(ステップS4でYES)、当該通知がマウスカーソル420の移動に関する通知であるか否かを判別する(ステップS5)。OS405から受信した通知がマウスカーソル420の移動に関する通知である場合には(ステップS5でYES)、後述するマウスカーソル420の移動に関する処理を実行する(ステップS6)。
OS405から受信した通知がマウスカーソル420の移動に関する通知でない場合には(ステップS5でNO)、後述する他の処理を実行する(ステップS7)。ステップS6あるいはS7の後、ソフトウエア407は、動作を継続するか否かを判別する(ステップS8)。ここでは、ソフトウエア407は遠隔操作用ソフトウエア406の終了命令を受信しない限り、動作を継続する。動作を継続する場合には(ステップS8でYES)、手順はステップS4に戻り、動作を継続しない場合には(ステップS8でNO)、本処理を終了する。
図9は、図8のステップS7の他の処理を示すフローチャートである。
まず、ソフトウエア407は、OS405から受信した通知が遠隔操作用ソフトウエア406のウインドウ411の移動命令であるか否かを判別する(ステップS11)。OS405から受信した通知が遠隔操作用ソフトウエア406のウインドウ411の移動命令である場合には(ステップS11でYES)、ウインドウ411の移動命令に付随するウインドウ411の移動先の座標に基づいてウインドウ415を移動させる(ステップS12)。その後、ソフトウエア407は、自身の動作の継続を設定し(ステップS13)、手順は図8のステップS8に進む。
ソフトウエア407は、OS405から受信した通知が遠隔操作用ソフトウエア406のウインドウ411の移動命令でない場合には(ステップS11でNO)、OS405から受信した通知が遠隔操作用ソフトウエア406のウインドウ411の拡大命令であるか否かを判別する(ステップS14)。
OS405から受信した通知が遠隔操作用ソフトウエア406のウインドウ411の拡大命令である場合には(ステップS14でYES)、ソフトウエア407は、ウインドウ411の拡大命令に付随するウインドウ411の拡大後の配置座標に基づいてウインドウ415を拡大する(ステップS15)。さらに、ソフトウエア407は、ウインドウ411の拡大後の配置座標(x1,y1)’−(x2,y2)’と、拡大前の配置座標(x1,y1)−(x2,y2)との比を算出し、その比率で拡大前の操作可能領域414を拡大する(ステップS15)。これにより、ウインドウ411の拡大後も、ウインドウ411と操作可能領域414とのサイズ比を、拡大前のサイズ比と一致させることができる。ステップS15の後、手順はステップS13に進む。
OS405から受信した通知が遠隔操作用ソフトウエア406のウインドウ411の拡大命令でない場合には(ステップS14でNO)、ソフトウエア407は、OS405から受信した通知が遠隔操作用ソフトウエア406のウインドウ411の縮小命令であるか否かを判別する(ステップS16)。
OS405から受信した通知が遠隔操作用ソフトウエア406のウインドウ411の縮小命令である場合には(ステップS16でYES)、ソフトウエア407は、ウインドウ411の縮小命令に付随するウインドウ411の縮小後の配置座標に基づいてウインドウ415を縮小する(ステップS17)。さらに、ソフトウエア407は、ウインドウ411の縮小後の配置座標(x1,y1)”−(x2,y2)”と、縮小前の配置座標(x1,y1)−(x2,y2)との比を算出し、その比率で縮小前の操作可能領域414を縮小する(ステップS17)。これにより、ウインドウ411の縮小後も、ウインドウ411と操作可能領域414とのサイズ比を、縮小前のサイズ比と一致させることができる。ステップS17の後、手順はステップS13に進む。
OS405から受信した通知が遠隔操作用ソフトウエア406のウインドウ411の縮小命令でない場合には(ステップS16でNO)、ソフトウエア407は、OS405から受信した通知が遠隔操作用ソフトウエア406の終了命令であるか否かを判別する(ステップS18)。OS405から受信した通知が遠隔操作用ソフトウエア406の終了命令でない場合には(ステップS18でNO)、ソフトウエア407は、OS405から受信した通知に応じた処理を実行し(ステップS19)、手順はステップS13に進む。
OS405から受信した通知が遠隔操作用ソフトウエア406の終了命令である場合には(ステップS18でYES)、ソフトウエア407は、ウインドウ415を閉じて終了し(ステップS20)、自身の動作の非継続を設定し(ステップS21)、手順は図8のステップS8に進む。
図10は、図8のステップS6のマウスカーソル420の移動に関する処理を示すフローチャートである。
まず、ソフトウエア407は、OS405から今回受信したマウスカーソル420の座標が前回受信したマウスカーソル420の座標と異なるか否かを判別する(ステップS31)。OS405から今回受信したマウスカーソル420の座標が前回受信したマウスカーソル420の座標と同一である場合には(ステップS31でNO)、マウスカーソル420の移動処理は不要であるため、ソフトウエア407は、自身の動作の継続を設定し(ステップS36)、手順は図8のステップS8に進む。
OS405から今回受信したマウスカーソル420の座標が前回受信したマウスカーソル420の座標と異なる場合には(ステップS31でYES)、ソフトウエア407は、OS405から今回受信したマウスカーソル420の座標が操作可能領域414に含まれているか否かを判別する(ステップS32)。
OS405から今回受信したマウスカーソル420の座標が操作可能領域414に含まれている場合には(ステップS32でYES)、ソフトウエア407は、OS405から前回受信したマウスカーソル420の座標(即ち、現在のマウスカーソル420の座標)が操作可能領域414に含まれているか否かを判別する(ステップS33)。
OS405から前回受信したマウスカーソル420の座標が操作可能領域414に含まれている場合には(ステップS33でYES)、マウスカーソル420は操作可能領域414内で移動するので、ソフトウエア407は、OS405から今回受信したマウスカーソル420の座標を遠隔操作用ソフトウエア406にそのまま通知し(ステップS34)、手順はステップS36に進む。
OS405から前回受信したマウスカーソル420の座標が操作可能領域414に含まれていない場合には(ステップS33でNO)、ソフトウエア407は、今回受信したマウスカーソル420の座標及び前回受信したマウスカーソル420の座標を結ぶ直線と、表示専用領域413及び操作可能領域414の境界との交点を算出し、その交点の座標を遠隔操作用ソフトウエア406に通知し、その後、今回受信したマウスカーソル420の座標を遠隔操作用ソフトウエア406に通知し(ステップS35)、手順はステップS36に進む。この場合、マウスカーソル420は表示専用領域413から操作可能領域414に移動するので、交点の座標が遠隔操作用ソフトウエア406に通知されることで、マウスカーソル420が操作可能領域414内に進入した時点でマウスカーソル421がマウスカーソル420と重なる。その後、今回受信したマウスカーソル420の座標が遠隔操作用ソフトウエア406に通知されることで、マウスカーソル421がマウスカーソル420の移動に追従する。また、マウスカーソル420が操作可能領域414外から表示専用領域413と操作可能領域414との境界に到達するまで、ソフトウエア407は、マウスカーソル420の座標を遠隔操作用ソフトウエア406に通知せず、遮断している(ステップS35)。
OS405から今回受信したマウスカーソル420の座標が操作可能領域414に含まれていない場合には(ステップS32でNO)、ソフトウエア407は、OS405から前回受信したマウスカーソル420の座標が操作可能領域414に含まれているか否かを判別する(ステップS37)。
OS405から前回受信したマウスカーソル420の座標が操作可能領域414に含まれている場合には(ステップS37でYES)、ソフトウエア407は、今回受信したマウスカーソル420の座標及び前回受信したマウスカーソル420の座標を結ぶ直線と、表示専用領域413及び操作可能領域414の境界との交点を算出し、その交点の座標を遠隔操作用ソフトウエア406に通知し、今回受信したマウスカーソル420の座標は遠隔操作用ソフトウエア406に通知せず遮断し(ステップS38)、手順はステップS36に進む。この場合、マウスカーソル420は操作可能領域414から表示専用領域413に移動するので、交点の座標が遠隔操作用ソフトウエア406に通知されることで、マウスカーソル421は境界に到達するまでマウスカーソル420の移動に追従し、交点座標で移動が停止する。
OS405から前回受信したマウスカーソル420の座標が操作可能領域414に含まれていない場合には(ステップS37でNO)、マウスカーソル420は表示専用領域413内(操作可能領域外)を移動しているので、ソフトウエア407は、今回受信したマウスカーソル420の座標を遠隔操作用ソフトウエア406に通知せずに遮断し(ステップS39)、手順はステップS36に進む。
以上説明したように、ソフトウエア407は、表示専用領域413と操作可能領域414との境界を示す座標情報(「a」〜「d」)を外部から取得し(ステップS1)、遠隔操作用ソフトウエア406のウインドウ411の配置座標をOS405から取得し、ウインドウ411の配置座標に合わせてウインドウ415を配置する(ステップS2)。そして、ソフトウエア407は、ステップS1で取得された表示専用領域413と操作可能領域414との境界を示す座標情報と、ステップS2で取得されたウインドウ411の配置座標から、表示専用領域413及び操作可能領域414の位置を検出し(ステップS3)、OS405から取得したマウスカーソル420の座標が、サーバ100上で動作するマウスカーソル421が進入できない表示専用領域413に含まれる場合には、マウスカーソル420の座標を遠隔操作用ソフトウエア406に通知せず、遮断する(ステップS35、S38、S39)。よって、サーバ100上で動作するマウスカーソル421とクライアント400で動作するマウスカーソル420とのずれを抑制することができる。
(第2の実施の形態)
第2の実施の形態の通信システムは、第1の実施の形態の図4の通信システムと同様である。
第1の実施の形態では、遠隔操作用ソフトウエア406のウインドウ411の上にソフトウエア407のウインドウ415を配置し、ウインドウ415がウインドウ411よりも先にOS405から出力されるマウスカーソル420の座標を取得した。第2の実施の形態では、ソフトウエア407は、ウインドウ415を作成せず、OS405(Windows(登録商標))が提供するメッセージフック機能を利用する。
Windows(登録商標)では、Win32API関数におけるSetWindowHookEx関数のように、対象ウィンドウに送信される通知を横取りする仕組みが用意されている。ソフトウエア407は、OS405から遠隔操作用ソフトウエア406のウインドウ411に出力されるマウスカーソル420の座標を横取りする又は検出するフック関数を含む。フック関数は、横取手段の一例である。
図11は、第2の実施の形態に係るソフトウエア407で実行される動作を示すフローチャートである。図11のフローチャートは、図8のフローチャートと比べて、図8のステップS2だけが異なるので、異なる点のみ説明する。
ソフトウエア407は、図8のステップS2の新規のウインドウ415の配置に代えて、フック関数の呼び出しを実行する(ステップS2A)。その他の処理は、第1の実施の形態で説明した処理と同様であるので、その説明は省略する。
第2の実施の形態によれば、ウインドウ415の代わりに、ソフトウエア407に含まれるフック関数が、OS405から遠隔操作用ソフトウエア406のウインドウ411に出力されるマウスカーソル420の座標を横取りするので、第2の実施の形態に係るソフトウエア407は、第1の実施の形態に係るソフトウエア407と同様の処理を実行できる。結果として、第1の実施の形態と同様の効果を奏することができる。
(第3の実施の形態)
上記第1及び第2の実施の形態では、マウスカーソル421とマウスカーソル420とのずれを抑制するために、ソフトウエア407を利用した。第3の実施の形態では、サーバ100、IP−KVMスイッチ200及びクライアント400以外のハードウエアを利用して、マウスカーソル421とマウスカーソル420とのずれを抑制する。
図12は、第3の実施の形態に係る遠隔システムの概略構成図である。
図12の遠隔システム1001は、図4の遠隔システム1000と比べて、中継装置500を備える点で異なる。また、クライアント400は、ソフトウエア407を備えていない。中継装置500は、サーバ100とIP−KVMスイッチ200との間に通信ケーブル30を介して接続されている。通信ケーブル30は、例えば、USB(Universal Serial Bus)ケーブル及びDVI(Digital Visual Interface)ケーブルである。また、中継装置500は、通信ケーブル33を介してネットワーク300に接続可能である。通信ケーブル33は、例えばLAN(Local Area Network)ケーブルである。遠隔システム1001の他の構成は図4の遠隔システム1000と同様であるので、その説明は省略する。
図13は、中継装置500の概略構成を示すブロック図である。
中継装置500は、下流側I/F(インターフェース)処理部501、上流側I/F処理部502、データ処理部503、通信部504、入力I/F505及び記憶部506を備えている。下流側I/F処理部501、上流側I/F処理部502、データ処理部503、通信部504、入力I/F505及び記憶部506の機能はマイコンで実現される。データ処理部503は、検出手段、第2取得手段、及び遮断手段の一例である。下流側I/F処理部501、データ処理部503、通信部504及び入力I/F505は第1取得手段の一例である。通信部504は通信手段の一例である。
下流側I/F処理部501は、通信ケーブル30を介してIP−KVMスイッチ200に接続され、マウスカーソル420の座標データ及びボタンデータを受信し、サーバ100からのビデオ信号をIP−KVMスイッチ200に出力する。下流側I/F処理部501が受信するマウスカーソル420の座標データは、IP−KVMスイッチ200から出力される相対座標であり、サーバ100の操作画面が持つ解像度に適合する値である。
データ処理部503は、下流側I/F処理部501が受信するマウスカーソル420の座標データがサーバ100の操作画面が持つ解像度に適合する値であるという特徴を利用して、下流側I/F処理部501から受信した相対座標からサーバ100の操作画面の座標に変換する。その後、データ処理部503は、第1の実施の形態のソフトウエア407と同様に、下流側I/F処理部501から受信した相対座標を上流側I/F処理部502を介してサーバ100に通知するか否かを判断する。また、サーバ100に通知する値は、下流側I/F処理部501から受信した相対座標でもよいし、その相対座標をサーバ100の操作画面の座標に変換した値でもよい。
上流側I/F処理部502は、通信ケーブル30を介してサーバ100に接続され、サーバ100からのビデオ信号を受信し、マウスカーソル420の座標データ及びボタンデータをサーバ100に出力する。上流側I/F処理部502は、サーバ100と下流側I/F処理部501との間の中継処理を行い、下流側I/F処理部501の各機能をエミュレートする。エミュレートとは、例えば、キーボードがキーボードとして動作し、マウスがマウスとして動作し、ディスプレイがディスプレイとして動作することを意味する。ここでは、下流側I/F処理部501がキーボードやマウスを備えていないので、上流側I/F処理部502は、下流側I/F処理部501から受信したキーコード、マウスカーソルの座標データ及びボタンデータに依存する。上流側I/F処理部502は、下流側I/F処理部501に接続されているディスプレイ又は対応するEDID(Extended Display Identification Data)をエミュレートする。
通信部504は、ネットワーク300を介してクライアント400と通信する。入力I/F505は、表示専用領域413と操作可能領域414との境界を示す座標情報(「a」〜「d」)及びサーバ100の操作画面のサイズ情報(即ち、サーバ100の操作画面が持つ解像度)を記憶する記憶媒体(例えばUSBメモリ)を接続する。記憶部506は、取得した座標情報(「a」〜「d」)、取得したサーバ100の操作画面のサイズ情報及び中継装置500を制御するファームウエアを記憶する。座標情報(「a」〜「d」)及びサーバ100の操作画面のサイズ情報は例えばテキストデータで提供される。
図14は、下流側I/F処理部501の概略構成を示すブロック図である。
下流側I/F処理部501は、ビデオ信号受信回路510と、OSDコントローラ511、合成部512と、キーボード制御部513とを備えている。ビデオ信号受信回路510は、上流側I/F処理部502からビデオ信号を受信し、OSDコントローラ511又はIP−KVMスイッチ200に出力する。OSDコントローラ511は、後述するOSD画面のデータ及びビデオ信号受信回路510から受信したビデオ信号を合成部512に出力する。合成部512は、OSD画面のデータ及びビデオ信号受信回路510から受信したビデオ信号を合成し、合成されたデータをローカル用のディスプレイ(不図示)に出力する。キーボード制御部513は、不図示のローカル用のキーボードの操作によりOSD画面にデータを入力する。OSD画面に入力されたデータは、データ処理部503に送信される。OSDコントローラ511は、出力手段の一例である。
図15は、OSD画面の一例を示す図である。
不図示のローカル用のキーボードからホットキーの入力がある(例えば「ctrl」キーと「F1」キーの同時入力)と、ローカル用のディスプレイに図15のOSD画面が表示される。この状態で、数字キーを押下すると、当該数字キーに対応する項目の入力ができる。例えば、数字キー「1」を押下すると、表示専用領域413と操作可能領域414との境界を示す座標情報「a」の値を入力できる。尚、図15の「sizeX」及び「sizeY」は、サーバ100の操作画面の水平方向及び垂直方向のサイズ(サーバ100の操作画面が持つ水平方向及び垂直方向の解像度)をそれぞれ示す。図15の状態で「R」キーを押下すると、各項目の値は、中継装置500の起動時の対応する設定値に復帰する。図15の状態で「S」キーを押下すると、各項目の値が中継装置500の起動時の対応する設定値に上書きされて保存される。
図16は、中継装置500で実行される動作を示すフローチャートである。
まず、中継装置500が動作を開始すると、データ処理部503は必要な初期化処理を実施すると共に、表示専用領域413と操作可能領域414との境界を示す座標情報(「a」〜「d」)及びサーバ100の操作画面のサイズ情報を取り込む(ステップS41)。境界を示す座標情報及びサーバ100の操作画面のサイズ情報を取り込む方法は、(1)入力I/F505に接続された、これらの情報が記憶された記憶媒体から取り込む、(2)通信部504がクライアント400と通信し、クライアント400からこれらの情報を取り込む、又は(3)操作者がOSD画面にこれらの情報を入力し、入力されたこれらの情報を取り込むである。取り込まれた境界を示す座標情報及びサーバ100の操作画面のサイズ情報は記憶部506に記憶される。
また、データ処理部503は、ステップS1で取得された表示専用領域413と操作可能領域414との境界を示す座標情報及びサーバ100の操作画面のサイズ情報から、表示専用領域413及び操作可能領域414の位置を検出する(ステップS42)。データ処理部503は、IP−KVMスイッチ200から通知を受信したか否かを判別する(ステップS43)。IP−KVMスイッチ200から通知を受信していない場合には(ステップS43でNO)、当該判別を繰り返す。一方、IP−KVMスイッチ200から通知を受信した場合には(ステップS43でYES)、当該通知がマウスカーソル420の移動に関する通知であるか否かを判別する(ステップS44)。
IP−KVMスイッチ200から受信した通知がマウスカーソル420の移動に関する通知である場合には(ステップS44でYES)、データ処理部503は後述するマウスカーソル420の移動に関する処理を実行する(ステップS45)。OS405から受信した通知がマウスカーソル420の移動に関する通知でない場合には(ステップS45でNO)、データ処理部503は後述する他の処理を実行する(ステップS46)。ステップS45、S46の後、データ処理部503は、動作を継続するか否かを判別する(ステップS47)。動作を継続する場合には(ステップS47でYES)、手順はステップS43に戻り、動作を継続しない場合には(ステップS8でNO)、ステップS41に戻る。
遠隔操作用ソフトウエア406では、サーバ100のマウスカーソル421とクライアント400のマウスカーソル420の位置とは常に一致していることを必須条件としている。遠隔操作用ソフトウエア406のウインドウ411の動作開始時点では、この二つのマウスカーソルの位置が一致していない可能性もある。遠隔操作用ソフトウエア406のウインドウ411の動作開始時に、マウスカーソル420及び421の位置を一致させるためにクライアント400は一定の座標を出力する。
図17は、マウスカーソル420及び421の位置を一致させる処理を説明する図である。
まず、遠隔操作用ソフトウエア406は、点Lにあるマウスカーソル421を点M(操作可能領域414の左上端)に移動させるために、マウスカーソル421の移動量として、マウスカーソル421の座標に加算される相対座標Z1をIP−KVMスイッチ200を介してサーバ100に通知する。マウスカーソル421を点Mに移動させるためには、通知する相対座標値を累積したときに操作可能領域414の大きさを超える移動量となるようにする。次に、遠隔操作用ソフトウエア406は、マウスカーソル421を点Mからマウスカーソル420が位置する点Nに移動させるために、点Mの座標と点Nの座標との差分を求め、求めた差分に相当する移動量として、マウスカーソル421の座標に加算される相対座標Z2をIP−KVMスイッチ200を介してサーバ100に通知する。これによって、マウスカーソル421とマウスカーソル420とを重ね合わせることができる。
点Lから点Mにマウスカーソル421を移動させるための移動量は、点Mから点Lにマウスカーソル421を移動させるための移動量よりも非常に大きくされており、マウスカーソル421を点Lから点Mに確実に移動させることができる移動量又は移動量の送出回数がサーバ100に通知される。また、サーバ100の加速/加速度処理やIP−KVMスイッチ200の特性などの影響を受けずにマウスカーソル421を点Mから点Nに確実に移動させるために、マウスカーソル421を点Mから点Nに移動させる際は、サーバ100によって加速されない大きさの移動量又は移動量の送出回数がサーバ100に通知される。
中継装置500のデータ処理部503は、遠隔操作用ソフトウエア406のマウスカーソル420及び421の位置合わせのための相対座標の出力を監視して、マウスカーソル420及び421の座標を特定する。具体的には、データ処理部503は、表示専用領域413と操作可能領域414との境界を示す座標情報及びサーバ100の操作画面のサイズ情報から点Mの座標を算出する。そして、データ処理部503は、点Mの座標から相対座標Z2を加算することにより一致したマウスカーソル420及び421の位置(すなわち点N)の座標を特定することができる。
ここで、点Mをマウスカーソル420及び421の位置を特定するための基準点とする。点Mは、操作可能領域414の左上端としたが、本実施の形態では、基準点である点Mは、操作可能領域414の左上端に限定するものではない。例えば、基準点は、操作可能領域414の左下端、右下端、右上端、又は操作可能領域414の中心のいずれかであってもよい。
図18は、図16のステップS46の他の処理を示すフローチャートである。
まず、データ処理部503は、受信した通知が表示専用領域413と操作可能領域414との境界を示す座標情報(「a」〜「d」)であるか否かを判別する(ステップS51)。受信した通知が表示専用領域413と操作可能領域414との境界を示す座標情報である場合には(ステップS51でYES)、データ処理部503は、記憶部506に保存された境界を示す座標情報を更新し(ステップS52)、中継装置500の動作の継続を設定し(ステップS53)、手順は図15のステップS47に進む。
データ処理部503は、受信した通知が表示専用領域413と操作可能領域414との境界を示す座標情報でない場合には(ステップS51でNO)、受信した通知がマウスカーソル420及び421の位置合わせのための命令であるか否かを判別する(ステップS54)。IP−KVMスイッチ200から受信した通知がマウスカーソル420及び421の位置合わせのための命令である場合には(ステップS54でYES)、データ処理部503は、マウスカーソル420及び421の位置合わせのための相対座標をサーバ100に出力し、マウスカーソル421をマウスカーソル420の位置に移動させる(ステップS55)。手順はステップS53に進む。
IP−KVMスイッチ200から受信した通知がマウスカーソル420及び421の位置合わせのための命令でない場合には(ステップS54でNO)、データ処理部503は、受信した通知がリセット命令であるか否かを判別する(ステップS56)。受信した通知がリセット命令である場合には(ステップS56でYES)、データ処理部503は、中継装置500の動作の非継続を設定し(ステップS57)、手順は図15のステップS47に進む。受信した通知がリセット命令でない場合には(ステップS56でNO)、データ処理部503は、受信した通知がファームウエアの書き換え命令であるか否かを判別する(ステップS58)。
受信した通知がファームウエアの書き換え命令である場合には(ステップS58でYES)、データ処理部503は、記憶部506に保存されたファームウエアを更新し(ステップS59)、手順はステップS57に進む。受信した通知がファームウエアの書き換え命令でない場合には(ステップS58でNO)、データ処理部503は、受信した通知に応じた処理を実行し(ステップS60)、手順はステップS57に進む。
図19は、図16のステップS45のマウスカーソル420の移動に関する処理を示すフローチャートである。ここでは、すでにマウスカーソル420及び421の位置合わせ(図18のステップS55)が終了しているものとする。従って、マウスカーソル420の位置はマウスカーソル421の位置と一致し、マウスカーソル420の移動量はマウスカーソル421の移動量と一致する。
まず、IP−KVMスイッチ200からマウスカーソル420の相対座標(即ち、マウスカーソル420の移動量)を受信すると、データ処理部503は、前回のマウスカーソル420の座標に受信したマウスカーソル420の相対座標を加算し、その結果を今回のマウスカーソル420の座標とする(ステップS61)。
データ処理部503は、今回のマウスカーソル420の座標が前回のマウスカーソル420の座標と異なるか否かを判別する(ステップS62)。今回のマウスカーソル420の座標が前回のマウスカーソル420の座標と同一である場合には(ステップS62でNO)、データ処理部503は、動作の継続を設定し(ステップS67)、手順は図16のステップS47に進む。今回のマウスカーソル420の座標が前回のマウスカーソル420の座標と異なる場合には(ステップS62でYES)、データ処理部503は、今回のマウスカーソル420の座標が操作可能領域414に含まれているか否かを判別する(ステップS63)。
今回のマウスカーソル420の座標が操作可能領域414に含まれている場合には(ステップS63でYES)、データ処理部503は、前回のマウスカーソル420の座標(即ち、現在のマウスカーソル420の座標)が操作可能領域414に含まれているか否かを判別する(ステップS64)。前回のマウスカーソル420の座標が操作可能領域414に含まれている場合には(ステップS64でYES)、マウスカーソル420は操作可能領域414内で移動するので、データ処理部503は、今回のマウスカーソル420の座標をサーバ100にそのまま通知し(ステップS65)、手順はステップS67に進む。
前回のマウスカーソル420の座標が操作可能領域414に含まれていない場合には(ステップS64でNO)、データ処理部503は、今回のマウスカーソル420の座標及び前回のマウスカーソル420の座標を結ぶ直線と、表示専用領域413及び操作可能領域414の境界との交点を算出し、その交点の座標をサーバ100に通知し、その後、今回のマウスカーソル420の座標をサーバ100に通知し(ステップS66)、手順はステップS67に進む。この場合、マウスカーソル420は表示専用領域413から操作可能領域414に移動するので、交点の座標がサーバ100に通知されることで、マウスカーソル420が操作可能領域414内に進入した時点でマウスカーソル421がマウスカーソル420と重なる。その後、今回のマウスカーソル420の座標がサーバ100に通知されることで、マウスカーソル421がマウスカーソル420の移動に追従して移動する。また、マウスカーソル420が操作可能領域414の外から表示専用領域413と操作可能領域414との境界に到達するまで、データ処理部503は、マウスカーソル420の座標をサーバ100に通知せず、遮断している(ステップS66)。
今回のマウスカーソル420の座標が操作可能領域414に含まれていない場合には(ステップS63でNO)、データ処理部503は、前回のマウスカーソル420の座標が操作可能領域414に含まれているか否かを判別する(ステップS68)。前回のマウスカーソル420の座標が操作可能領域414に含まれている場合には(ステップS68でYES)、データ処理部503は、今回のマウスカーソル420の座標及び前回のマウスカーソル420の座標を結ぶ直線と、表示専用領域413及び操作可能領域414の境界との交点を算出し、その交点の座標をサーバ100に通知し、今回のマウスカーソル420の座標はサーバ100に通知せず遮断し(ステップS69)、手順はステップS67に進む。この場合、マウスカーソル420は操作可能領域414から表示専用領域413(操作可能領域414外)に移動するので、交点の座標がサーバ100に通知されることで、マウスカーソル421は境界に到達するまでマウスカーソル420の移動に追従し、境界に到達すると移動を停止する。
前回のマウスカーソル420の座標が操作可能領域414に含まれていない場合には(ステップS68でNO)、マウスカーソル420は表示専用領域413内(操作可能領域414外)を移動しているので、データ処理部503は、今回のマウスカーソル420の座標をサーバ100に通知せず、遮断し(ステップS70)、手順はステップS67に進む。
第3の実施の形態によれば、クライアント400にソフトウエア407を追加することなく、即ち、クライアント400に新たな負担を掛けずに、サーバ100上で動作するマウスカーソル421とクライアント400で動作するマウスカーソル420とのずれを抑制することができる。
中継装置500の機能を実現するためのソフトウェアのプログラムが記録されている記録媒体を、中継装置500に供給し、中継装置500に含まれるマイコンが記憶媒体に格納されたプログラムを読み出し実行することによっても、上記実施の形態と同様の効果を奏する。プログラムを供給するための記憶媒体としては、例えば、CD−ROM、DVD、又はSDカードなどがある。さらに、中継装置500の機能を実現するためのソフトウェアのプログラムを、中継装置500に供給し、中継装置500に含まれるマイコンが当該プログラムを読み出し実行することによっても、第3の実施の形態と同様の効果を奏する。
尚、本発明は、上述した実施の形態に限定されるものではなく、その要旨を逸脱しない範囲内で種々変形して実施することが可能である。
100 サーバ
200 IP−KVMスイッチ
400 クライアント
405 OS
406 遠隔操作用ソフトウエア
407 ソフトウエア
500 中継装置
501 下流側I/F処理部
502 上流側I/F処理部
503 データ処理部
504 通信部
505 入力I/F
506 記憶部

Claims (15)

  1. IP−KVM(K:キーボード、V:ビデオ、M:マウス)スイッチを介してサーバに接続されると共に、当該サーバの操作画面に表示される第1マウスカーソルと自身の操作画面に表示される第2マウスカーソルとを表示して当該サーバの操作画面を遠隔操作するコンピュータを、
    前記サーバの操作画面内の操作可能領域と操作不可能領域との境界を示す座標情報を取得する第1取得手段、
    前記第1マウスカーソルを含む前記サーバの操作画面を表示する第1ウインドウの配置座標を前記コンピュータのオペレーティングシステムから取得する第2取得手段、
    前記第1取得手段で取得された座標情報と、前記第2取得手段で取得された第1ウインドウの配置座標とから、前記操作可能領域及び前記操作不可能領域の位置を検出する検出手段、及び
    前記コンピュータのオペレーティングシステムから取得した第2マウスカーソルの座標が前記操作不可能領域に含まれる場合には、前記第2マウスカーソルの座標を前記第1ウインドウに通知することを遮断する遮断手段
    として機能することを特徴とするプログラム。
  2. 前記第1ウインドウの上に、前記第1ウインドウの大きさと同じ大きさの第2ウインドウを配置し、
    前記遮断手段は前記第2ウインドウであり、
    前記第2ウインドウは、前記コンピュータのオペレーティングシステムから前記第2マウスカーソルの座標を取得し、当該取得した第2マウスカーソルの座標が前記操作不可能領域に含まれる場合には、当該取得した第2マウスカーソルの座標を前記第1ウインドウに通知することを遮断し、
    当該取得した第2マウスカーソルの座標が前記操作可能領域に含まれる場合には、当該取得した第2マウスカーソルの座標を前記第1ウインドウに通知することを特徴とする請求項1に記載のプログラム。
  3. 前記オペレーティングシステムから取得した第2マウスカーソルの前回座標が前記操作不可能領域に含まれ、且つ前記オペレーティングシステムから取得した第2マウスカーソルの今回座標が前記操作可能領域に含まれる場合、前記遮断手段は、前記第2マウスカーソルが前記操作不可能領域及び前記操作可能領域の境界に到達するまで、前記第2マウスカーソルの座標を前記第1ウインドウに通知することを遮断し、前記第2マウスカーソルが前記操作不可能領域と前記操作可能領域との境界に到達したら、前記第2マウスカーソルの前回座標及び前記第2マウスカーソルの今回座標を結ぶ直線と、前記操作不可能領域及び前記操作可能領域の境界との交点を算出して当該交点の座標を前記第1ウインドウに通知し、前記第2マウスカーソルの今回座標を前記第1ウインドウに通知することを特徴とする請求項1又は2に記載のプログラム。
  4. 前記オペレーティングシステムから取得した第2マウスカーソルの前回座標が前記操作可能領域に含まれ、且つ前記オペレーティングシステムから取得した第2マウスカーソルの今回座標が前記操作不可能領域に含まれる場合に、前記遮断手段は、前記第2マウスカーソルの前回座標及び前記第2マウスカーソルの今回座標を結ぶ直線と、前記操作不可能領域及び前記操作可能領域の境界との交点を算出して当該交点の座標を前記第1ウインドウに通知し、前記第2マウスカーソルの今回座標を前記第1ウインドウに通知することを遮断することを特徴とする請求項1乃至3のいずれか1項に記載のプログラム。
  5. 前記コンピュータのオペレーティングシステムから前記第1ウインドウの移動、拡大、縮小及び終了のいずれか一つの命令を取得した場合に、当該取得した命令に応じて前記第2ウインドウの移動、拡大、縮小及び終了のいずれか一つを実行する実行手段を備える請求項2に記載のプログラム。
  6. 前記遮断手段は、自身のオペレーティングシステムから前記第1ウインドウに出力される第2マウスカーソルの座標を横取りする横取手段を備え、
    前記遮断手段は、当該横取りした第2マウスカーソルの座標が前記操作不可能領域に含まれる場合には、当該横取りした第2マウスカーソルの座標を前記第1ウインドウに通知することを遮断し、当該横取りした第2マウスカーソルの座標が前記操作可能領域に含まれる場合には、当該横取りした第2マウスカーソルの座標を前記第1ウインドウに通知することを特徴とする請求項1に記載のプログラム。
  7. 前記第1マウスカーソルと前記第2マウスカーソルとの位置を合わせる場合、
    前記第1マウスカーソルを前記操作可能領域の基準点に移動させ、
    前記基準点に位置する第1マウスカーソルを、前記第2マウスカーソルの位置に移動させることを特徴とする請求項1に記載のプログラム。
  8. 前記第1マウスカーソルを前記基準点に移動させる場合、
    前記第1マウスカーソルの座標と前記基準点の座標との差分を求めて、前記第1マウスカーソルが前記基準点を通過させる移動量を前記サーバに通知し、
    前記第1マウスカーソルを前記基準点から移動させる場合、
    前記基準点から前記第2マウスカーソルの位置に前記第1マウスカーソルを移動させることのできる移動量を前記サーバに通知することを特徴とする請求項7に記載のプログラム。
  9. サーバの操作画面に表示される第1マウスカーソルと自身の操作画面に表示される第2マウスカーソルとを表示して当該サーバの操作画面を遠隔操作するクライアントに接続されるIP−KVM(K:キーボード、V:ビデオ、M:マウス)スイッチとサーバとの間に接続される中継装置であって、
    前記サーバの操作画面内の操作可能領域と操作不可能領域との境界を示す座標情報及び前記サーバの操作画面のサイズ情報を取得する第1取得手段と、
    前記第1取得手段で取得された座標情報及びサイズ情報から前記操作可能領域及び前記操作不可能領域の位置を検出する検出手段と、
    前記クライアントで実行される前記第1マウスカーソル及び前記第2マウスカーソルの位置合わせ処理から前記第2マウスカーソルの座標を取得する第2取得手段と、
    前記IP−KVMから取得される第2マウスカーソルの相対座標を前記第2マウスカーソルの前回座標に加算することで前記第2マウスカーソルの今回座標を算出し、前記第2マウスカーソルの今回座標が、前記操作不可能領域に含まれる場合には、前記第2マウスカーソルの今回座標を前記サーバに通知することを遮断する遮断手段と
    を備えることを特徴とする中継装置。
  10. 前記第2マウスカーソルの前回座標が前記操作不可能領域に含まれ、且つ前記第2マウスカーソルの今回座標が前記操作可能領域に含まれる場合に、前記遮断手段は、前記第2マウスカーソルが前記操作不可能領域及び前記操作可能領域の境界に到達するまで、前記第2マウスカーソルの座標を前記サーバに通知することを遮断し、前記第2マウスカーソルが前記操作不可能領と前記操作可能領域との境界に到達したら、前記第2マウスカーソルの前回座標及び前記第2マウスカーソルの今回座標を結ぶ直線と、前記操作不可能領域及び前記操作可能領域の境界との交点を算出して、当該交点の座標を前記サーバに通知し、前記第2マウスカーソルの今回座標を前記サーバに通知することを特徴とする請求項9に記載の中継装置。
  11. 前記第2マウスカーソルの前回座標が前記操作可能領域に含まれ、且つ前記第2マウスカーソルの今回座標が前記操作不可能領域に含まれる場合に、前記遮断手段は、前記第2マウスカーソルの前回座標及び前記第2マウスカーソルの今回座標を結ぶ直線と、前記操作不可能領域及び前記操作可能領域の境界との交点を算出して、当該交点の座標を前記サーバに通知し、前記第2マウスカーソルの今回座標を前記サーバに通知することを遮断することを特徴とする請求項9又は10に記載の中継装置。
  12. 前記位置合わせ処理では、前記クライアントは前記第1マウスカーソルを前記操作可能領域の予め決められた基準点を通過させてから、前記第2マウスカーソルの位置に移動させ、
    前記第2取得手段は、前記第1取得手段で取得された座標情報及びサイズ情報から前記基準点の座標を算出し、前記基準点から前記第2マウスカーソルの位置に移動する際の前記第1マウスカーソルの相対座標を当該基準点の座標に加算することで前記第2マウスカーソルの座標を取得することを特徴とする請求項9乃至11のいずれか1項に記載の中継装置。
  13. 前記クライアントと通信する通信手段を備え、前記第1取得手段は前記クライアントから前記通信手段を介して前記座標情報及び前記サイズ情報を取得することを特徴とする請求項9乃至12のいずれか1項に記載の中継装置。
  14. 前記第1取得手段は、前記座標情報及び前記サイズ情報が記憶された記憶媒体から前記座標情報及び前記サイズ情報を取得することを特徴とする請求項9乃至12のいずれか1項に記載の中継装置。
  15. IP−KVM(K:キーボード、V:ビデオ、M:マウス)スイッチを介してサーバに接続され、当該サーバの操作画面に表示される第1マウスカーソルと自身の操作画面に表示される第2マウスカーソルとを表示して当該サーバの操作画面を遠隔操作する情報処理装置であって、
    前記サーバの操作画面内の操作可能領域と操作不可能領域との境界を示す座標情報を取得する第1取得手段と、
    前記第1マウスカーソルが表示される前記サーバの操作画面を表示するソフトウエアが生成する第1ウインドウの配置座標を前記情報処理装置から取得する第2取得手段と、
    前記第1取得手段で取得された座標情報と、前記第2取得手段で取得された第1ウインドウの配置座標とから、前記操作可能領域及び前記操作不可能領域の位置を検出する検出手段と、
    前記情報処理装置から取得した第2マウスカーソルの座標が前記操作不可能領域に含まれる場合には、前記第2マウスカーソルの座標を前記第1ウインドウに通知することを遮断する遮断手段と
    を備えることを特徴とする情報処理装置。
JP2014092730A 2014-04-28 2014-04-28 プログラム、中継装置及び情報処理装置 Active JP6280435B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2014092730A JP6280435B2 (ja) 2014-04-28 2014-04-28 プログラム、中継装置及び情報処理装置
EP15163309.6A EP2940558B1 (en) 2014-04-28 2015-04-13 Program, relay device and information processing device
US14/686,363 US10275112B2 (en) 2014-04-28 2015-04-14 Computer readable medium, relay device and information processing device
CN201510205511.1A CN105045417B (zh) 2014-04-28 2015-04-28 中继设备和信息处理设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014092730A JP6280435B2 (ja) 2014-04-28 2014-04-28 プログラム、中継装置及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2015210714A JP2015210714A (ja) 2015-11-24
JP6280435B2 true JP6280435B2 (ja) 2018-02-14

Family

ID=52875006

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014092730A Active JP6280435B2 (ja) 2014-04-28 2014-04-28 プログラム、中継装置及び情報処理装置

Country Status (4)

Country Link
US (1) US10275112B2 (ja)
EP (1) EP2940558B1 (ja)
JP (1) JP6280435B2 (ja)
CN (1) CN105045417B (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9986225B2 (en) * 2014-02-14 2018-05-29 Autodesk, Inc. Techniques for cut-away stereo content in a stereoscopic display
JP6280435B2 (ja) * 2014-04-28 2018-02-14 富士通コンポーネント株式会社 プログラム、中継装置及び情報処理装置
JP2018005701A (ja) * 2016-07-05 2018-01-11 富士通コンポーネント株式会社 Kvmスイッチ
JP6805589B2 (ja) * 2016-07-11 2020-12-23 富士通株式会社 情報処理装置、情報処理システム、情報処理プログラムおよび情報処理方法
CN107450743B (zh) * 2016-11-23 2020-07-10 深圳市秦安科技有限公司 基于输入输出集成***的屏幕菜单式调节方式的实现方法
WO2019144101A1 (en) * 2018-01-19 2019-07-25 SunStone Information Defense, Inc. Methods and apparatus for interfering with malware using displaced display elements
CN109343810A (zh) * 2018-09-30 2019-02-15 北京淳中科技股份有限公司 控制权切换方法、装置及kvm切换***
CN109388257A (zh) * 2018-09-30 2019-02-26 北京淳中科技股份有限公司 控制权切换方法、装置及kvm切换***
CN110233771B (zh) * 2019-04-15 2022-05-24 长飞光纤光缆股份有限公司 一种基于spice协议的网络链路环境的判断方法与装置
CN110531870B (zh) * 2019-08-16 2023-04-25 北京小鸟科技股份有限公司 Kvm坐席管理***及鼠标定位方法
JP6624767B1 (ja) * 2019-08-26 2019-12-25 株式会社ブラック 情報処理システム及び情報処理方法
US11487559B2 (en) * 2019-10-07 2022-11-01 Citrix Systems, Inc. Dynamically switching between pointer modes
CN112035048B (zh) 2020-08-14 2022-03-25 广州视源电子科技股份有限公司 触摸数据处理方法、装置、设备及存储介质
CN112738422B (zh) * 2020-12-31 2022-08-16 威创集团股份有限公司 一种坐席画面显示***及其显示方法
US11449213B1 (en) * 2021-02-26 2022-09-20 Citrix Systems, Inc. Host to client drag-and-drop operation
CN114327737A (zh) * 2022-03-04 2022-04-12 中信建投证券股份有限公司 一种远程辅助方法、装置及***

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5107443A (en) * 1988-09-07 1992-04-21 Xerox Corporation Private regions within a shared workspace
GB2300551A (en) * 1995-05-03 1996-11-06 Ibm Computer workstation
JP3627791B2 (ja) * 1998-08-10 2005-03-09 富士通株式会社 他端末操作装置
US6580416B1 (en) * 2000-04-10 2003-06-17 Codehorse, Inc. Method of using a pointer and a opt-out period to tell an actuator to actuate itself
US6489981B1 (en) * 2000-08-23 2002-12-03 International Business Machines Corporation Method, article of manufacture and apparatus for processing screen pointers in a display
US7533189B2 (en) * 2005-06-21 2009-05-12 Microsoft Corporation Enabling a graphical window modification command to be applied to a remotely generated graphical window
CN100397320C (zh) 2006-07-31 2008-06-25 华为技术有限公司 一种kvm切换***及其鼠标同步方法
JP5127366B2 (ja) * 2007-08-29 2013-01-23 富士通コンポーネント株式会社 情報処理装置、kvmスイッチ、サーバ及び制御プログラム
JP5008007B2 (ja) 2007-11-21 2012-08-22 富士通コンポーネント株式会社 情報処理装置、遠隔システム、プログラム及びコンピュータ読み取り可能な記録媒体
KR101400230B1 (ko) * 2008-03-11 2014-05-28 삼성전자주식회사 3차원 포인팅 입력장치 및 그 방법
CN101339473A (zh) 2008-08-26 2009-01-07 华为技术有限公司 一种鼠标的同步方法、***和服务器
CN101685354A (zh) 2008-09-26 2010-03-31 宏正自动科技股份有限公司 校准远程计算机光标对客户端计算机鼠标反应的方法及***
JP4960980B2 (ja) * 2009-02-27 2012-06-27 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム装置の制御方法及びプログラム
JP5274336B2 (ja) 2009-03-30 2013-08-28 株式会社富士通エフサス 遠隔作業工程管理システム
JP5263049B2 (ja) * 2009-07-21 2013-08-14 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
JP5737082B2 (ja) * 2011-08-31 2015-06-17 富士通株式会社 ポインタ位置補正方法、ポインタ位置補正プログラムおよびサーバ装置
KR20130037741A (ko) * 2011-10-07 2013-04-17 현대자동차주식회사 연료전지용 전극 및 이를 이용한 막-전극 어셈블리 제조 방법
CN102591493B (zh) 2011-12-30 2014-12-24 浙江海康科技有限公司 一种用于ipkvm***的鼠标光标同步方法
EP2902894B1 (en) * 2012-08-28 2019-11-13 EIZO Corporation Display control method, computer program, display control device and image display system
JP2014050096A (ja) 2012-09-03 2014-03-17 Ace:Kk 遠隔監視・制御システム
EP2770413A3 (en) * 2013-02-22 2017-01-04 Samsung Electronics Co., Ltd. An apparatus for providing a cursor in electronic devices and a method thereof
JP6280435B2 (ja) * 2014-04-28 2018-02-14 富士通コンポーネント株式会社 プログラム、中継装置及び情報処理装置

Also Published As

Publication number Publication date
EP2940558A1 (en) 2015-11-04
US10275112B2 (en) 2019-04-30
CN105045417A (zh) 2015-11-11
US20150309694A1 (en) 2015-10-29
JP2015210714A (ja) 2015-11-24
CN105045417B (zh) 2018-02-16
EP2940558B1 (en) 2018-10-24

Similar Documents

Publication Publication Date Title
JP6280435B2 (ja) プログラム、中継装置及び情報処理装置
US8310445B2 (en) Remote-control system, remote-control apparatus, apparatus to be controlled, remote-control method, computer program, and storage medium
JP5713551B2 (ja) 情報処理システム、情報処理装置、及びそれらの制御方法
US9880721B2 (en) Information processing device, non-transitory computer-readable recording medium storing an information processing program, and information processing method
JP2009146394A (ja) 情報処理装置、遠隔システム、プログラム及びコンピュータ読み取り可能な記録媒体
US20150264220A1 (en) Image forming system, image forming apparatus, portable terminal, and recording medium
US20160219170A1 (en) Image processing system, image processing device, terminal device and non-transitory readable recording medium
JP2013255123A (ja) 画像配信装置、表示装置及び画像配信システム
JP2017016314A (ja) 表示システム、情報処理装置、情報端末、及びプログラム
JP5695597B2 (ja) 画面表示装置及び画面表示システム
JP2016157156A (ja) 情報処理装置、情報処理システム、情報処理方法、及びプログラム
JP6576117B2 (ja) 投影装置、プログラム及び制御方法
US20140223380A1 (en) Image processing apparatus, method of controlling the same, and storage medium
JP6160194B2 (ja) 画像形成システム、外部端末およびプログラム
CN115225946B (zh) 显示控制方法以及显示***
WO2021039680A1 (ja) 情報処理システム及び情報処理方法
JP6034709B2 (ja) 端末装置、外部表示装置及び端末装置と外部表示装置とからなる情報システム
JP6191470B2 (ja) 画像処理システム、画像処理装置及び携帯端末装置
JP6118587B2 (ja) 表示装置、表示装置を有する監視システム、および表示制御プログラム
JP2017105146A (ja) 情報処理装置、情報処理システム、情報処理方法、プログラム及び機器
JP6954045B2 (ja) 画像処理システム、ユーザインタフェースの提供方法、およびコンピュータプログラム
JP6695530B1 (ja) 情報処理システム及び情報処理方法
JP5932475B2 (ja) 画像転送装置及びその制御方法
JP2019139679A (ja) 画像処理装置、画面取扱い方法、およびコンピュータプログラム
JP7085311B2 (ja) 情報処理装置、情報処理システム、情報処理方法、情報処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170324

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171213

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180119

R150 Certificate of patent or registration of utility model

Ref document number: 6280435

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250