(57)【要約】【課題】マルチモニタ環境でのウィンドウ処理の利用効率を上げることが可能な情報処理装置、そのウィンドウ表示方法、およびコンピュータが実行可能なプログラムを提供することを目的とする。 【解決手段】マルチモニタシステム１のＣＰＵ処理負荷設定手段２は、対象ウィンドウがアクティブウィンドウの存在するモニタ上にある場合、または、第１のモニタ上にある場合には、対象ウィンドウに対するＣＰＵ処理負荷を高く設定し、対象ウィンドウがアクティブウィンドウの存在するモニタ上にない場合、または、第１のモニタ上にない場合には、対象ウィンドウに対するＣＰＵ処理負荷を低く設定する。【選択図】        図１
2010067173.tif 000002
【特許請求の範囲】
【請求項１】
マルチモニタ機能、マルチウィンドウ機能、およびマルチタスク機能を備えた情報処理装置において、
複数のモニタに表示されるウィンドウの処理に対するＣＰＵ処理負荷を設定するＣＰＵ処理負荷設定手段を備え、
前記ＣＰＵ処理負荷設定手段は、
対象ウィンドウが、アクティブウィンドウの存在するモニタ上にあるか否か、または、第１のモニタ上にあるか否かに基づいて、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を設定し、
前記対象ウィンドウが、アクティブウィンドウの存在するモニタ上にある場合、または、第１のモニタ上にある場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を高く設定し、
前記対象ウィンドウが、アクティブウィンドウの存在するモニタ上にない場合、または、第１のモニタ上にない場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を低く設定することを特徴とする情報処理装置。
【請求項２】
前記ＣＰＵ処理負荷設定手段は、
ウィンドウの生成または移動を検出するウィンドウ検出手段と、
前記ウィンドウ検出手段でウィンドウの生成または移動が検出された場合に、アクティブウィンドウの情報を取得するアクティブウィンドウ検出手段と、
前記検出されたウィンドウが、アクティブウィンドウの存在するモニタ上にあるか否かを判断する判断手段と、
前記検出されたウィンドウが、アクティブウィンドウの存在するモニタ上にあると判断された場合には、当該検出されたウィンドウの処理に対するＣＰＵ処理負荷を高く設定し、前記検出されたウィンドウが、アクティブウィンドウの存在するモニタ上にないと判断された場合には、当該検出されたウィンドウの処理に対するＣＰＵ処理負荷を低く設定する処理負荷設定手段と、
を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ＣＰＵ処理負荷設定手段は、
ウィンドウの生成または移動を検出するウィンドウ検出手段と、
前記ウィンドウ検出手段で生成または移動が検出されたウィンドウが第１のモニタ上に存在するか否かを判断する判断手段と、
前記検出されたウィンドウが第１のモニタ上にあると判断された場合は、当該ウィンドウの処理に対するＣＰＵ処理負荷を高く設定し、前記検出されたウィンドウが第１のモニタ上にないと判断された場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を低く設定する処理負荷設定手段と、
を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記ＣＰＵ処理負荷は、前記対象ウィンドウのプロセスの優先度、当該プロセスに含まれるスレッドの優先度、当該プロセスに含まれるスレッドの実行状態、または割り当てるＣＰＵのコア数で規定されることを特徴とする請求項１〜請求項３のいずれか１つに記載の情報処理装置。
【請求項５】
マルチモニタ機能、マルチウィンドウ機能、およびマルチタスク機能を備えた情報処理装置のウィンドウ処理方法において、
前記複数のモニタに表示されるウィンドウの処理に対するＣＰＵ処理負荷を設定するＣＰＵ処理負荷設定工程を含み、
前記ＣＰＵ処理負荷設定工程では、
対象ウィンドウが、アクティブウィンドウの存在するモニタ上にあるか否か、または、第１のモニタ上にあるか否かに基づいて、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を設定し、
前記対象ウィンドウが、アクティブウィンドウが存在するモニタ上にある場合、または、第１のモニタ上にある場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を高く設定し、
前記対象ウィンドウが、アクティブウィンドウの存在するモニタ上にない場合、または、第１のモニタ上にない場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を低く設定することを特徴とする情報処理装置のウィンドウ処理方法。
【請求項６】
マルチモニタ機能、マルチウィンドウ機能、およびマルチタスク機能を備えた情報処理装置に搭載されるプログラムにおいて、
コンピュータに、
前記複数のモニタに表示されるウィンドウの処理に対するＣＰＵ処理負荷を設定するＣＰＵ処理負荷設定工程を実行させ、
前記ＣＰＵ処理負荷設定工程では、
対象ウィンドウが、アクティブウィンドウの存在するモニタ上にあるか否か、または、第１のモニタ上にあるか否かに基づいて、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を設定し、
前記対象ウィンドウが、アクティブウィンドウの存在するモニタ上にある場合、または、第１のモニタ上にある場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を高く設定し、
前記対象ウィンドウが、アクティブウィンドウの存在するモニタ上にない場合、または、第１のモニタ上にない場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を低く設定することを特徴とするコンピュータが実行可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、そのウィンドウ処理方法、およびコンピュータが実行可能なプログラムに関し、詳細には、複数のモニタでマルチモニタ環境を実現する情報処理装置、そのウィンドウ処理方法、およびコンピュータが実行可能なプログラムに関する。 
【背景技術】
【０００２】
パーソナルコンピュータやワークステーションなどの情報処理装置では、複数の動作を同時に実行するマルチタスク処理システムが採用されて利用効率の向上が図られている。例えば、複数のプログラムが予め定められる順序で入換わりながら、各プログラムに与えられた所定時間内に一定数の命令が実行される。また、プログラムがマイクロプロセッサ内にロードされる前に優先度が与えられ、優先度の最も高い第１プログラムが連続的に実行され、周辺装置などからのデータ待ちなどで第１プログラムの実行が中断されたときに、次ぎの優先度の第２プログラムが実行される。
【０００３】
また、情報処理装置では、マルチウィンドウシステムが採用されている。すなわち、接続された表示装置の１画面には互いに独立した画像処理領域であるウィンドウが表示され、該ウィンドウは独立したタスク処理を行い、互いに重畳して表示することが可能である。
【０００４】
マルチウィンドウのマルチタスク処理の利用効率を上げるための技術として、例えば、下記特許文献１が公知である。
【０００５】
特許文献１では、ウィンドウの処理の実行の優先度を表示画面に表示されたウィンドウの重畳順位、画面の中心からウィンドウの中心までの距離、およびウィンドウの大きさなどによって設定し、設定された優先度に応じて、各ウィンドウの処理時間を割振って各ウィンドウから要求された処理を時分割的に実行する技術が開示されている。
【０００６】
ところで、マイクロソフト社が提供するウィンドウズ（Ｒ）システムでは、１台のコンピュータに２台以上のモニタを接続し、あたかも１台の大きなモニタであるかのように表示させることができる「マルチモニタ（マルチディスプレイ）」と呼ばれる機能がある。
従来、マルチモニタシステムにおける各モニタ間でのウィンドウ処理の利用効率を向上させる方法に関しては、何等検討されていない。
【０００７】
【特許文献１】特開平１０−１５４０６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、上記に鑑みてなされたものであり、マルチモニタ環境でのウィンドウ処理の利用効率を上げることが可能な情報処理装置、そのウィンドウ表示方法、およびコンピュータが実行可能なプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、マルチモニタ機能、マルチウィンドウ機能、およびマルチタスク機能を備えた情報処理装置において、複数のモニタに表示されるウィンドウの処理に対するＣＰＵ処理負荷を設定するＣＰＵ処理負荷設定手段を備え、前記ＣＰＵ処理負荷設定手段は、対象ウィンドウが、アクティブウィンドウの存在するモニタ上にあるか否か、または、第１のモニタ上にあるか否かに基づいて、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を設定し、前記対象ウィンドウが、アクティブウィンドウが存在するモニタ上にある場合、または、第１のモニタ上にある場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を高く設定し、前記対象ウィンドウが、アクティブウィンドウが存在するモニタ上にない場合、または、第１のモニタ上にない場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を低く設定することを特徴とする。
【００１０】
また、本発明の好ましい態様によれば、前記ＣＰＵ処理負荷設定手段は、ウィンドウの生成または移動を検出するウィンドウ検出手段と、前記ウィンドウ検出手段でウィンドウの生成または移動が検出された場合に、アクティブウィンドウの情報を取得するアクティブウィンドウ検出手段と、前記検出されたウィンドウが、アクティブウィンドウの存在するモニタ上にあるか否かを判断する判断手段と、前記検出されたウィンドウが、アクティブウィンドウの存在するモニタ上にあると判断された場合には、当該検出されたウィンドウの処理に対するＣＰＵ処理負荷を高く設定し、前記検出されたウィンドウが、アクティブウィンドウの存在するモニタ上にないと判断された場合には、当該検出されたウィンドウの処理に対するＣＰＵ処理負荷を低く設定する処理負荷設定手段と、を含むことが望ましい。
【００１１】
また、本発明の好ましい態様によれば、前記ＣＰＵ処理負荷設定手段は、ウィンドウの生成または移動を検出するウィンドウ検出手段と、前記ウィンドウ検出手段で生成または移動が検出されたウィンドウが第１のモニタ上に存在するか否かを判断する判断手段と、
前記検出されたウィンドウが第１のモニタ上にあると判断された場合は、当該ウィンドウの処理に対するＣＰＵ処理負荷を高く設定し、前記検出されたウィンドウが第１のモニタ上にないと判断された場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を低く設定する処理負荷設定手段と、を含むことが望ましい。
【００１２】
また、本発明の好ましい態様によれば、前記ＣＰＵ処理負荷は、前記対象ウィンドウのプロセスの優先度、当該プロセスに含まれるスレッドの優先度、当該プロセスに含まれるスレッドの実行状態、または割り当てるＣＰＵのコア数で規定されることが望ましい。
【００１３】
また、上述した課題を解決し、目的を達成するために、本発明は、マルチモニタ機能、マルチウィンドウ機能、およびマルチタスク機能を備えた情報処理装置のウィンドウ処理方法において、前記複数のモニタに表示されるウィンドウの処理に対するＣＰＵ処理負荷を設定するＣＰＵ処理負荷設定工程を含み、前記ＣＰＵ処理負荷設定工程では、対象ウィンドウが、アクティブウィンドウの存在するモニタ上にあるか否か、または、第１のモニタ上にあるか否かに基づいて、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を設定し、前記対象ウィンドウが、アクティブウィンドウが存在するモニタ上にある場合、または、第１のモニタ上にある場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を高く設定し、前記対象ウィンドウがアクティブウィンドウが存在するモニタ上にない場合、または、第１のモニタ上にない場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を低く設定することを特徴とする。
【００１４】
また、上述した課題を解決し、目的を達成するために、本発明は、マルチモニタ機能、マルチウィンドウ機能、およびマルチタスク機能を備えた情報処理装置に搭載されるプログラムにおいて、コンピュータに、前記複数のモニタに表示されるウィンドウの処理に対するＣＰＵ処理負荷を設定するＣＰＵ処理負荷設定工程を実行させ、前記ＣＰＵ処理負荷設定工程では、対象ウィンドウが、アクティブウィンドウの存在するモニタ上にあるか否か、または、第１のモニタ上にあるか否かに基づいて、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を設定し、前記対象ウィンドウが、アクティブウィンドウが存在するモニタ上にある場合、または、第１のモニタ上にある場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を高く設定し、前記対象ウィンドウが、アクティブウィンドウが存在するモニタ上にない場合、または、第１のモニタ上にない場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を低く設定することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、マルチモニタ機能、マルチウィンドウ機能、およびマルチタスク機能を備えた情報処理装置において、複数のモニタに表示されるウィンドウの処理に対するＣＰＵ処理負荷を設定するＣＰＵ処理負荷設定手段を備え、前記ＣＰＵ処理負荷設定手段は、対象ウィンドウが、アクティブウィンドウの存在するモニタ上にあるか否か、または、第１のモニタ上にあるか否かに基づいて、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を設定し、前記対象ウィンドウが、アクティブウィンドウが存在するモニタ上にある場合、または、第１のモニタ上にある場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を高く設定し、前記対象ウィンドウが、アクティブウィンドウが存在するモニタ上にない場合、または、第１のモニタ上にない場合には、当該対象ウィンドウの処理に対するＣＰＵ処理負荷を低く設定することとしたので、マルチモニタ環境でのウィンドウ処理の利用効率を上げることが可能な情報処理装置を提供することが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に、この発明につき図面を参照しつつ詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、下記実施例における構成要素には、当業者が容易に想定できるものまたは実質的に同一のものが含まれる。 
【００１７】
（実施の形態）
図１は、本発明の実施の形態に係るマルチモニタシステムの概念図である。本実施の形態に係るマルチモニタシステム１は、マルチモニタ機能、マルチウィンドウ機能、およびマルチタスク機能を備えており、図１に示すように、複数のモニタＭ１，Ｍ２に表示されるウィンドウＷの処理に対するＣＰＵ処理負荷を設定するＣＰＵ処理負荷設定手段２を備えている。かかるＣＰＵ処理負荷設定手段２は、対象ウィンドウがアクティブウィンドウの存在するモニタ上にあるか否か、または、対象ウィンドウが第１のモニタ上にあるか否かに基づいて、対象ウィンドウの処理に対するＣＰＵ処理負荷を設定する。具体的には、ＣＰＵ処理負荷設定手段２は、対象ウィンドウが、アクティブウィンドウが存在するモニタ上にある場合、または、第１のモニタＭ１上にある場合には、対象ウィンドウの処理に対するＣＰＵ処理負荷を高く設定し、対象ウィンドウが、アクティブウィンドウが存在するモニタ上にない場合、または、第１のモニタＭ１上にない場合には、対象ウィンドウの処理に対するＣＰＵ処理負荷を低く設定する。
【００１８】
ＣＰＵ処理負荷は、例えば、対象ウィンドウのプロセスの優先度、当該プロセスに含まれるスレッドの優先度、当該プロセスに含まれるスレッドの実行状態、または割り当てるＣＰＵのコア数で規定することができる。以下の実施例では、ＣＰＵ処理負荷として、対象ウィンドウのプロセスの優先度を例示して説明する。
【００１９】
本実施の形態によれば、対象ウィンドウが、アクティブウィンドウが存在するモニタ上にある場合、または、第１のモニタＭ１上にある場合には、対象ウィンドウの処理に対するＣＰＵ処理負荷を高く設定し、対象ウィンドウがアクティブウィンドウが存在するモニタ上にない場合、または、第１のモニタＭ１上にない場合には、対象ウィンドウに対するＣＰＵ処理負荷を低く設定することとしたので、マルチモニタ環境でのウィンドウ処理の利用効率を上げることが可能となる。
【実施例１】
【００２０】
図２は、本発明の実施例１に係るマルチモニタシステムの概略構成例を示す図である。本発明の実施例１に係るマルチモニタシステム１は、図２に示すように、内蔵モニタである第１のモニタＭ１およびマウス１０１を備え、マルチモニタ機能（拡張デスクトップ機能）、マルチウィンドウ機能、およびマルチタスク機能を有し、情報処理装置であるノート型パーソナルコンピュータ１０と、外部モニタである第２のモニタＭ２とで構成されている。ノート型パーソナルコンピュータ１０は、そのＣＰＵがプログラムを実行することにより、上記ＣＰＵ処理負荷設定手段２として機能する。
【００２１】
図３は、実施例１に係るマルチモニタシステムの機能構成図である。図３に示すように、実施例１に係るマルチモニタシステム１のＣＰＵ処理負荷設定手段２は、ウィンドウ生成・移動手段１１と、ウィンドウ検出手段１２と、アクティブウィンドウ検出手段１３と、判断手段１４と、処理負荷設定手段１５とで構成されている。
【００２２】
ウィンドウ生成・移動手段１１は、ウィンドウの生成または移動を行う。ウィンドウ検出手段１２は、ウィンドウの生成または移動を検出する。アクティブウィンドウ検出手段１３は、ウィンドウ検出手段１２で生成または移動が検出された場合に、アクティブウィンドウの情報を取得する。判断手段１４は、ウィンドウ検出手段１２でウィンドウの生成または移動を検出した場合に、当該検出したウィンドウがアクティブウィンドウの存在するモニタ上にあるか否かを判断する。処理負荷設定手段１５は、判断手段１４で当該ウィンドウがアクティブウィンドウの存在するモニタ上にあると判断された場合には、当該ウィンドウのプロセスの優先度を高く設定し、判断手段１４で当該ウィンドウがアクティブウィンドウの存在するモニタ上にないと判断された場合には、当該ウィンドウのプロセスの優先度を低く設定する。
【００２３】
図４は、図２のノート型パーソナルコンピュータの構成例を示す図である。ノート型パーソナルコンピュータ１０は、図４に示すように、ＣＰＵ(Central Processing Unit)１０２と、メモリ１０３と、ＨＤＤ（Hard Disk Device）１０４と、ＣＤ−ＲＯＭ(Compact Disk-Read Only Memory)ドライブ１０５と、入出力インターフェース１０６とを備える。入出力インターフェース１０６には、キーボード１０７と、トラックポイント１０８と、第１のモニタＭ１とが接続される。また、入出力インターフェース１０６には、マウス１０１と、第２のモニタＭ２が接続される。 
【００２４】
ＣＰＵ１０２は、ＨＤＤ１０４に格納されたＯＳ１１１によりノート型パーソナルコンピュータ１０全体の制御を行うとともに、ＨＤＤ１０４に格納された各種のプログラムに基づいて処理を実行する機能を司る。メモリ１０３は、ＲＯＭ、キャッシュメモリ、ＲＡＭ等で構成されており、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ：基本入出力システム）やデータ等を格納する領域と、ＣＰＵ１０２の実行プログラムの読み込み領域として、実行プログラムの処理データを書き込む作業領域として利用される書き込み可能領域とを備えている。ＢＩＯＳ（Basic I/O System）は、ＯＳ１１１やアプリケーションプログラム１１４などがノート型パーソナルコンピュータ１０のデバイスにアクセスするための機能を提供するものであり、ファームウェアとも称される。
【００２５】
ＨＤＤ１０４は、ノート型パーソナルコンピュータ１０全体の制御を行うためのＯＳ１１１、ユーティリテイプログラム（ＤＬＬ：Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）１１２と、周辺機器類をハードウェア操作するための各種ドライバ１１３、特定業務に向けられたアプリケーションプログラム１１４等を記憶する機能を有する。ＨＤＤ１０４に記憶するプログラムは、例えば、ＣＤ−ＲＯＭ１０９からＣＤ−ＲＯＭドライブ１０５を介してインストールすることができる。
【００２６】
ＯＳ１１１は、ノート型パーソナルコンピュータ１０の基本的な動作を制御しているものであり、各種資源を管理し、例えば、アプリケーションプログラムが発生した命令を、ドライバ１１３やＢＩＯＳに伝える。また、ＯＳ１１１は、マルチタスク機能、マルチウィンドウ機能、およびマルチモニタ機能を有し、アプリケーションプログラム１１４の実行コンテキスト（あるアプリケーションプログラム１１４が利用しているレジスタセットやメインメモリイメージ、ファイルハンドルなど）やＧＵＩの部品などのソフトウェア資源の管理も行うようになされている。ＯＳ１１１としては、例えば、Ｗｉｎｄｏｗｓ  ＯＳ（Ｒ）を使用することができる。
【００２７】
ドライバ１１３は、ハードウェアを動作させるための専用ソフトウェアであり、ドライバ１１３には、例えば、マウス１０１を動作させるためのマウスドライバ、モニタに画像を表示させるためのモニタドライバなどがある。
【００２８】
トラックポイント１０８は内蔵のポインティングデバイスであり、マウス１０１は外付けのポインティングデバイスである。 
【００２９】
図５は、上記図２のマルチモニタシステム１のウィンドウ処理に関する機能構成を示す図である。ＯＳ１１１は、ドライバ１１３を介して、マルチモニタの環境設定を行い、第１のモニタＭ１の画面の右辺と第２のモニタＭ２の画面の左辺とを仮想的に接続して、拡張デスクトップを実現する（図６参照）。例えば、第１のモニタＭ１は１４４０×９００ドットのサイズを有し、第２のモニタＭ２は、１２８０×７６７ドットのサイズを有する。
【００３０】
アプリケーションプログラム１１４は、ノート型パーソナルコンピュータ１０を用いて、例えば、文書作成、表計算、データベース作成、電子メールの授受、ウェブページの閲覧など、それぞれの目的を実現するためのソフトウェアプログラムである。
【００３１】
ユーティリテイプログラム（ＤＬＬ（Dynamic Link Library））１１２は、アプリケーション１１４およびＯＳ１１１のウィンドウのメッセージ（Ｗｉｎｄｏｗ  ｍｅｓｓａｇｅ）にフック（Ｈｏｏｋ）を設定して（ＳｅｔＷｉｎｄｏｓＨｏｏｋＥｘ）、ウィンドウメッセージ（ＷＭ＿ＣＲＥＡＴＥ／ＷＭ＿ＭＯＶＥ（生成／移動等））を取得し、対象ウィンドウがアクティブウィンドウと同じモニタであるか否かを判断し、アクティブウィンドウと同じモニタである場合には、ウィンドウのプロセスの優先度を高く設定する。
【００３２】
上記図３のマルチモニタシステム１のウィンドウ処理の概略を説明する。まず、ユーティリテイプログラム（ＤＬＬ）１１２は、ウィンドウのメッセージ（ｗｉｎｄｏｗ  ｍｅｓｓａｇｅ）をフック（Ｈｏｏｋ）するためにフックを設定（ＳｅｔＷｉｎｄｏｗｓＨｏｏｋＥｘ）する（Ｓ１）。ここで、ＯＳ１１１は、アプリケーション１１４からウィンドウの生成／移動等の指示が入力された場合には、ウィンドウの生成／移動等の処理を行い、ウィンドウメッセージ（ＷＭ＿ＣＲＥＡＴＥ／ＷＭ＿ＭＯＶＥ（生成／移動等））をウィンドウに出力する（Ｓ２）。
【００３３】
ユーティリテイプログラム（ＤＬＬ）１１２は、ウィンドウメッセージのルーチンをフックし（Ｓ３）、適切なメッセージ（ＷＭ＿ＣＲＥＡＴＥ／ＷＭ＿ＭＯＶＥ）を検知した場合、ウィンドウ情報およびプロセスＩＤを取得する（Ｓ４）。つぎに、ユーティリテイプログラム（ＤＬＬ）１１２は、アクティブウィンドウがどのモニタに有るかを示すアクティブウィンドウ情報を取得し（Ｓ５）、当該ウィンドウがアクティブウィンドウと同じモニタであるか否かを判断し（Ｓ６）、アクティブウィンドウと同じモニタである場合には（Ｓ６の「Ｙｅｓ」）、ウィンドウのプロセスの優先度を高くする（ＳｅｔＰｒｉｏｒｉｔｙＣｌａｓｓ（））処理を行う（Ｓ７）。他方、アクティブウィンドウと同じモニタでない場合には（Ｓ６の「Ｎｏ」）、当該ウィンドウのプロセスの優先度を低くする（ＳｅｔＰｒｉｏｒｉｔｙＣｌａｓｓ（））処理を行う（Ｓ８）。
【００３４】
図６は、上記構成のマルチモニタシステム１のウィンドウの画面表示例を示す図である。例えば、図６（Ａ）において、モニタＭ１にウィンドウＷ１，Ｗ２、Ｗ３の順で重畳的に表示されており、また、モニタＭ２にウィンドウＷ１１，Ｗ１２が重畳的に表示されている。同図では、ウィンドウＷ１がアクティブウィンドウに設定されているので、アクティブウィンドウの存在するモニタＭ１のウィンドウＷ１，Ｗ２、Ｗ３のプロセスの優先度を高く設定し、アクティブウィンドウの存在しないモニタＭ２のウィンドウＷ１１，Ｗ１２のプロセスの優先度を低く設定する。
【００３５】
ここで、カーソルを操作して、例えば、図６（Ｂ）に示すように、モニタＭ２のウィンドウＷ１２をアクティブウィンドウとすると、アクティブウィンドウの存在するモニタＭ２のウィンドウＷ１１，Ｗ１２のプロセスの優先度を高く設定し、アクティブウィンドウの存在しないモニタＭ１のウィンドウＷ１，Ｗ２、Ｗ３のプロセスの優先度を低く設定する。このように、アクティブウィンドウの存在するモニタ上のウィンドウのプロセスの優先度を高く設定し、アクティブウィンドウの存在しないモニタ上のウィンドウのプロセスの優先度を低く設定する。
【００３６】
つぎに、優先度の設定方法の一例を説明する。図７は、Ｗｉｎｄｏｗｓ（Ｒ）ＯＳがサポートするタスクマネージャ画面の一例を示している。タスクマネージャ画面では、オペレータが各アプリケーションのプロセスの優先度が設定可能となっている。同図に示す例では、優先度は６段階（リアルタイム（Ｒ）、高（Ｈ）、通常以上（Ａ）、通常（Ｎ）、通常以下（Ｂ）、低（Ｌ））に設定可能となっており、ユーティリテイプログラム（ＤＬＬ）１１２は、例えば、優先度を高く設定する場合は、現在の設定から１段階優先度を上げ、優先度を低く設定する場合は、現在の設定から１段階優先度を下げる構成とすることができる。
【００３７】
実施例１によれば、ウィンドウの生成または移動を検出した場合に、当該検出したウィンドウが、アクティブウィンドウの存在するモニタ上にあるか否かを判断し、アクティブウィンドウの存在するモニタ上にあると判断された場合には、当該検出したウィンドウのプロセスの優先度を高く設定し、アクティブウィンドウの存在するモニタ上にないと判断した場合には、当該ウィンドウのプロセスの優先度を低く設定することとしたので、マルチモニタ環境でのウィンドウ処理の利用効率を上げることが可能となる。
【実施例２】
【００３８】
実施例２にかかるマルチモニタシステムについて説明する。実施例１では、アクティブウィンドウの存在するモニタ上のウィンドウのプロセスの優先度を高く設定する一方、アクティブウィンドウの存在しないモニタ上のウィンドウのプロセスの優先度を低く設定する構成である。これに対して、実施例２は、第１のモニタＭ１上のウィンドウのプロセスの優先度を高く設定する一方、第２のモニタＭ２上のウィンドウのプロセスの優先度を低く設定する構成である。実施例２に係るマルチモニタシステムのハードウェア構成は実施例１と同様であるので、その説明は省略する。
【００３９】
図８は、実施例２に係るマルチモニタシステム１の機能構成図である。実施例２に係るマルチモニタシステム１のＣＰＵ処理負荷設定手段２は、ウィンドウ生成・移動手段１１と、ウィンドウ検出手段１２と、モニタ判断手段２０と、処理負荷設定手段１５とで構成されている。
【００４０】
ウィンドウ生成・移動手段１１は、ウィンドウの生成または移動を行う。ウィンドウ検出手段１２は、ウィンドウの生成または移動を検出する。モニタ判断手段２０は、ウィンドウ検出手段１２でその生成または移動が検出された対象ウィンドウが第１のモニタＭ１上に存在するか否かを判断する。処理負荷設定手段１５は、モニタ判断手段２０で対象ウィンドウが第１のモニタＭ１上にあると判断された場合は、当該対象ウィンドウのプロセスの優先度を高く設定し、モニタ判断手段２０で対象ウィンドウが第１のモニタ上にないと判断された場合には、当該対象ウィンドウのプロセスの優先度を低く設定する。
【００４１】
図９は、上記図２のマルチモニタシステム１のウィンドウ処理に関する機能構成を示す図である。図９を参照して、実施例２に係るマルチモニタシステム１のウィンドウ処理の概略を説明する。図９において、図５と同等の処理を行うステップには同一の番号を付してある。
【００４２】
図９において、まず、ユーティリテイプログラム（ＤＬＬ）１１２は、ウィンドウのメッセージ（ｗｉｎｄｏｗ  ｍｅｓｓａｇｅ）をフック（Ｈｏｏｋ）するためにフックを設定（ＳｅｔＷｉｎｄｏｗｓＨｏｏｋＥｘ）する（Ｓ１）。ここで、ＯＳ１１２は、アプリケーション１１４からウィンドウの生成／移動等の指示が入力された場合には、ウィンドウの生成／移動等の処理を行い、ウィンドウメッセージ（ＷＭ＿ＣＲＥＡＴＥ／ＷＭ＿ＭＯＶＥ（生成／移動等））をウィンドウに送信する（Ｓ２）。
【００４３】
ユーティリテイプログラム（ＤＬＬ）１１２は、ウィンドウメッセージのルーチンをフックし（Ｓ３）、適切なメッセージ（ＷＭ＿ＣＲＥＡＴＥ／ＷＭ＿ＭＯＶＥ）を検知した場合、ウィンドウメッセージおよびプロセスＩＤを取得する（Ｓ４）。つぎに、ユーティリテイプログラム（ＤＬＬ）１１２は、ウィンドウメッセージおよびプロセスＩＤに基づいて、対象ウィンドウが第１のモニタＭ１にあるか否かを判断し（Ｓ１０）、第１のモニタＭ１にある場合には（Ｓ１０の「Ｙｅｓ」）、ウィンドウのプロセスの優先度を高くする（ＳｅｔＰｒｉｏｒｉｔｙＣｌａｓｓ（））処理を行う（Ｓ７）。他方、第１のモニタＭ１にない場合には（Ｓ１０の「Ｎｏ」）、当該ウィンドウのプロセスの優先度を低くする（ＳｅｔＰｒｉｏｒｉｔｙＣｌａｓｓ（））処理を行う（Ｓ８）。
【００４４】
図１０は、実施例２に係るマルチモニタシステム１のウィンドウの画面表示例を示す図である。例えば、図１０（Ａ）において、モニタＭ１にウィンドウＷ１，Ｗ２、Ｗ３の順で重畳的に表示されており、また、モニタＭ２にウィンドウＷ１１，Ｗ１２，Ｗ１３が重畳的に表示されている。この場合、モニタＭ１のウィンドウＷ１，Ｗ２、Ｗ３のプロセスの優先度を高く設定し、モニタＭ２のウィンドウＷ１１，Ｗ１２の優先度を低く設定する。
【００４５】
ここで、マウスを操作して、例えば、図１０（Ｂ）に示すように、モニタＭ２のウィンドウＷ１１をモニタＭ１に移動させると、モニタＭ１に移動させたウィンドウＷ１１のプロセスの優先度を高く設定する。このように、ウィンドウが生成または移動した場合には、当該生成または移動したウィンドウがモニタＭ１上にある場合には、その処理のプロセスの優先度を高く設定する一方、モニタＭ２上にある場合には、その処理のプロセスの優先度を低く設定する。なお、実施例２においても、実施例１（図７参照）と同様にウィンドウのプロセスの優先度を設定することができる。
【００４６】
実施例２によれば、ウィンドウの生成または移動を検出した場合に、当該検出したウィンドウがモニタＭ１上にあるか否かを判断し、モニタＭ１上にあると判断した場合には、当該検出したウィンドウのプロセスの優先度を高く設定し、モニタＭ１にない場合（モニタＭ１にある場合）には、当該ウィンドウのプロセスの優先度を低く設定することとしたので、マルチモニタ環境でのウィンドウ処理の利用効率を上げることが可能となる。
【００４７】
なお、上記実施例では、ノート型パーソナルコンピュータについて説明したが、コンピュータの型式は上述したノート型に限定されることなく、たとえばデスクトップ型としてもよい。また、２台目以降のモニタを外部モニタとしたが、ノート型パーソナルコンピュータが複数台のモニタを内蔵する構成としてもよい。
【産業上の利用可能性】
【００４８】
本発明に係る情報処理装置、そのウィンドウ処理方法、およびコンピュータが実行可能なプログラムは、マルチモニタ環境下でのウィンドウ処理の利用効率を向上させる場合に有用であり、ノート型パーソナルコンピュータ、デスクトップ型コンピュータ等のマルチモニタ機能を有する各種情報処理装置に適用可能である。
【図面の簡単な説明】
【００４９】
【図１】本発明の実施の形態に係るマルチモニタシステムの概念図である。
【図２】実施例１に係るマルチモニタシステムの概略構成例を示す図である。
【図３】実施例１に係るマルチモニタシステムの機能を示す概念図である。
【図４】実施例１に係るノート型パーソナルコンピュータの構成例を示す図である。
【図５】実施例１に係るマルチモニタシステムのウィンドウ処理に関する機能構成を示す図である。
【図６】実施例１に係るマルチモニタシステムのウィンドウの画面表示例を示す図である。
【図７】Ｗｉｎｄｏｗｓ（Ｒ）ＯＳがサポートするタスクマネージャ画面の一例を示す図である。
【図８】実施例２に係るマルチモニタシステムの機能を示す概念図である。
【図９】実施例２に係るマルチモニタシステムのウィンドウ処理に関する機能構成を示す図である。
【図１０】実施例２に係るマルチモニタシステムのウィンドウの画面表示例を示す図である。
【符号の説明】
【００５０】
１  マルチモニタシステム
２  ＣＰＵ処理負荷設定手段
１０  ノート型パーソナルコンピュータ
１１  ウィンドウ生成・移動手段
１２  ウィンドウ検出手段
１３  アクティブウィンドウ検出手段
１４  判断手段
１５  処理負荷設定手段
２０  モニタ判断手段
１０１  マウス
１０２  ＣＰＵ
１０３  メモリ
１０４  ＨＤＤ
１０５  ＣＤ−ＲＯＭドライブ
１０６  入出力インターフェース
１０７  キーボード
１０８  トラックポイント
１０９  ＣＤ−ＲＯＭ
１１１  ＯＳ
１１２  ユーティリテイプログラム（ＤＬＬ）
１１３  ドライバ
１１４  アプリケーションプログラム
Ｍ１  第１のモニタ
Ｍ２  第２のモニタ 
【図１】
2010067173.tif 000003
【図２】
2010067173.tif 000004
【図３】
2010067173.tif 000005
【図４】
2010067173.tif 000006
【図５】
2010067173.tif 000007
【図６】
2010067173.tif 000008
【図７】
2010067173.tif 000009
【図８】
2010067173.tif 000010
【図９】
2010067173.tif 000011
【図１０】
2010067173.tif 000012