(57)【要約】【課題】複数の表示部を利用してプログラムを実行する際に、ユーザーの操作性をより向上する。【解決手段】ユーザーＰＣ２０は、連携する第１アプリケーション３１（別プログラム）のウインドウがいずれのディスプレイに表示されているかを含む表示情報をＯＳのＡＰＩを用いて取得し、第１アプリケーション３１の第１ウインドウが表示されているディスプレイと初期起動先の表示ディスプレイとが異なるか否かをこの表示情報を用いて判定し、判定結果が、ディスプレイが同じであるときには移動処理を行わない一方、ディスプレイが異なるものであるときには表示しようとする連携ウインドウを第１ウインドウが表示されているディスプレイへ視認可能な状態で移動させる。このように、連携する別プログラムであっても新たに表示されるウインドウが同じディスプレイに表示される。【選択図】図１
2010176320.tif 000002
【特許請求の範囲】
【請求項１】
複数の表示部を有する画像処理装置で実行され該複数の表示部のいずれかにウインドウを表示する別プログラムと連携し、該別プログラムに基づいて起動してウインドウを表示するプログラムでの画像処理方法であって、
（ａ）前記連携する別プログラムのウインドウが前記複数のうちいずれの表示部に表示されているかを含む表示情報を取得するステップと、
（ｂ）前記別プログラムのウインドウが表示されている表示部とこれからウインドウを表示しようとする表示部とが異なるか否かを前記ステップ（ａ）で取得した表示情報を用いて判定するステップと、
（ｃ）前記ステップ（ｂ）での判定結果が表示しようとする表示部が異なるものであるときには、表示しようとするウインドウを前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるステップと、
を含む画像処理方法。
【請求項２】
前記ステップ（ａ）では、現在最上面に表示されているウインドウの情報をオペレーティングシステム（ＯＳ）のアプリケーションプログラムインターフェイス（ＡＰＩ）を用いて取得することにより前記表示情報を取得する、請求項１に記載の画像処理方法。
【請求項３】
前記ステップ（ａ）では、前記複数の表示部の各々の、画面領域からタスクバー領域を除いた領域である表示可能領域の情報をも含む前記表示情報を取得し、
前記ステップ（ｃ）では、前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるに際して、前記別プログラムのウインドウが表示されている表示部の表示可能領域とこれからウインドウを表示しようとする表示部の表示可能領域との比に基づいて該表示しようとするウインドウのリサイズを行う、請求項１又は２に記載の画像処理方法。
【請求項４】
前記ステップ（ａ）では、前記複数の表示部の各々の解像度の情報をも含む前記表示情報を取得し、
前記ステップ（ｃ）では、前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるに際して、前記別プログラムのウインドウが表示されている表示部の解像度とこれからウインドウを表示しようとする表示部の解像度との比に基づいて該表示しようとするウインドウのリサイズを行う、請求項１又は２に記載の画像処理方法。
【請求項５】
前記ステップ（ｃ）では、前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるに際して、予め定められた比率で前記表示しようとするウインドウのリサイズを行う、請求項１又は２に記載の画像処理方法。
【請求項６】
前記ステップ（ａ）では、前記複数の表示部の各々の画面領域の情報をも含む前記表示情報を取得し、
前記ステップ（ｃ）では、前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるに際して、前記別プログラムのウインドウが表示されている表示部の画面領域とこれからウインドウを表示しようとする表示部の画面領域との比に基づいて該表示しようとするウインドウのリサイズを行う、請求項１又は２に記載の画像処理方法。
【請求項７】
前記ステップ（ａ）では、前記複数の表示部のうち前記別プログラムのウインドウが表示されている表示部の、画面領域からタスクバー領域を除いた領域である表示可能領域の情報をも含む前記表示情報を取得し、
前記ステップ（ｃ）では、前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるに際して、前記表示しようとするウインドウが前記表示可能領域へ入るように該ウインドウの位置を設定する、請求項１〜６のいずれか１項に記載の画像処理方法。
【請求項８】
前記ステップ（ａ）、前記ステップ（ｂ）及び前記ステップ（ｃ）は、プログラム起動時の初期化処理で実行されるステップである、請求項１〜７のいずれか１項に記載の画像処理方法。
【請求項９】
請求項１〜８のいずれか１項に記載の画像処理方法の各ステップを１又は複数のコンピューターに実現させるプログラム。
【請求項１０】
ウインドウを表示する別プログラムと連携し、該別プログラムに基づいて起動してウインドウを表示するプログラムを実行する画像処理装置であって、
複数の表示部と、
連携する別プログラムのウインドウが前記複数のうちいずれの表示部に表示されているかを含む表示情報を取得し、前記別プログラムのウインドウが表示されている表示部とこれからウインドウを表示しようとする表示部とが異なるか否かを前記取得した表示情報を用いて判定し、該判定結果が表示しようとする表示部が異なるものであるときには、該表示しようとするウインドウを前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させる制御手段と、
を備えた画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理方法、そのプログラム及び画像処理装置に関する。
【背景技術】
【０００２】
従来、画像処理方法としては、複数のディスプレイによって形成される表示面にウインドウを表示するものにおいて、表示されるウインドウの大きさを検出し、表示面上における配置を検出し、これらの検出結果に基づいて、表示されるウインドウがいずれか１つのディスプレイの表示面内に再配置されるよう指令を出すものが提案されている（例えば、特許文献１参照）。この画像処理方法では、ウインドウが複数の画面にまたがって表示されるのを抑制し、ユーザーのウインドウの視認性の向上を図ることができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２５１４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１のように複数のディスプレイにウインドウを表示するものにおいて、別々のプログラムを複数起動することがあるが、このとき、起動したプログラムのウインドウは、それぞれ予め定められたディスプレイ（例えばプライマリーディスプレイ）に表示される。ここで、予め定められたディスプレイ以外にウインドウを表示させた状態で、このウインドウのプログラムと連携する別プログラムをこのウインドウのプログラムから起動することがある。このような場合に、連携する別プログラムのウインドウが別のディスプレイに表示されてしまうことがあり、ユーザーの操作性が低下することがあった。
【０００５】
本発明は、複数の表示部を利用してプログラムを実行する際に、ユーザーの操作性をより向上することができる画像処理方法、そのプログラム及び画像処理装置を提供することを主目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の主目的を達成するために以下の手段を採った。
【０００７】
本発明の画像処理方法は、
複数の表示部を有する画像処理装置で実行され該複数の表示部のいずれかにウインドウを表示する別プログラムと連携し、該別プログラムに基づいて起動してウインドウを表示するプログラムでの画像処理方法であって、
（ａ）前記連携する別プログラムのウインドウが前記複数のうちいずれの表示部に表示されているかを含む表示情報を取得するステップと、
（ｂ）前記別プログラムのウインドウが表示されている表示部とこれからウインドウを表示しようとする表示部とが異なるか否かを前記ステップ（ａ）で取得した表示情報を用いて判定するステップと、
（ｃ）前記ステップ（ｂ）での判定結果が表示しようとする表示部が異なるものであるときには、表示しようとするウインドウを前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるステップと、
を含むものである。
【０００８】
この画像処理方法では、連携する別プログラムのウインドウが複数のうちいずれの表示部に表示されているかを含む表示情報を取得し、別プログラムのウインドウが表示されている表示部とこれからウインドウを表示しようとする表示部とが異なるか否かを取得した表示情報を用いて判定し、この判定結果が、表示しようとする表示部が異なるものであるときには、表示しようとするウインドウを別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させる。例えば、複数の表示部を備えた装置において、現在操作中のプログラムに連携する別プログラムを起動した場合、互いに別プログラムであるから現在操作中とは異なる表示部に新たなウインドウが表示されることがある。ここでは、連携する別プログラムであっても新たに表示されるウインドウが同じ表示部に表示される。したがって、ユーザーの操作性をより向上することができる。ここで、「別プログラム」とは、他のプログラムにより起動されるが独立して動作するプログラムとしてもよいし、親プロセス及び子プロセスの関係を有さないプログラムとしてもよい。また、１つのプログラムで並列処理を行うマルチスレッドは別プログラムに含まれないものとしてもよい。
【０００９】
このとき、前記ステップ（ｂ）では、前記別プログラムのウインドウが表示されている表示部とウインドウの初期表示に予め定められている表示部とが異なるか否かを前記ステップ（ａ）で取得した表示情報を用いて判定し、前記ステップ（ｃ）では、前記ステップ（ｂ）での判定結果が、表示しようとする表示部が同じものであるときには、ウインドウの移動処理を行わず、表示しようとする表示部が異なるものであるときには、表示しようとするウインドウを前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるものとしてもよい。また、前記ステップ（ｃ）では、前記表示しようとするウインドウを前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるに際して、前記表示しようとするウインドウの配置位置を前記別プログラムのウインドウが表示されている表示部に設定するものとしてもよい。
【００１０】
本発明の画像処理方法において、前記ステップ（ａ）では、現在最上面に表示されているウインドウの情報をオペレーティングシステム（ＯＳ）のアプリケーションプログラムインターフェイス（ＡＰＩ）を用いて取得することにより前記表示情報を取得するものとしてもよい。本プログラムは連携はしていても別のプログラムであるため、別プログラムから起動された場合に、この別プログラムのウインドウがいずれの表示部に表示されているかを知るのは困難であるが、現在最上面に表示されているウインドウは、本発明のプログラムの起動操作した直後である可能性が高い。このため、最上面に表示されているウインドウの情報を用いることにより、連携する別プログラムのウインドウが表示されている表示部の情報を比較的容易に取得することができる。
【００１１】
本発明の画像処理方法において、前記ステップ（ａ）では、前記複数の表示部の各々の、画面領域からタスクバー領域を除いた領域である表示可能領域の情報をも含む前記表示情報を取得し、前記ステップ（ｃ）では、前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるに際して、前記別プログラムのウインドウが表示されている表示部の表示可能領域とこれからウインドウを表示しようとする表示部の表示可能領域との比に基づいて該表示しようとするウインドウのリサイズを行うものとしてもよい。こうすれば、表示部の表示可能領域の比に基づいてリサイズすることにより、より確実にウインドウを視認可能な状態で移動することができる。あるいは、前記ステップ（ａ）では、前記複数の表示部の各々の解像度の情報をも含む前記表示情報を取得し、前記ステップ（ｃ）では、前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるに際して、前記別プログラムのウインドウが表示されている表示部の解像度とこれからウインドウを表示しようとする表示部の解像度との比に基づいて該表示しようとするウインドウのリサイズを行うものとしてもよい。こうすれば、表示部の解像度の比に基づいてリサイズすることにより、比較的容易にウインドウを視認可能な状態で移動することができる。あるいは、前記ステップ（ｃ）では、前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるに際して、予め定められた比率で前記表示しようとするウインドウのリサイズを行うものとしてもよい。こうすれば、予め定められた比率でリサイズすることにより、比較的容易にウインドウを視認可能な状態で移動することができる。ここで「予め定められた比率」は、視認可能となるように経験的に求めるものとしてもよい。あるいは、前記ステップ（ａ）では、前記複数の表示部の各々の画面領域の情報をも含む前記表示情報を取得し、前記ステップ（ｃ）では、前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるに際して、前記別プログラムのウインドウが表示されている表示部の画面領域とこれからウインドウを表示しようとする表示部の画面領域との比に基づいて該表示しようとするウインドウのリサイズを行うものとしてもよい。こうすれば、表示部の画面領域の比に基づいてリサイズすることにより、比較的容易にウインドウを視認可能な状態で移動することができる。
【００１２】
本発明の画像処理方法において、前記ステップ（ａ）では、前記複数の表示部のうち前記別プログラムのウインドウが表示されている表示部の、画面領域からタスクバー領域を除いた領域である表示可能領域の情報をも含む前記表示情報を取得し、前記ステップ（ｃ）では、前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させるに際して、前記表示しようとするウインドウが前記表示可能領域へ入るように該ウインドウの位置を設定するものとしてもよい。こうすれば、タスクバー領域に隠されてしまうことを抑制可能であるため、より視認可能な状態でウインドウを移動することができる。
【００１３】
ここで、前記ステップ（ｃ）では、前記ウインドウのリサイズを行ったのち該リサイズ後のウインドウが前記別プログラムのウインドウが表示されている表示部の画面領域（前記表示可能領域）へ入るように該ウインドウの位置を設定するものとしてもよい。あるいは、前記ステップ（ｃ）では、前記表示しようとするウインドウを前記別プログラムのウインドウが表示されている表示部の画面領域（前記表示可能領域）へ入るように移動するよう該ウインドウの位置を設定したあと、該ウインドウのリサイズを行うものとしてもよい。このとき、前記ステップ（ｃ）では、表示しようとするウインドウを移動すると前記表示可能領域へ入るか否かを判定し、該判定結果が該表示可能領域へ入るときには該ウインドウの位置を設定し、該判定結果が該表示可能領域へ入らないときには該ウインドウのリサイズを行ったのち該リサイズ後のウインドウが前記表示可能領域へ入るように該ウインドウの位置を設定するものとしてもよい。
【００１４】
本発明の画像処理方法において、前記ステップ（ａ）、前記ステップ（ｂ）及び前記ステップ（ｃ）は、プログラム起動時の初期化処理で実行されるステップであるものとしてもよい。こうすれば、移動前のウインドウが異なる表示部に一旦表示されてしまうのを防止し移動後のウインドウを表示部に表示可能であるため、ユーザーがより違和感なく操作することができる。
【００１５】
本発明のプログラムは、上述した画像処理方法の各ステップを１又は複数のコンピューターに実現させるためのものである。このプログラムは、コンピューターが読み取り可能な記録媒体（例えばハードディスク、ＲＯＭ、ＦＤ、ＣＤ、ＤＶＤなど）に記録されていてもよいし、伝送媒体（インターネットやＬＡＮなどの通信網）を介してあるコンピューターから別のコンピューターへ配信されてもよいし、その他どのような形で授受されてもよい。このプログラムを一つのコンピューターに実行させるか又は複数のコンピューターに各ステップを分担して実行させれば、上述した画像処理方法の各ステップが実行されるため、該制御方法と同様の作用効果が得られる。
【００１６】
本発明の画像処理装置は、
ウインドウを表示する別プログラムと連携し、該別プログラムに基づいて起動してウインドウを表示するプログラムを実行する画像処理装置であって、
複数の表示部と、
連携する別プログラムのウインドウが前記複数のうちいずれの表示部に表示されているかを含む表示情報を取得し、前記別プログラムのウインドウが表示されている表示部とこれからウインドウを表示しようとする表示部とが異なるか否かを前記取得した表示情報を用いて判定し、該判定結果が表示しようとする表示部が異なるものであるときには、該表示しようとするウインドウを前記別プログラムのウインドウが表示されている表示部へ視認可能な状態で移動させる制御手段と、
を備えたものである。
【００１７】
この画像処理装置では、上記画像処理方法と同様に、連携する別プログラムであっても新たに表示されるウインドウと別プログラムのウインドウとが同じ表示部に表示される。したがって、ユーザーの操作性をより向上することができる。なお、この画像処理装置において、上述した画像処理方法の態様を採用してもよいし、上述した画像処理方法の各ステップを実現する機能を追加してもよい。
【図面の簡単な説明】
【００１８】
【図１】プリンターシステム１０の構成の概略を示す構成図。
【図２】ＲＡＭ２４に記憶される表示情報２４ａの説明図。
【図３】第１ディスプレイ２６及び第２ディスプレイ２８の表示画面の説明図。
【図４】連携ウインドウ表示処理ルーチンの一例を表すフローチャート。
【図５】連携ウインドウの表示処理の説明図。
【図６】別の連携ウインドウ表示処理ルーチンの一例を表すフローチャート。
【図７】連携ウインドウの表示処理の説明図。
【図８】別の連携ウインドウ表示処理ルーチンの一例を表すフローチャート。
【図９】第１画面領域２６ａ及び第２画面領域２８ａが縦に配置された説明図。
【発明を実施するための形態】
【００１９】
次に、本発明の実施の形態を図面を用いて説明する。図１は、本発明の一実施形態であるプリンターシステム１０の構成の概略を示す構成図である。本実施形態のプリンターシステム１０は、図１に示すように、データを処理して画面表示するユーザーパソコン（ＰＣ）２０と、ユーザーＰＣ２０から印刷ジョブを受けて印刷処理を実行するプリンター４０とを備えている。
【００２０】
ユーザーＰＣ２０は、ユーザーが使用する画像処理装置として構成された周知の汎用パソコンであり、複数のディスプレイを備えたいわゆるマルチディスプレイ表示可能に構成されている。このユーザーＰＣ２０は、各種制御を実行するＣＰＵ２２や各種制御プログラムを記憶するフラッシュＲＯＭ２３、データを一時記憶するＲＡＭ２４などを備えたコントローラー２１と、各種アプリケーションプログラムや各種データファイルを記憶する大容量メモリーであるＨＤＤ２５と、を備えている。ＨＤＤ２５には、実行プログラムである第１アプリケーション３１（例えば文書編集プログラム）や、第１アプリケーション３１とは別のプログラムである第２アプリケーション３２（例えば表計算プログラム）が記憶されている。また、ＨＤＤ２５には、プリンター４０へ印刷ジョブを送信して印刷処理を行うときに用いられる印刷ドライバー３３などが記憶されている。この印刷ドライバー３３は、例えば、第１アプリケーション３１や第２アプリケーション３２とは別のプログラムであるが、これらと連携しこれらのプログラムから起動可能なプログラムとして構成されている。この印刷ドライバー３３は、連携先且つ起動元の表示情報を取得する機能を有する情報取得モジュール３４や印刷ドライバー３３のウインドウ画面を移動・リサイズする機能を有する変更モジュール３５などが含まれている。この情報取得モジュール３４や変更モジュール３５は、印刷ドライバー３３の機能モジュールであり印刷ドライバー３３の別プログラムではない。なお、「別プログラム」とは、他のプログラムにより起動されるが独立して動作するプログラムとしてもよいし、親プロセス及び子プロセスの関係を有さないプログラムとしてもよい。なお、１つのプログラムで並列処理を行うマルチスレッドは別プログラムに含まれないものとする。
【００２１】
また、ユーザーＰＣ２０は、ユーザーが各種指令を入力するキーボード及びマウス等の入力装置２７や各種情報を第１画面領域２６ａに表示する第１ディスプレイ２６、各種情報を第２画面領域２８ａに表示する第２ディスプレイ２８などを備えている。このユーザーＰＣ２０では、第１ディスプレイ２６がプライマリー（初期起動先）に定められ、第２ディスプレイ２８がセカンダリーとして定められている。また、第１ディスプレイ２６（例えば１０２４×７６８ピクセル）は、第２ディスプレイ２８（例えば８００×６００ピクセル）よりも大きな画面サイズを有しているものとする。このユーザーＰＣ２０は、第１ディスプレイ２６，第２ディスプレイ２８に表示されたカーソル等をユーザーが入力装置２７を介して入力操作するとその入力操作に応じた動作を実行する機能を有している。コントローラー２１やＨＤＤ２５、入力装置２７及びディスプレイ２６，２８は、バス２９によって電気的に接続され、各種制御信号やデータのやり取りができるよう構成されている。このユーザーＰＣ２０は、インストールされたプログラムによりプリンター４０に対して印刷処理を指令したりプリンター４０の情報を表示したりする。
【００２２】
プリンター４０は、各種処理プログラムを記憶したＲＯＭと一時的にデータを記憶するＲＡＭとを備え、ＣＰＵを中心とするマイクロプロセッサとして装置全体の制御を司るコントローラー４１と、記録紙Ｓへ画像を印刷処理する印刷機構４２と、を備えている。コントローラー４１や印刷機構４２は、図示しないバスによって電気的に接続されている。印刷機構４２は、図示しないが、各色のインクに圧力をかけ、この加圧されたインクを記録紙Ｓに吐出して印刷処理を実行するインクジェット方式の機構である。なお、インクへ圧力をかける機構は、圧電素子の変形によるものとしてもよいしヒーターの熱による気泡の発生によるものとしてもよい。
【００２３】
次に、こうして構成された本実施形態のプリンターシステム１０の動作、特に、ユーザーＰＣ２０でデータの処理を行う際の動作について説明する。図２は、ＲＡＭ２４に記憶される表示情報２４ａの説明図であり、図３は、第１ディスプレイ２６及び第２ディスプレイ２８の表示画面の説明図である。このユーザーＰＣ２０では、ＣＰＵ２２は、コンピューターが起動した際に、図示しないオペレーティングシステム（ＯＳ）により第１ディスプレイ２６や第２ディスプレイ２８の情報や、これらに表示する表示画面の情報を表示情報２４ａとしてＲＡＭ２４の所定領域に格納する。この表示情報２４ａには、図２に示すように、第１ディスプレイ２６や第２ディスプレイ２８の情報として、その解像度、画面領域、表示可能領域、タスクバー領域のサイズや座標の値が格納されている。表示情報２４ａでは、図３の上段に示すように、複数の画面領域を含めたＸ−Ｙ座標でウインドウの配置を管理しているものとする。また、表示情報２４ａには、現在アクティブである最上面に表示されているウインドウを含む１以上のウインドウの情報として、そのウインドウのサイズや座標の値がそれぞれ格納されている。そして、ユーザーが例えば第１アプリケーション３１を起動したときには、ＣＰＵ２２は、表示しようとするウインドウの情報（配置位置やサイズ）を表示情報２４ａに格納し、初期起動先として予め設定されている第１画面領域２６ａにそのウインドウを表示する処理をＯＳで行う。ここでは、図３に示すように、ユーザーが第１アプリケーション３１の第１ウインドウ８２を第２ディスプレイ２８側に移して作業などを行う場合を主として説明する。
【００２４】
図３の上段に示すように、第１画面領域２６ａには、タスクバー領域９０や、第１画面領域２６ａからタスクバー領域９０を除いた表示可能領域２６ｂなどの領域がある。また、第２画面領域２８ａには、タスクバー領域９２や、第２画面領域２８ａからタスクバー領域９２を除いた表示可能領域２８ｂなどの領域がある。なお、タスクバー領域９０，９２は、ユーザーの操作によりその領域サイズや表示位置を変更可能である。第１ウインドウ８２が第２画面領域２８ａに表示されているときに別プログラムである第２アプリケーション３２をユーザーが起動すると、図３の下段に示すように、ＣＰＵ２２は、この第２ウインドウ８４の情報を表示情報２４ａに格納し、第２アプリケーション３２の所定の初期化処理を実行したあと、第２アプリケーション３２の第２ウインドウ８４を初期起動先の第１画面領域２６ａに表示する処理をＯＳにより行う。こうして、例えば文書編集を行い表計算作業を行う場合など、別の作業を行うときには、ユーザーは、別のディスプレイにウインドウが表示されても支障なく操作を継続することができる。
【００２５】
次に、他のアプリケーションと連携して動作するアプリケーションである印刷ドライバー３３の動作について説明する。図４は、ＣＰＵ２２によって実行される連携ウインドウ表示処理ルーチンの一例を表すフローチャートであり、図５は、連携ウインドウの表示処理の説明図である。この連携ウインドウ表示処理ルーチンは、ＨＤＤ２５に記憶された印刷ドライバー３３に格納されており、連携するアプリケーションから起動指令を受けたあとＣＰＵ２２によって実行される。また、この連携ウインドウ表示処理ルーチンは、印刷ドライバー３３のウインドウを表示する前の初期化処理中に実行されるものとする。ここでは、第２画面領域２８ａに表示されている第１アプリケーション３１の第１ウインドウ８２からの印刷指令の入力により印刷ドライバー３３が起動された場合について説明する。
【００２６】
このルーチンを実行すると、まず、ＣＰＵ２２は、表示情報２４ａをＯＳのアプリケーションプログラムインターフェイス（ＡＰＩ）を用いて取得する（ステップＳ１００）。ここでは、現在アクティブであり最上面に表示されているウインドウハンドルをＯＳのＡＰＩを用いて取得すると共に、第１ディスプレイ２６や第２ディスプレイ２８の情報を、取得したウインドウハンドルとＯＳのＡＰＩを用いて取得する処理を行うものとした。なお、ディスプレイ２６や第２ディスプレイ２８の情報として、その解像度や、ウインドウが表示されているディスプレイを示すフラグ、そのディスプレイの画面領域の原点、表示可能領域の座標などの情報を取得するものとした。ここでは、連携はしていても別プログラムである第１アプリケーション３１から印刷ドライバー３３が起動された場合に、この別プログラムのウインドウがいずれの表示部に表示されているかを知るのは困難であるから、現在最上面に表示されているウインドウが印刷ドライバー３３を起動したものであるとして最上面のウインドウの情報を取得するのである。
【００２７】
次に、ＣＰＵ２２は、最上面のウインドウがプライマリー側にあるかセカンダリー側にあるかを取得した表示情報２４ａの情報に基づいて判定する（ステップＳ１１０）。この判定は、ウインドウが表示されているディスプレイを示すフラグを用いて行うものとした。最上面のウインドウがプライマリー側（第１ディスプレイ２６側）であるときには、印刷ドライバー３３の連携ウインドウ８６を初期起動先である第１ディスプレイ２６に表示されてもよいものとみなし、ＣＰＵ２２は、設定されているウインドウの配置位置やサイズの変更を行わずにこのルーチンを終了する。すると、ＣＰＵ２２は、初期に設定された印刷ドライバー３３の連携ウインドウ８６の配置位置やサイズの情報を用いて、連携ウインドウを初期起動先である表示可能領域２６ｂに表示する処理をＯＳにより行う。こうして、起動元である第１アプリケーション３１の第１ウインドウと同じディスプレイに連携ウインドウが表示されるから、ユーザーは違和感なく操作を行うことができる。
【００２８】
一方、ステップＳ１１０で最上面のウインドウがセカンダリー側（第２ディスプレイ２８側）であるときには、これから表示しようとするウインドウの情報（配置位置やサイズ）の情報を取得し（ステップＳ１２０）、表示情報２４ａの表示可能領域の情報を用いてこのウインドウをリサイズする処理を行い（ステップＳ１３０）、ウインドウ位置の設定を行い（ステップＳ１４０）、設定した値を出力し（ステップＳ１５０）、このルーチンを終了する。リサイズ処理や配置位置の設定について説明する。例えば、連携ウインドウ８６のサイズは、表示可能領域２６ｂと表示可能領域２８ｂとの比を用いてリサイズすることができる。例えば、表示可能領域２８ｂの面積を表示可能領域２６ｂの面積で除算しこれに連携ウインドウ８６のサイズを乗算することによりリサイズ後のサイズを求めることができる。なお、表示可能領域２６ｂ及び表示可能領域２８ｂの水平方向と垂直方向の比率を別々に求めてそれぞれのサイズを算出してもよいし、水平方向と垂直方向の比率のうち小さい方を水平方向及び垂直方向に両方に用いてサイズを算出するものとしてもよい。こうすれば、表示可能領域２６ｂや表示可能領域２８ｂは、タスクバー領域９０，９２の領域が除外されているため、連携ウインドウ８６の縦横比が変化することはあるが、より確実に連携ウインドウ８６を表示可能領域２８ｂへ入るサイズにリサイズすることができる。また、ウインドウ位置の設定は、表示可能領域２６ｂ及び表示可能領域２８ｂの水平方向と垂直方向の比率を別々に求め、表示可能領域２６ｂに設定されている初期の始点と、表示可能領域２８ｂの始点とが同じ位置になるようこの比率を用いて算出するものとした。そして、ステップＳ１５０で、表示情報２４ａの連携ウインドウ８６の情報にこうした配置位置の座標及びサイズの情報を上書きすることによりウインドウの移動内容を設定するのである。そして、初期化処理が終了するとＣＰＵ２２は、ＯＳによりこの表示情報２４ａの情報を用いて連携ウインドウ８６を表示可能領域２８ｂへ表示させるのである。
【００２９】
次に、ステップＳ１００〜Ｓ１５０の処理について図５を用いて説明する。まず、図５の上段に示すように、第１ディスプレイ２６の第１画面領域２６ａに第２ウインドウ８４が表示され、第２ディスプレイ２８の表示可能領域２８ｂに第１ウインドウ８２が表示されている状態でユーザーがカーソル８１を操作し、第１ウインドウ８２上から印刷処理を選択する。すると、ＣＰＵ２２は、ＯＳにより印刷ドライバー３３の初期化処理を実行すると共に、連携ウインドウ８６の配置位置及びサイズを設定し表示情報２４ａに格納する処理を行う。なお、このときの配置位置は、図５の下段の表示可能領域２６ｂに点線で示すように、プライマリー側に設定されている。ここで、印刷ドライバー３３の情報取得モジュール３４が表示情報２４ａを読み出し、各ディスプレイの情報や最上面のウインドウの情報を取得する。そして、最上面のウインドウがセカンダリー側にあると判定されると、印刷ドライバー３３の変更モジュール３５が表示可能領域２６ｂと表示可能領域２８ｂとの比率を用いて連携ウインドウ８６のリサイズ及び配置位置の設定を行う。これらの変更により、図５の下段の表示可能領域２８ｂに示すように、起動元の第１ウインドウ８２が表示されている表示可能領域２８ｂに連携ウインドウ８６が表示されるのである。こうして、例えば文書編集して印刷処理する場合のように、起動元である第１アプリケーション３１の第１ウインドウ８２と同じディスプレイに連携ウインドウ８６が表示されるから、ユーザーは違和感なく操作を継続することができる。
【００３０】
ここで、本実施形態の構成要素と本発明の構成要素との対応関係を明らかにする。本実施形態の連携ウインドウ表示処理ルーチンのステップＳ１００が本発明のステップ（ａ）に相当し、ステップＳ１１０がステップ（ｂ）に相当し、ステップＳ１２０〜Ｓ１５０がステップ（ｃ）に相当する。なお、本実施形態では、ユーザーＰＣ２０の動作を説明することにより本発明のプログラム及び画像処理装置の一例も明らかにしている。
【００３１】
以上詳述した本実施形態のユーザーＰＣ２０が実行する連携ウインドウ表示処理ルーチンによれば、連携する第１アプリケーション３１（別プログラム）の第１ウインドウ８２がいずれのディスプレイに表示されているかを含む表示情報２４ａを取得し、第１アプリケーション３１の第１ウインドウ８２が表示されているディスプレイと初期起動先の表示ディスプレイとが異なるか否かを取得した表示情報２４ａを用いて判定し、この判定結果が、ディスプレイが同じであるときには移動処理を行わない一方、ディスプレイが異なるものであるときには表示しようとする連携ウインドウ８６を第１ウインドウ８２が表示されている表示可能領域２８ｂへ視認可能な状態で移動させる。このように、連携する別プログラムであっても新たに表示されるウインドウが同じディスプレイに表示されるため、ユーザーの操作性をより向上することができる。
【００３２】
また、現在最上面に表示されているウインドウの情報をＯＳのＡＰＩを用いて取得するため、連携する別プログラムのウインドウが表示されている表示部の情報を比較的容易に取得することができる。更に、第１ディスプレイ２６及び第２ディスプレイ２８の各々の表示可能領域の情報を取得し、これら表示可能領域の比に基づいてウインドウのリサイズを行うと共に配置位置の設定を行うため、タスクバー領域に隠されてしまうことを抑制可能であり、より確実にウインドウを視認可能な状態で移動することができる。更にまた、連携ウインドウ表示処理ルーチンを初期化処理時に実行するため、移動前のウインドウが異なるディスプレイに一旦表示されてしまうのを防止し移動後のウインドウを表示部に表示可能であり、ユーザーがより違和感なく操作することができる。そして、印刷ドライバー３３は、他のアプリケーションに連携し他のアプリケーションから起動されることが多いため、本発明を適応する意義が高い。
【００３３】
なお、本発明は上述した実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の態様で実施し得ることはいうまでもない。
【００３４】
例えば、上述した実施形態では、表示情報２４ａに格納された表示可能領域２６ｂ及び表示可能領域２８ｂの比に基づいて、表示しようとする連携ウインドウ８６をリサイズすると共に配置位置を設定するものとしたが、図６及び図７に示すように、表示情報２４ａに含まれる第１ディスプレイ２６と第２ディスプレイ２８との解像度の比に基づいて連携ウインドウ８６をリサイズするものとしてもよい。図６は、別の連携ウインドウ表示処理ルーチンの一例を表すフローチャートであり、図７は、連携ウインドウの表示処理の説明図である。なお、上述した連携ウインドウ表示処理と同様の処理に対しては同一のステップ番号を付し、以下その説明を省略する。このルーチンを実行すると、ＣＰＵ２２は、上述したステップＳ１００〜Ｓ１２０の処理を実行し、表示情報２４ａに格納されている第１ディスプレイ２６及び第２ディスプレイ２８の解像度の比を用い、表示しようとする連携ウインドウ８６のリサイズを行い（ステップＳ２００）、この解像度の比を用いてウインドウ位置の設定を行う（ステップＳ２１０）。例えば、第２ディスプレイ２８の解像度に連携ウインドウ８６のサイズを乗算し、第１ディスプレイ２６の解像度で除算することにより、連携ウインドウ８６のリサイズ後のサイズを求めることができる。また、第２ディスプレイ２８の解像度を第１ディスプレイ２６の解像度で除算し、第１ディスプレイ２６上に設定されている配置位置の座標をそれぞれ換算することにより表示位置の設定を行うことができる。続いて、ＣＰＵ２２は、設定した配置位置及びサイズで表示可能領域２８ｂに入るか否かを判定する（ステップＳ２２０）。この判定は、ディスプレイの解像度によりリサイズを行うと、例えば図７の中段に示すように、タスクバー領域９２によって隠れてしまう部分が生じるため行う処理である。表示可能領域２８ｂに入らないときには、ＣＰＵ２２は、ウインドウ位置の再設定を行う（ステップＳ２３０）。ウインドウ位置の再設定は、図７の下段に示すように、リサイズしたウインドウの縦横長さが表示可能領域２８ｂの縦横の範囲内にできるだけ入るようにこのウインドウの始点を定める処理を行う。そして、ステップＳ２３０のあと、またはステップＳ２２０でリサイズしたウインドウが表示可能領域２８ｂに入るときにはそのまま、ステップＳ１５０で設定値を表示情報２４ａに出力し、このルーチンを終了する。こうしても、連携する別プログラムであっても新たに表示されるウインドウが同じディスプレイに表示されるため、ユーザーの操作性をより向上することができる。また、解像度の比に基づいてリサイズすることにより、比較的容易にウインドウを視認可能な状態で移動することができる。更に、タスクバー領域を考慮してウインドウ位置の再設定を行うため、より確実にウインドウを視認可能な状態で移動することができる。
【００３５】
あるいは、図８に示すように、予め定められた比率（固定値）を用いて連携ウインドウ８６をリサイズするものとしてもよい。図８は、別の連携ウインドウ表示処理ルーチンの一例を表すフローチャートである。このルーチンでは、上記解像度でリサイズするステップＳ２００の処理を固定値を用いてリサイズする以外は上記解像度でリサイズする処理と同じである。なお、リサイズ処理以外は、図７の連携ウインドウの表示処理と同じとなる。この固定値は、リサイズ及び移動後のウインドウが視認可能となるような値（例えば３／４や３／５など）に経験的に定めてもよい。こうすれば、予め定められた比率でリサイズすることにより、比較的容易にウインドウを視認可能な状態で移動することができる。また、表示情報２４ａを用いることなくリサイズ処理を行うことができるため、処理の簡素化を図ることができる。あるいは、上記ステップＳ２００やステップＳ３００で、第１画面領域２６ａや第２画面領域２８ａの比率に基づいて連携ウインドウをリサイズするものとしてもよい。こうすれば、表示部の画面領域の比に基づいてリサイズすることにより、比較的容易にウインドウを視認可能な状態で移動することができる。
【００３６】
上述したウインドウ位置の再設定を行う態様の実施形態では、このウインドウ位置の再設定処理を省略してもよい。即ち、タスクバー領域で一部隠れてしまうウインドウの領域を考慮しないものとしてもよい。こうしても、連携する別プログラムであっても新たに表示されるウインドウが同じディスプレイに表示されるため、隠れた部分が見えるようにウインドウを移動する手間も少なく、ユーザーの操作性をより向上することができる。また、ウインドウの移動処理を簡素化することができる。
【００３７】
上述した実施形態では、表示しようとする連携ウインドウ８６のリサイズを行ったあとリサイズ後のウインドウを表示可能領域２８ｂへ移動するよう配置位置を設定するものとしたが、特にこれに限定されず、連携ウインドウ８６をまず第２画面領域２８ａへ移動するように配置位置を設定し、移動した連携ウインドウ８６が表示可能領域２８ｂに入るか否かを判定し、連携ウインドウ８６が表示可能領域２８ｂに入るときにはそのまま配置位置を確定するものとしてもよい。このとき、上述のように、ディスプレイが左右に並んでいる場合には、連携ウインドウ８６を水平に第２画面領域２８ａ側へ移動し表示可能領域２８ｂに入るか否かを判定し、入らないときには連携ウインドウ８６を上下方向に移動させてみてもよい。一方、連携ウインドウ８６が表示可能領域２８ｂに入らないときにはこれをリサイズするものとしてもよい。なお、リサイズの方法は、例えば、上述した実施形態にあるように、表示可能領域の比率や解像度の比率、画面領域の比率、固定値などを用いることができる。
【００３８】
上述した実施形態では、表示しようとする連携ウインドウ８６をリサイズして表示可能領域２８ｂに入るように移動するものとしたが、このリサイズを行わずに表示可能領域２８ｂにできるだけ入るように連携ウインドウ８６の配置位置を設定するものとしてもよい。表示可能領域２８ｂにできるだけ入るようにするに際して、例えば、表示可能領域２８ｂの上辺と連携ウインドウ８６の上辺とを合わせるものとしてもよいし、表示可能領域２８ｂの中心と連携ウインドウ８６の中心とを合わせるものとしてもよい。こうしても、連携先且つ起動元のウインドウが表示されているディスプレイに新たなウインドウが表示されるため、ウインドウを視認可能であり、ユーザーの操作性をより向上することができる。
【００３９】
上述した実施形態では、ディスプレイを２つ備えたユーザーＰＣ２０としたが、３つ以上ディスプレイを備えるものとしてもよい。こうすれば、ディスプレイが多数あっても連携先且つ起動元のウインドウが表示されているディスプレイに連携する新たなウインドウが表示されるため、ユーザーの操作性をより向上することができる。
【００４０】
上述した実施形態では、プライマリーのディスプレイが初期起動先のディスプレイに設定されているものとしたが、連携先の第１アプリケーション３１の第１ウインドウ８２から印刷ドライバー３３が起動された際に異なるディスプレイにウインドウが表示されてしまうときに上述した処理を実行するものとすれば特にこれに限定されず、例えばセカンダリーのディスプレイを初期起動先のディスプレイに設定してもよい。
【００４１】
上述した実施形態では、第１ディスプレイ２６及び第２ディスプレイ２８が左右に配置されたものとしたが、図９に示すように上下に配置されているものとしてもよい。図９は、第１画面領域２６ａ及び第２画面領域２８ａが縦に配置された説明図である。こうしても、上述した実施形態と同様の効果を得ることができる。
【００４２】
上述した実施形態では、プライマリー側の第１ディスプレイ２６がセカンダリー側の第２ディスプレイ２８よりも画面領域が大きいものとしたが、プライマリー側のディスプレイがセカンダリー側のディスプレイよりも小さいものとしてもよい。上述した実施形態では、連携ウインドウのリサイズ処理は縮小する処理としたが、このとき、連携ウインドウのリサイズ処理は拡大する処理としてもよいし、リサイズを行わないものとしてもよい。
【００４３】
上述した実施形態では、初期化処理中に上記連携ウインドウの移動処理を実行するものとしたが、特にこれに限定されない。こうしても、一瞬異なるディスプレイに表示されてしまう場合も生じうるが、その後同じディスプレイにウインドウが表示されるので、ユーザーの操作性をより向上することはできる。
【００４４】
上述した実施形態では、本発明のプログラムを印刷ドライバー３３として説明したが、別のプログラムと連携して起動するプログラムであれば特に限定されずに本発明を適用することができる。このようなプログラムとしては、例えばスキャナドライバーなどが挙げられる。
【００４５】
上述した実施形態では、ユーザーＰＣ２０として説明したが、複数の表示部を備え、複数のプログラムを実行する電子機器であれば特に限定されず、例えば、プリンター４０やＦＡＸ、スキャナーを備えたマルチファンクションプリンターなどの印刷機器、家庭用又は携帯用のゲーム機器、ピクチャービューアーやＰＤＡ、携帯電話などの携帯情報端末などに適用することができる。
【符号の説明】
【００４６】
１０  プリンターシステム、２０  ユーザーパソコン（ＰＣ）、２１  コントローラー、２２  ＣＰＵ、２３  フラッシュＲＯＭ、２４  ＲＡＭ、２４ａ  表示情報、２５  ＨＤＤ、２６  第１ディスプレイ、２６ａ  第１画面領域、２６ｂ  表示可能領域、２７  入力装置、２８  第２ディスプレイ、２８ａ  第２画面領域、２８ｂ  表示可能領域、２９  バス、３１  第１アプリケーション、３２  第２アプリケーション、３３  印刷ドライバー、３４  情報取得モジュール、３５  変更モジュール、４０  プリンター、４１  コントローラー、４２  印刷機構、８１  カーソル、８２  第１ウインドウ、８４  第２ウインドウ、８６  連携ウインドウ、９０，９２  タスクバー領域、Ｓ  記録紙。
【図１】
2010176320.tif 000003
【図２】
2010176320.tif 000004
【図３】
2010176320.tif 000005
【図４】
2010176320.tif 000006
【図５】
2010176320.tif 000007
【図６】
2010176320.tif 000008
【図７】
2010176320.tif 000009
【図８】
2010176320.tif 000010
【図９】
2010176320.tif 000011