(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6133424
(24)【登録日】2017年4月28日
(45)【発行日】2017年5月24日
(54)【発明の名称】コンピューティング装置を遠隔制御する方法及びシステム
(51)【国際特許分類】
G06F 3/14 20060101AFI20170515BHJP
【FI】
G06F3/14 380B
【請求項の数】18
【全頁数】14
(21)【出願番号】特願2015-527019(P2015-527019)
(86)(22)【出願日】2013年2月28日
(65)【公表番号】特表2015-529353(P2015-529353A)
(43)【公表日】2015年10月5日
(86)【国際出願番号】GB2013050488
(87)【国際公開番号】WO2014027173
(87)【国際公開日】20140220
【審査請求日】2016年1月6日
(31)【優先権主張番号】1214635.3
(32)【優先日】2012年8月16日
(33)【優先権主張国】GB
(73)【特許権者】
【識別番号】512269742
【氏名又は名称】リアル ヴィエヌシー リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ゲスト,スティーブン
(72)【発明者】
【氏名】リチャードソン,トリスタン ジェイ.
(72)【発明者】
【氏名】モーリー,ジェイソン バリー
【審査官】
野村 和史
(56)【参考文献】
【文献】
特表2011−520209(JP,A)
【文献】
特開2010−000195(JP,A)
【文献】
特開2009−054114(JP,A)
【文献】
特開2005−092447(JP,A)
【文献】
特開2000−099260(JP,A)
【文献】
特開平06−103013(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F3/01
3/033−3/039
3/048−3/0489
3/14−3/153
G09G5/00−5/36
5/377−5/42
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
第2のコンピューティング装置を制御する第1のコンピューティング装置であって、
プロセッサと、
ユーザに向けてデータを表示するディスプレイと、
ユーザからのポインタの移動を入力するためのポインタ入力サブシステムであって、前記ポインタは、ユーザが制御を入力するために前記ディスプレイに亘って移動可能である、ポインタ入力サブシステムと、
当該第1のコンピューティング装置を前記第2のコンピューティング装置と接続するデータ・リンクであって、前記第2のコンピューティング装置からの画像データが、前記データ・リンクを介して当該第1のコンピューティング装置で受け取られ、ユーザ制御が当該第1のコンピューティング装置から前記第2のコンピューティング装置に送られ、それにより、当該第1のコンピューティング装置は前記第2のコンピューティング装置を制御するデータ・リンクとを含み、
前記ディスプレイは、前記ディスプレイ上のウィンドウ内に前記第2のコンピューティング装置からの画像データを表示し、前記ウィンドウは前記ディスプレイよりも小さく、
前記プロセッサは、
前記ポインタが前記ウィンドウを離れたことを判定する機能と、
前記ポインタが前記ウィンドウを離れたことの判定に応じて、前記ウィンドウのエッジ上の交点を求める機能であって、前記交点は、前記ポインタが前記ウィンドウを離れた場所である機能と、
前記交点が、前記ウィンドウの最も近い隅部からの閾値距離内にあるか否かを判定する機能と、
前記交点が前記閾値距離内にあることの判定に応じて、前記ポインタが、前記最も近い隅部上に配置されている旨のメッセージを前記第2のコンピューティング装置に出力する機能と
を行うよう構成される、
第1のコンピューティング装置。
【請求項2】
当該第1のコンピューティング装置は前記ディスプレイ上の前記ポインタの場所を追跡するオペレーティング・システムを含み、前記プロセッサは、前記ポインタが前記ウィンドウを離れた旨のメッセージを前記オペレーティング・システムから受け取ることにより、前記ポインタが前記ウィンドウを離れたことを判定するよう構成される、請求項1に記載の第1のコンピューティング装置。
【請求項3】
前記プロセッサは、前記ポインタが前記ウィンドウを離れた前記場所を前記オペレーティング・システムから受け取ることにより、前記交点を求めるよう構成される、請求項2に記載の第1のコンピューティング装置。
【請求項4】
前記プロセッサは、
前記ディスプレイ上の前記ポインタの場所を受け取る機能と、
前記場所が前記ウィンドウ内にあるか否かを判定する機能と、
前記場所が前記ウィンドウ外にあることの判定に応じて、前記ポインタが以前、前記ディスプレイ内にあったか否かを判定する機能と、
前記ポインタが以前、前記ディスプレイ内にあったことの判定に応じて、前記ポインタが前記ウィンドウを離れたことを判定する機能と
を行うことにより、
前記ポインタが前記ウィンドウを離れたことを判定するよう構成される、
請求項1に記載の第1のコンピューティング装置。
【請求項5】
前記場所が前記ウィンドウ内にあることの判定に応じて、前記プロセッサは、前記場所が前記ウィンドウ内にある旨を示すためのフラグをセットし、前記ポインタの次の場所の受け取りを待つよう構成される、請求項4に記載の第1のコンピューティング装置。
【請求項6】
前記ポインタが以前、前記ディスプレイ内にあったか否かを判定する機能は、前記フラグがセットされているか否かを判定する機能を含む、請求項5に記載の第1のコンピューティング装置。
【請求項7】
前記プロセッサは、前記ウィンドウのどの境界が、前記受け取られた場所に最も近いかを判定し、前記最も近い境界の座標であるとして前記場所の一座標を設定することにより、前記交点を求めるよう構成される、請求項4乃至6のうちの何れか1項に記載の第1のコンピューティング装置。
【請求項8】
前記プロセッサは、前記ウィンドウ外にある前記受け取られた場所と、前記境界内の以前の場所との間を内挿することにより、前記交点を求めるよう構成される、請求項4乃至6のうちの何れか1項に記載の第1のコンピューティング装置。
【請求項9】
当該第1のコンピューティング装置は、前記ディスプレイ上の前記ポインタの前記場所を追跡し、前記ディスプレイ上の前記ポインタの前記場所を前記プロセッサに送るオペレーティング・システムを含む、請求項4乃至8のうちの何れか1項に記載の第1のコンピューティング装置。
【請求項10】
前記オペレーティング・システムは、前記ポインタを移動させる都度、前記ポインタの前記場所を備えるメッセージを送出する、請求項9に記載の第1のコンピューティング装置。
【請求項11】
前記交点が前記閾値距離外にあることの判定に応じて、前記プロセッサは、前記ポインタが前記交点に配置されている旨のメッセージを前記第2のコンピューティング装置に出力するよう構成される、請求項1乃至10のうちの何れか1項に記載の第1のコンピューティング装置。
【請求項12】
前記閾値距離は30画素である、請求項1乃至11のうちの何れか1項に記載の第1のコンピューティング装置。
【請求項13】
前記閾値距離は、前記ウィンドウの長さの4%及び幅の4%の小さい方である、請求項1乃至12のうちの何れか1項に記載の第1のコンピューティング装置。
【請求項14】
コンピューティング装置であって、前記閾値距離は1/4インチである、請求項1乃至13のうちの何れか1項に記載の第1のコンピューティング装置。
【請求項15】
前記プロセッサは前記閾値距離を定義するためのユーザ入力を受け取るよう構成される、請求項1乃至14のうちの何れか1項に記載の第1のコンピューティング装置。
【請求項16】
請求項1乃至15のうちの何れか1項に記載の前記第1のコンピューティング装置と、前記第1のコンピューティング装置に結合される第2のコンピューティング装置とを含む、システムであって、前記第2のコンピューティング装置は、最も近い隅部上に前記ポインタが配置されている旨の前記メッセージを受け取るとユーザ・インタフェースを起動させるよう構成される、システム。
【請求項17】
第1のコンピューティング装置を使用して第2のコンピューティング装置を制御する方法であって、
前記第1のコンピューティング装置のディスプレイ上のウィンドウ内に前記第2のコンピューティング装置からの画像データを表示する工程であって、前記ウィンドウは前記ディスプレイよりも小さい工程と、
前記ディスプレイにわたって移動可能なポインタが前記ウィンドウを離れたことを判定する工程と、
前記ポインタが前記ウィンドウを離れたことの判定に応じて、前記ウィンドウのエッジ上の交点を判定する工程であって、前記交点は、前記ポインタが前記ウィンドウを離れた場所である工程と、
前記交点が、前記ウィンドウの最も近い隅部からの閾値距離内にあるか否かを判定する工程と、
前記交点が前記閾値距離内にあることの判定に応じて、前記ポインタが、前記最も近い隅部上に配置されている旨のメッセージを前記第2のコンピューティング装置に出力する工程とを含む、
方法。
【請求項18】
プロセッサ上で実行されると請求項17に記載の工程を前記プロセッサに行わせるプロセッサ制御コードを収容する、担体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピューティング装置を遠隔制御し、かつ/又はビューする方法及びシステムに関する。
【背景技術】
【0002】
第1のコンピュータ装置(VNCビューア)上で実行されている仮想ネットワーク・コンピューティング(VNC)ビューア・アプリケーション及び第2のコンピュータ装置(VNCサーバ)上で実行されているVNCサーバ・アプリケーションを使用して第2のコンピュータ装置をビューし、制御するために第1のコンピュータ装置を使用することが知られている。第2のコンピュータ装置の表示の内容は、通常、第2のコンピュータから遠く離れた第1のコンピュータ装置上に複製される。第1のコンピュータ装置は、装置上の物理キーを押す工程、マウス・カーソルを移動させる工程、又はタッチ画面入力に接触する工程などのユーザ入力イベントを、制御されている第2のコンピュータ装置にユーザが送出することを可能にするインタフェース機構を有する。データ・リンクの形式、及びコンピュータ装置の性質が、使用されている状況に応じて変わり得るということが分かる。
【0003】
第1のコンピュータ装置は、遠隔制御機能を使用するサポート技術者が、第2のコンピュータ装置を使用する顧客に装置サポートを提供するためのものであり得る。会社の顧客が、そのコンピュータ装置の問題点に直面した場合、サポート技術者は、第1の装置を使用することにより、顧客の装置をビューし、又は顧客の装置と相互作用することにより、問題点について診断し、解決することが可能である。あるいは、サポート技術者は第1の装置を使用して、ユーザの装置上のソフトウェア又は他の設定をインストールし、又は更新し得る。あるいは、第1のコンピュータ装置は、ユーザが遠隔制御機能を使用して別のコンピュータ装置を制御するためのものであり得る。
【0004】
コンピュータ装置上で実行されているオペレーティング・システムは、ユーザがマウスを画面の特定の隅部(又はエッジ)に移動させることに依存することが知られている。例えば、マイクロソフト(商標登録)は、ウィンドウズ(商標登録)8のデスクトップ挙動においてモダン(Modern)UI「スタート・スクリーン(Start Screen)」を導入している。モダン(Modern)UI「スタート・スクリーン(Start Screen)」は、画面の左下隅部内をクリックすることによって起動され、その他の隅部及びエッジを、他のユーザ・インタフェースの目的で使用される。MacOS Xの最近のバージョンは更に、画面の隅部のうちの1つにカーソルが配置されると行われるカスタム動作をユーザが定義することを可能にする。画面のエッジにカーソルを移動させると、折りたたみ可能なドック/タスクバーを提供するオペレーティング・システム(OS)及びサードパーティー・アプリケーションが存在している。
【0005】
図1は、第1のコンピュータ装置(VNCビューアを実行させる局所デスクトップ)からのディスプレイのスクリーンショットを示す。第2のコンピュータ装置(VNCサーバを実行させる遠隔デスクトップ)からのディスプレイのビューを、第1のコンピュータ装置のフル・ディスプレイ内のウィンドウとして示す。前述のウィンドウは、VNCビューア・ウィンドウと呼び得る。よって、VNCビューアは、ユーザが、VNCビューア・ウィンドウを何ら違ったふうに扱うことなく、他の局所デスクトップ・ウィンドウを扱うことを可能にするので望ましい「ウィンドウ化された」モードにおいて使用される。
【発明の概要】
【発明が解決しようとする課題】
【0006】
図1は、前述の状況において生じる、遠隔制御機能の課題を示す。遠隔カーソル(すなわち、遠隔デスクトップ上のカーソル)は、局所カーソル(すなわち、局所デスクトップ上のカーソル)とアラインされた状態から始まる。ユーザは、遠隔ディスプレイ内の左下隅部のユーザ・インタフェースを移動させたく、よって、遠隔デスクトップ・ビューの隅部にほぼ、狙いを定めて、すばやい動作で局所カーソルをBに移動させる。ユーザが物理的に遠隔デスクトップにおいて作業していた場合、前述のすばやく、粗いやり方でマウスを左下に移動させることには、後の補正移動は必要でなく、所望のユーザ・インタフェースをトリガする。一般に、個々のすばやいマウスの移動はあまり正確でなく、ユーザは通常、精度を実現するためにマウスをゆっくりと移動させる時間を費やしたくない。ユーザが、遠隔デスクトップのウィンドウの隅部にマウスのカーソルの狙いを定めて、正確な精度を有する可能性は低い。
【0007】
しかし、
図1に示すように、前述の粗い移動により、所望のユーザ・インタフェースをトリガするのに、隅部に十分近い訳でない点Cにおいて遠隔カーソルが停止することになる。このことは、局所カーソル及び遠隔カーソルが、限られた速度でしか更新されないために生じる。例えば、マイクロソフト(登録商標)ウィンドウズ(商標登録)7の下で実行される通常のUSBマウスは、125Hzで更新される。よって、1680画素の幅のディスプレイの場合、ディスプレイにわたるすばやい移動は、約200msで実現することが可能である。これは、遠隔デスクトップが約70画素の間隔でカーソル更新を受け取ることを意味する。よって、局所デスクトップ上のマウス・カーソルは、遠隔マシンをユーザが制御しようとしている際に、遠隔デスクトップ・ディスプレイの所望の隅部/エッジに「定着」するものでない。その代わりに、ユーザは、遠隔デスクトップのビューの隅部/エッジ上に、非常に正確にマウスのカーソルを配置しなければならない。これは、特に、ユーザ・インタフェース機構の検出領域が非常に小さい場合、遅く、まどろっこしいことがあり得る。
【0008】
局所デスクトップ及び遠隔デスクトップの画面解像度、及びVNCビューアのディスプレイのスケーリング設定に応じてフル画面モードで生じ得る。通常、VNCビューア画面は、局所デスクトップの全体のディスプレイに及ぶことがなく、局所ディスプレイ上に「レターボックス化されている」とみなし得る。前述の状況では、ユーザは、遠隔デスクトップのディスプレイの隅部を当てようとすると、
図1に示すフラストレーションを経験する。局所デスクトップのディスプレイ全体にVNCビューア画面が完全に及ぶ場合にのみ、「隅部を当てる」という問題はなくなり、局所デスクトップ上でのユーザ体験は、物理的に遠隔デスクトップにおいて作業していることと非常に類似することになる。
【0009】
本願の出願人は、遠隔制御の向上に対する必要性を認識している。
【課題を解決するための手段】
【0010】
本発明の第1の局面によれば、遠隔コンピューティング装置を制御するための第1のコンピューティング装置が提供され、第1のコンピューティング装置は、
プロセッサと、
ユーザに向けてデータを表示するディスプレイと、
ユーザが制御を入力するためにディスプレイにわたって移動可能なポインタの形式のユーザ入力と、
第1のコンピューティング装置を遠隔コンピューティング装置と接続するデータ・リンクであって、遠隔コンピューティング装置からの画像データが、データ・リンクを介して第1のコンピューティング装置で受け取られ、ユーザ制御が第1のコンピューティング装置から遠隔コンピューティング装置に送られ、第1のコンピューティング装置は遠隔コンピューティング装置を制御するデータ・リンクとを備え、
ディスプレイは、ディスプレイ上のウィンドウ内に遠隔コンピューティング装置からの画像データを表示し、ウィンドウはディスプレイよりも小さく、
プロセッサは、
ポインタがウィンドウを離れたことを判定する機能と、
ポインタがウィンドウを離れたことの判定に応じて、ウィンドウのエッジ上の交点を求める機能であって、交点は、ポインタがウィンドウを離れた場所である機能と。
【0011】
交点が、ウィンドウの最も近い隅部からの閾値距離内にあるか否かを判定する機能と、
交点が閾値距離内にあることの判定に応じて、ポインタが、最も近い隅部上に配置されている旨のメッセージを遠隔コンピューティング装置に出力する機能とを行う
よう構成される。
【0012】
本発明の第2の局面によれば、第1のコンピューティング装置を使用して遠隔コンピューティング装置を制御する方法が提供され、方法は、
第1のコンピューティング装置のディスプレイ上のウィンドウ内に遠隔コンピューティング装置からの画像データを表示する工程であって、ウィンドウがディスプレイよりも小さい工程と、ディスプレイにわたって移動可能なポインタがウィンドウを離れたことを判定する工程と、
ポインタがウィンドウを離れたことの判定に応じて、ウィンドウのエッジ上の交点を判定する工程であって、上記交点は、ポインタがウィンドウを離れた場所である工程と、
交点が、ウィンドウの最も近い隅部からの閾値距離内にあるか否かを判定する工程と、
交点が閾値距離内にあることの判定に応じて、ポインタが、最も近い隅部上に配置されている旨のメッセージを遠隔コンピューティング装置に出力する工程とを含む。
【0013】
以下の構成は、方法及びシステムに適用される。
【0014】
第1の装置及び第2の装置(局所及び遠隔)は、何れかのコンピューティング端末(例えば、デスクトップ、PC、サーバ、及び(携帯電話機、PDA、ラップトップ、タブレット、及び同様な装置などの)ポータブル装置であり得る。遠隔とは、通常、2つの装置が互いに、物理的に離れていることを意味する。装置は、互いにかなりの距離だけ、離れて配置されていてもよく、(例えば、何れも車両内で)近くに配置されていてもよい。しかし、装置の一方又は両方が仮想マシンであることも考えられ、その場合、実行される対象の装置は同じ物理マシン上にある。第2の装置(遠隔装置)は、VNCサーバと呼び得る。第1の装置上(局所装置上)でビューする対象の情報を送出するからである。第1の装置はVNCビューアと呼び得る。前述の語は、明細書を通して同義で使用される。
【0015】
ポインタは、ディスプレイにわたって移動可能な何れかのユーザ入力であり、通常、これは、マウスの制御下にあるカーソルであるが、それに制限されるものでない。例えば、ディスプレイはタッチ感応型であり得、ポインタは画面上のユーザ・タッチであり得る。
【0016】
本発明では、ポインタの場所は、ウィンドウの外に移動する場合、特定の場所まで強いられるに過ぎない。よって、ユーザが最初にウィンドウにクリックする際にポインタを捕捉し、ウィンドウに制限されるようにポインタの移動を積極的に監視する必要性は存在しない。よって、ポインタは、第1のコンピューティング装置のディスプレイ全体にわたってその通常のやり方で挙動することが可能になる。このことは、別々のソフトウェアを有するユーザに対して問題をもたらすリスクを軽減する。ユーザがポインタをリリースするために、別のアイコン又は機構(例えば、キーの組み合わせ、数秒の間、ウィンドウのエッジに対して把持すること、ウィンドウのエッジに対するダブル・バウンス)を含める必要性も存在しない。よって、ユーザ体験は遅くならない。本発明は更に、ウィンドウ内の遠隔コンピューティング装置のビューの修正を何ら必要としない(すなわち、ウィンドウのエッジ/隅部に当たるうえでの精度の低下を考慮するための境界又はバッファ・ゾーンは必要でない。)
上記背景部分で説明したように、遠隔コンピューティング装置をビューするウィンドウを何ら違ったふうに扱うことなく、ユーザが他の局所デスクトップ・ウィンドウを扱うことを可能にするため、「ウィンドウ化された」モードにおいてコンピューティング装置を使用することが望ましい。前述の実施例では、「ウィンドウ」の語は、周知の専門用語である。上記背景部分は、遠隔コンピューティング装置のディスプレイが、フル画面モードで動作していても第1のコンピューティング装置のディスプレイ全体に及ばないことがあり得ることを明確にしている。前述の実施例では、遠隔コンピューティング装置のディスプレイは更に、第1のコンピューティング装置のディスプレイ上のウィンドウ内にあるとみなされる。よって、本発明のコンテキストにおけるウィンドウは単に、ディスプレイのフル領域よりも小さい、ディスプレイ上の領域であり、ディスプレイの最も近いエッジと離間した少なくとも1つの境界(エッジ)を有する。前述の領域は通常、矩形であるが、第1のコンピューティング装置によってサポートされる場合、他の形状を使用することが可能である。
【0017】
前述の第1のコンピューティング装置は、ディスプレイ上のポインタの場所を追跡するオペレーティング・システムを含み得る。オペレーティング・システムは、ディスプレイ上のポインタの場所に関する定期的な更新をプロセッサに提供し得る。あるいは、オペレーティング・システムは、ポインタをユーザによって移動させる限り、更新を提供し得る。オペレーティング・システムは、ポインタがウィンドウを離れる時点を判定することができ、よって、ポインタがウィンドウを離れる都度、メッセージを生成し得る。更に、オペレーティング・システムは、交点の位置も提供し得る。よって、前述の実施例では、プロセッサは、ポインタがウィンドウを離れた旨のメッセージをオペレーティング・システムから受け取ることにより、ポインタがウィンドウを離れたことを判定するよう構成し得る。同様に、プロセッサは、ポインタがウィンドウを離れた場所をオペレーティング・システムから受け取ることにより、交点を求めるよう構成し得る。
【0018】
オペレーティング・システムがないか、又は、オペレーティング・システムが、(例えば、フル画面モードで動作している場合に)ポインタがウィンドウを離れる時点を判定することが可能でない実施例が存在し得る。前述の実施例では、プロセッサは、ポインタがウィンドウを離れた旨の、オペレーティング・システムからのメッセージを合成するよう構成し得る。例えば、プロセッサは、ディスプレイ上のポインタの場所を受け取り、上記場所がウィンドウ内にあるか否かを判定するよう構成し得る。受け取られた場所がウィンドウ外にあると判定された場合、プロセッサは、ポインタが以前、ディスプレイ内にあったか否かを判定し、ポインタが以前、ディスプレイ内にあったことの判定に応じて、ポインタがウィンドウを離れたことを判定するよう構成し得る。
【0019】
ポインタが以前、ディスプレイ内にあったか否かの判定は、ブール値を記憶することによって実現し得る。例えば、受け取られた場所がウィンドウ内にあると判定された場合、ブール値を真に設定して、上記場所がウィンドウ内にある旨を示し得る。プロセッサは次いで、ポインタの次の場所の受け取りを待つよう構成し得る。すなわち、プロセッサは、開始時にループバックする。受け取られた場所がウィンドウ外にあると判定された場合、プロセッサは、ポインタが以前、ディスプレイ内にあったか否かを、ブール値が設定されているか否かを判定することによって判定するよう構成し得る。ブール値が設定されている場合、以前の場所はウィンドウ内であり得、よって、ポインタが直前にウィンドウを離れており、よって、プロセッサは効果的に「ウィンドウを離れた」とのメッセージを生成する。しかし、ブール値が設定されていない場合、以前の場所は更に、ウィンドウ外であり、よって、ポインタは、先行するイベントにおいてウィンドウを離れている。前述の状態では、プロセッサは、次いで、開始にループバックし、ポインタの次の場所の受け取りを待つよう構成し得る。
【0020】
ポインタが直前にウィンドウを離れたことをプロセッサが判定する場合、プロセッサは次いで、交点を判定し得る。これは、ウィンドウのどの境界が、受け取られた場所に最も近いかを判定し、場所の一座標を、最も近い境界の座標であるように設定することによって行い得る。あるいは、これは、ウィンドウ外の受け取られた場所と、境界内の先行する場所との間で補間することによって行い得る。この方法では、交点は、補間線が境界と交差する点である。
【0021】
閾値距離は、寸法のパーセンテージ(例えば、ディスプレイ、若しくはディスプレイ内のウィンドウの幅/長さの4%)、又は、距離値(例えば、1/4インチ(2.5cm))として表し得る。あるいは、閾値距離は画素(例えば、30画素又は24画素)で提供し得る。閾値は、ウィンドウを表示したディスプレイによって通知されたインチ毎画素/ドット(DPI)を検査することによって設定し得る。DPIは、閾値として使用する対象の画素数を算出するために使用し得る。例えば、1/4インチは、適切なサイズの標的であり、96DPIの通常のディスプレイの場合、これは、24画素という閾値をもたらす。この方法は、最新のマックブック(MacBook)上に存在している、非常に高いDPIを有するディスプレイ(例えば、220DPIの「レティナ(Retina)」ディスプレイ)上の、当てるのが容易な標的を提供する。前述の装置の場合の画素数が固定であることにより、前述のディスプレイ上に当てる対象の物理標的はずっと小さくなる。閾値はユーザ構成可能であり得、例えば、プロセッサは、閾値距離を定義するためにユーザ入力を受け取るよう構成し得る。
【0022】
交点が閾値距離外にあると判定された場合、プロセッサは、ポインタが交点に配置されている旨のメッセージを遠隔コンピューティング装置に出力するよう構成し得る。このようにして、遠隔コンピューティング装置上のポインタは、局所ポインタをウィンドウ外に移動させた場合にディスプレイ遠隔コンピューティング装置のエッジに配置される。これは、エッジベースのユーザ・インタフェース・エレメントを起動させ得る。
【0023】
本発明の別の局面によれば、上述したような第1のコンピューティング装置、及び第1のコンピューティングに結合された遠隔コンピューティング装置を備えるシステムが提供され、遠隔コンピューティング装置は、最も近い隅部上にポインタが配置されている旨のメッセージを遠隔コンピューティング装置が受け取ると、ユーザ・インタフェースを起動させるよう構成される。
【0024】
本発明は更に、(例えば汎用コンピュータ・システム上、又はディジタル信号プロセッサ(DSP)上に)上記システム及び方法を実現するためのプロセッサ制御コードを提供する。コードは、不揮発性メモリ(例えば、フラッシュ)又はリードオンリ・メモリ(ファームウェア)などのプログラムされたメモリ上、ディスク上、CD−ROM上、又はDVD−ROM上などの担体上に提供し得る。本発明の実施例を実現するためのコード(及び/又はデータ)は、アセンブラ・コード、又はCなどの(解釈又はコンパイルされた)通常のプログラミング言語におけるソース・・コード、オブジェクト・コード、又は実行可能なコードを含み得る。当業者が認識するように、前述のコード及び/又はデータは、互いに通信し合う結合された複数の構成部分間で分散させ得る。
【図面の簡単な説明】
【0025】
【
図1】第2のコンピュータ装置(遠隔デスクトップ)のディスプレイを示すウィンドウと、第1のコンピュータ装置(局所デスクトップ)上のディスプレイからのスクリーンショットを示す概略図である。
【
図2】システムの構成部分を示す概略ブロック図である。
【
図3a】
図2のシステムを制御する方法を示すフローチャートである。
【
図3b】
図3aに表すようにカーソル移動が補正された
図1のスクリーンショットを示す概略図である。
【
図4】第2のコンピュータ装置のディスプレイを示すウィンドウであって、標的領域を有するウィンドウ、及び、第1のコンピュータ装置上のディスプレイからのスクリーンショットの概略図である。
【
図5】「カーソルがウィンドウを離れた」を合成して、
図3bの方法をトリガする方法を示すフローチャートである。
【発明を実施するための形態】
【0026】
本発明は、添付図面において例として模式的に図示する。
【実施例】
【0027】
図2は、第2のコンピュータ装置(遠隔装置)30にネットワーク接続24を介して接続された第1のコンピュータ装置(局所装置)10を備える遠隔制御システムの構成部分を示す。局所デスクトップ10は、プロセッサ12と、オペレーティング・システム16と、ポインタ入力サブシステム18と、ディスプレイ・サブシステム20と、ネットワーク接続に接続されたネットワーキング・サブシステム22とを備える。遠隔装置30は、プロセッサ32と、ポインタ入力サブシステム36と、ポインタ位置認識器38と、ディスプレイ・サブシステム40と、ネットワーク接続に接続されたネットワーキング・サブシステム42とを備える。VNCサーバ・アプリケーション34は、ディスプレイ・サブシステム40の画像を捕捉し、局所装置に(データ・リンクとも呼ばれる)ネットワーク接続ネットワーキング・サブシステムを介して送出するために遠隔装置上で実行される。よって、遠隔装置はVNCサーバと呼び得る。対応するVNCビューア・アプリケーション14が、ネットワーキング・サブシステム22を介してディスプレイの画像を受け取り、局所ディスプレイ・サブシステム20上に出力するために局所装置プロセッサ12上で実行され、よって、局所装置はVNCビューアと呼び得る。
【0028】
局所装置は、ユーザからのカーソル(ポインタ)移動を入力するためのポインタ入力サブシステム18を備える。以下に更に詳細に説明するために、局所装置上のカーソル移動は、遠隔装置のディスプレイ上のカーソル移動をトリガすることが可能であり得る。ポインタ・インジェクション・サブシステム36及びオペレーティング・システム・ポインタ位置認識器サブシステム38は遠隔装置のVNCサーバ・アプリケーションとともに、遠隔装置上のイベントに、前述のカーソル移動を変換する。
【0029】
図3a及び
図3bは、
図2に示すシステム上で実行される
図1に示す課題に対する本願提案の解決策を示す。
図3bに示すように、局所カーソルはAからBに移動する(これは、
図3aの開始工程を表す)。
図3aにおける次の工程では、「Dにおいてカーソルがウィンドウを離れた」メッセージを受け取る。局所装置10が「ウィンドウ化された」モードでVNCビューア・アプリケーション14を実行している場合(すなわち、遠隔装置30からのディスプレイが、局所装置10のディスプレイ上のVNCビューア・ウィンドウ内に示される場合)、オペレーティング・システム16は、カーソルがVNCビューア・ウィンドウを離れると局所装置のプロセッサ12に通知を提供する。前述の通知は更に、カーソルがウィンドウを離れた点(
図3bに示す位置D)の(局所)座標も提供する。前述の通知はよって、VNCビューア・ウィンドウのエッジ、及び位置Aと位置Bとの間の線の交点を提供する。
【0030】
背景部分で説明したように、VNCビューア・アプリケーションは更に、局所装置上で「フル画面」モードで実行され得る。一部の場合には、VNCビューア・ウィンドウは、局所装置のディスプレイ全体に及ぶ。しかし、一部の場合には、VNCビューア・ウィンドウはディスプレイ全体に及ぶ訳でない(例えば、遠隔装置ディスプレイのビューが縮小された場合、又は、遠隔装置ディスプレイのビューが、局所装置の解像度と遠隔装置の解像度との間の差により、「レターボックス化されており」、よって、遠隔装置ディスプレイのビュー周りに黒色の「境界ゾーン」が存在している場合)。フル画面モードで動作している場合、局所装置のオペレーティング・システムは、VNCビューア・ウィンドウを、局所装置のディスプレイ全体とみなす。よって、オペレーティング・システムは、ユーザが局所カーソルをVNCビューア・ウィンドウ外に移動させた際に「カーソルがウィンドウを離れた」メッセージを生成しない。この場合、
図5を参照して説明したような「カーソルがウィンドウを離れた」メッセージを合成する必要がある。
【0031】
図3aに戻るに、「カーソルがウィンドウを離れた」が局所装置プロセッサ12で受け取られた場合の次の工程は、交点(D)が隅部の特定の範囲内に存在しているか否かを検査する。隅部の点は、
図3bにおいて位置Fとして示す。よって、局所装置プロセッサ12は、線DEの長さが、閾値よりも短いか、又は長いかを検査し得る。交点が範囲内にある場合、遠隔カーソルの場所は、VNCポインタ・イベント・メッセージを介して実際の隅部の点に「スナップされる(snapped)」。あるいは、交点が範囲外である場合、交点(D)に遠隔カーソルの場所を位置付けるVNCポインタ・イベント・メッセージが、局所装置ネットワーキング・サブシステム22及びネットワーク接続24を介して局所装置プロセッサ12から送出される。前述のメッセージは、遠隔装置30によって受け取られ、遠隔装置のオペレーティング・システム・ポインタ認識器サブシステム38は前述の場所を処理して、遠隔センサの場所を移動させる。遠隔カーソルの場所は、適宜、イベントをトリガするポインタ・インジェクション・システム36によって受け取られる。例えば、場所が隅部にスナップされた場合、隅部のユーザ・インタフェースがトリガされる。
【0032】
検査工程の範囲は局所マシン画素で規定し得、デフォールト閾値(例えば、30画素)に設定し得る。閾値は更に、局所画面の高さ/幅のパーセンテージであり得る。閾値は更に、別々のサーバ接続について、異なる設定を有し得る。閾値は、ユ―ザ構成可能であり得、ユーザ選好に合うように、VNCビューア・オプション・ダイアログを介して調節することが可能である。更に、この全体の新たな挙動は、何らかの理由で既存の挙動の維持を望むユーザのために、「範囲」値を0に設定することによってディセーブルすることが可能である。
【0033】
本願提案の解決策は、よって、局所カーソルを外に移動させると遠隔デスクトップ・ビューのエッジに遠隔カ―ソルが常に配置され、それにより、エッジベースのユーザ・インタフェース・エレメントを起動させることがずっと容易になることを確実にする。更に、ユーザには、次いで、隅部ベースのユーザ・インタフェース・エレメントをトリガするために隅部に狙いを定める場合の、特定の量の(調節可能な)許容範囲が与えられる。
【0034】
一般に、ポップアップ・ユーザ・インタフェース・エレメントは、起動させると、カーソル場所に関して特定の度合いのヒステリシスを有する。すなわち、隅部/エッジが当たり、ユーザ・インタフェースがフェードイン/スライドインすると、ユーザ・インタフェース・エレメントのフェード・アウェイ/スライド・アウェイを再び行うために、隅部/エッジから離れて、デスクトップの中心に向かう、より大きな移動が必要である。例えば、カーソルが、左下隅部から約5画素内にカーソルがある場合に、ウィンドウズ(登録商標)8リリース・プレビュー「スタート・タイル」ユーザ・インタフェース・エレメントがポップアップするが、一旦現れると、ユーザは、UIエレメントが再び隠れるまで、約25画素分、離れた所まで移動することが可能である。
【0035】
上述のように、マウス・カーソルは、局所装置のディスプレイ上の場所Bで終了している。
図4に示す例では、隅部のユーザ・インタフェース・エレメントは、場所Bへの移動によってトリガされている。ユーザ・インタフェース・エレメントがトリガされると、ユーザは通常、ユーザ・インタフェース・エレメントの適切な部分上をクリックしてイベント(例えば、新たなアプリケーションを開く)をトリガする。よって、ユーザは、VNCビューア・ウィンドウ外の場所Bからマウス・カーソルを、ポップアップ・ユーザ・インタフェース・エレメントに戻す必要がある。
図4に示すように、ユーザ・インタフェース・エレメントは、移動する際に、狙いを定める対象の極めて大きな「標的領域」を表し、これにより、関連するユーザ・インタフェース・エレメントをクリックすることがずっと容易になる。標的領域の大きさは、
図3aの閾値/閾値範囲で表す領域の大きさの3倍、4倍、又は5倍であり得る。
【0036】
上述の通り、VNCビューアを「フル画面」モードで実行させる場合、VNCビューア・ウィンドウは、局所装置のオペレーティング・システムに関する限り、実際には、画面全体である。よって、「カーソルがウィンドウを離れた」メッセージは、ユーザが、VNCビューア・ウィンドウ外に局所カーソルを移動させる場合にはトリガされない。「フル画面」という語にもかかわらず、VNCビューア・ウィンドウが局所装置のディスプレイ全体に及ばない場合が存在する。例えば、遠隔装置の解像度が局所装置の解像度よりも低い場合、異なるアスペクト比を有するディスプレイを装置が有する場合、又は、VNCビューアにおけるスケーリング・オプションを適用することにより、ユーザがVNCビューア・ウィンドウを小さくした場合、このことが考えられる。それぞれの場合では、遠隔デスクトップ・ビュー外の画素領域が存在する。VNCビューアは前述のものを黒色にする。
図5は、代わりに「カーソルが移動した」旨のメッセージを受け取ることにより、この場合における「カーソルがウィンドウを離れた」メッセージを再生するために使用し得るアルゴリズムを示す。
【0037】
第1の工程S502では、局所カーソルが、VNCビューア・ウィンドウ内に実際に配置されているか否かに応じて、「ウィンドウ内カーソル」フラグを真又は偽に初期化する。例えば、これは、コールを介してカーソル位置をオペレーティング・システムに問い合わせ、カーソル位置が、VNCビューア・ウィンドウを画定する境界内にあるか否かを判定することによって判定することが可能である。次の工程S504では、局所装置オペレーティング・システムからの「カーソルが移動した」メッセージを待つ。工程S506に示すように、「カーソルが(X,Y)(局所座標)に移動した」旨のメッセージをオペレーティング・システムから受け取っている。システムは次いで、工程S508において、座標(X,Y)がVNCビューア・ウィンドウ内に(すなわち、遠隔デスクトップ・ビュー内に)あるか否かをみるために検査する。肯定の場合、「ウィンドウ内カーソル」フラグが真にセットされ、システムは、工程S504にループバックして、次の「カーソルが移動した」メッセージを待つ。
【0038】
座標(X,Y)が境界内にない場合、次の工程S512では、「ウィンドウ内カーソル」フラグが現在、真にセットされているか否かを検査する。肯定の場合、この最新のカーソル移動は、遠隔デスクトップ・ビュー外にカーソルを出していることが分かり、「カーソルがウィンドウを離れた」イベントを合成する必要がある。
図5は、単純な手法を使用して、「カーソルがウィンドウを離れた」イベントの座標を生成する一実現形態を示す。工程S514では、局所座標(X,Y)は、VNCビューア・ウィンドウの境界毎にx,y座標値と値X及びYを比較し、どのエッジが最も近いかを判定することにより、VNCビューア・ウィンドウの最も近いエッジに固定される。座標は次いで、(X’,Y’)にセットされ、X’又はY’の一方は最も近い境界の値を表し、他方の座標は、局所座標の元の値を表す。例えば、VNCビューア・ウィンドウの左側の垂直境界及び下の水平境界が、座標(2,10)を有する位置についてx=0及びy=0それぞれの値を有する場合、左側の垂直境界は明らかに最も近く、よって、新たな位置は(0,10)である。次の工程S516では、新たな座標(X’,Y’)を使用して「カーソルがウィンドウを離れた」を合成する。「カーソルがウィンドウを離れた」フラグもクリアされ(すなわち、工程S518で、偽にセットされ)、システムは工程S504にループバックして、次の「カーソルが移動した」メッセージを待つ。「カーソルがウィンドウを離れた」メッセージは
図3aの「カーソルがウィンドウを離れたカーソルがウィンドウを離れた」メッセージと同等であり、システムは次いで、上記主アルゴリズムに進む。
【0039】
工程S514の代替として、工程S510で「ウィンドウ内カーソル」フラグが真にセットされる都度、システムは更に、カーソルの座標を記憶する。よって、工程S512で、「ウィンドウ内カーソル」フラグが真にセットされているとシステムが判定した場合、記憶されている最後の組の座標(すなわち、カーソルがVNCビューア・ウィンドウ内にあった際の最後の組の座標)、及びVNCビュー・ウィンドウ外の座標の最新の組の座標から、新たな位置(X’,Y’)を求めることが可能である。新たな座標は、前述の2つの座標間を内挿し、VNCビューア・ウィンドウのエッジ、及び2つの座標を結合する線の交点を求めることによって求められる。
【0040】
他の多くの効果的な代替策を当業者が思いつくことに疑いの余地はない。本発明は、上記実施例に制限されず、特許請求の範囲記載の趣旨及び範囲内にある、当業者に明らかな修正を包含する。