JP2015043127A - プログラム、情報処理装置および画像処理システム - Google Patents
プログラム、情報処理装置および画像処理システム Download PDFInfo
- Publication number
- JP2015043127A JP2015043127A JP2013174192A JP2013174192A JP2015043127A JP 2015043127 A JP2015043127 A JP 2015043127A JP 2013174192 A JP2013174192 A JP 2013174192A JP 2013174192 A JP2013174192 A JP 2013174192A JP 2015043127 A JP2015043127 A JP 2015043127A
- Authority
- JP
- Japan
- Prior art keywords
- screen
- program
- call source
- caller
- monitoring
- 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.)
- Pending
Links
Landscapes
- User Interface Of Digital Computer (AREA)
Abstract
【課題】 呼出元プログラム手段からの呼び出しに応答して画像処理に関する画面表示を行うためのプログラム、情報処理装置、および画像処理システムを提供すること。【解決手段】 本プログラムは、コンピュータを、呼び出しに対応して、画像処理に関する画面を表示する画面表示手段134、呼出元プログラム手段を特定する呼出元特定手段132、呼出元特定手段132により特定された呼出元プログラム手段の終了を監視する呼出元監視手段136、および呼出元監視手段136により呼出元プログラム手段の終了が検知された場合に、画面表示手段134が表示する画面を終了させる終了処理手段136、として機能させるためのプログラムである。画面表示手段134、呼出元特定手段132、呼出元監視手段および終了処理手段134は、呼出元プログラム手段150とは異なる実行単位で動作するよう構成されている。【選択図】 図3
Description
本発明は、画面表示のためのプログラムに関し、より詳細には、プログラム手段からの呼び出しに応答して画像処理に関する画面表示を行うためのプログラム、情報処理装置および画像処理システムに関する。
Windows(登録商標)2000からWindows(登録商標)7までのWindows(登録商標)系のオペレーティング・システム(OS)においては、バージョン3(以下、V3と参照する。)プリンタ・ドライバと呼ばれるプリンタ・ドライバ・アーキテクチャが採用されている。一方、Windows(登録商標)8からは、従来のV3プリンタ・ドライバに加えて、バージョン4(以下、V4と参照する。)プリンタ・ドライバと呼ばれる、新しいプリンタ・ドライバ・アーキテクチャが採用されている。V4プリンタ・ドライバ・アーキテクチャでは、デスクトップと、ModernスタイルUI(User Interface)との両方で、カスタマイズされたユーザ・インタフェースがサポートされている。
ここで、プリンタ・ドライバの印刷設定画面UIの提供形式に着目する。V3プリンタ・ドライバでは、プリンタUIは、DLL(Dynamic Link Library)形式で提供される。したがって、V3プリンタ・ドライバの印刷設定画面は、印刷アプリケーションにロードされ、印刷アプリケーションのプロセス上で動作することになる。このため、印刷アプリケーションのプロセスが手動で終了されたり、または強制終了したりすれば、印刷設定画面は、自動的に閉じられる。
一方で、V4プリンタ・ドライバ・アーキテクチャは、デスクトップのカスタマイズUIが実行可能(EXE:Executable)形式で提供されるという点で、V3アーキテクチャとは異なっている。このとき、V4アーキテクチャの印刷設定画面は、親プロセスとは別プロセスで動作する。このため、親プロセスが手動で終了されたり、または強制終了したりしても、印刷設定画面が終了しない場合があった。
つまり、V4プリンタ・ドライバは、上記提供形式の相違により、V3アーキテクチャの場合と異なる振る舞いとなってしまい、ユーザの利便性が損なわれる可能性があった。例えば、印刷アプリケーションが終了して意味の無くなった印刷設定画面が表示され続けるといった問題があった。
呼び出し元画面と呼び出し先画面とが別プロセスの場合に、モーダルな画面表示を実現する従来技術として、特開2008−293148号公報(特許文献1)が知られている。特許文献1では、ダウンロード元ブラウザ画面とプレビュー画面が別プロセスとなる場合でも、ダウンロード元ブラウザ画面を入力排他状態にし、プレビュー画面をダウンロード元ブラウザ画面より常に前面に表示させることを目的とした技術を開示する。特許文献1の従来技術では、呼び出し元画面が呼び出し先画面を一定時間間隔で監視し、呼び出し先画面が終了していないかつダイアログ化されていない場合に入力排他状態にしている。
上記特許文献1の従来技術では、特定の場合に呼び出し元画面を入力排他状態にすることができるが、ブラウザに関する技術であり、またダウンロード元ブラウザ画面が終了した場合にプレビュー画面を終了させられるものではなかった。また、上記特許文献1の従来技術は、呼び出し元画面と呼び出し先画面の内部動作を提供者が自由に変更できることが前提となっている。印刷アーキテクチャにおいては、プリンタ・ドライバのデスクトップのカスタマイズUIの内部動作は、プリンタ・ドライバの提供者側で自由に変更できる。しかしながら、呼び出し元のアプリケーションの内部動作は、通常、プリンタ・ドライバの提供者側では変更できないという制約がある。
したがって、印刷設定画面が、呼び出し元アプリケーションのプロセスとは異なるプロセスで動作している場合において、アプリケーションのプロセスが手動で終了または強制終了した場合に、表示画面を適切に終了させることができる技術の開発が望まれていた。
本発明は、上記従来技術における不充分な点に鑑みてなされたものであり、本発明は、表示画面が、その呼び出し元とは異なる実行単位で動作している場合においても、呼び出し元の実行単位の状態に依存させて表示画面を終了させることができるプログラム、情報処理装置および画像処理システムを提供することを目的とする。
本発明では、上記課題を解決するために、下記特徴を有するプログラムを提供する。本プログラムは、コンピュータを、
呼び出しに対応して、画像処理に関する画面を表示する画面表示手段、
呼出元プログラム手段を特定する呼出元特定手段、
上記呼出元特定手段により特定された呼出元プログラム手段の終了を監視する呼出元監視手段、および
上記呼出元監視手段により呼出元プログラム手段の終了が検知された場合に、上記画面表示手段が表示する画面を終了させる終了処理手段、
として機能させるためのプログラムであり、
上記画面表示手段、呼出元特定手段、呼出元監視手段および終了処理手段が、上記呼出元プログラム手段とは異なる実行単位で動作するよう構成されている。
呼び出しに対応して、画像処理に関する画面を表示する画面表示手段、
呼出元プログラム手段を特定する呼出元特定手段、
上記呼出元特定手段により特定された呼出元プログラム手段の終了を監視する呼出元監視手段、および
上記呼出元監視手段により呼出元プログラム手段の終了が検知された場合に、上記画面表示手段が表示する画面を終了させる終了処理手段、
として機能させるためのプログラムであり、
上記画面表示手段、呼出元特定手段、呼出元監視手段および終了処理手段が、上記呼出元プログラム手段とは異なる実行単位で動作するよう構成されている。
上記構成により、表示画面が、その呼び出し元とは異なる実行単位で動作している場合においても、呼び出し元の実行単位の状態に依存させて表示画面を終了させることができるようになる。
以下、本実施形態について説明するが、本実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下の説明では、プログラムおよび情報処理装置として、プリンタ・ドライバ、および該プリンタ・ドライバを動作させているホスト装置を一例として説明する。
図1は、本実施形態によるプリントシステム100の概略構成を示す図である。図1に示すようにプリントシステム100は、ネットワーク102を介して相互に接続されるホスト装置110と、画像形成装置180とを含む。ホスト装置110は、パーソナル・コンピュータ、ワークステーションなどの汎用コンピュータなどとして構成される。画像形成装置180は、レーザプリンタや複合機などのプリント機能を備える画像処理装置として構成される。ネットワーク102は、例示的には、TCP(Transmission Control Protocol)/IP(Internet Protocol)プロトコル・スタックによる有線や無線のLAN(Local Area Network)などとして構成される。
ホスト装置110は、本実施形態によるプリンタ・ドライバがインストールされ、該ドライバを動作させており、画像形成装置180に対し、ネットワーク102を介して、印刷データとともに印刷要求を送信するホストである。画像形成装置180は、ネットワーク102を介したホスト装置110からの印刷要求に応答して、受信した印刷データに従い、画像形成処理を実行する周辺機器である。
なお、図1に示すプリントシステム100では、ホスト装置110および画像形成装置180は、ネットワーク102を介して直接接続されているが、これは一例であり、図1に示す実施形態に限定されるものではない。例えば、画像形成装置180に接続するプリントサーバをネットワーク102上に設け、ホスト装置110からプリントサーバを経由して画像形成装置180に印刷要求を行う実施形態としてもよい。また、LANに代えて例えばUSBなどのバスを介してホスト装置110および画像形成装置180を接続する実施形態としてもよい。
ホスト装置110は、Windows(登録商標)8などのオペレーティング・システム(OS)を動作させており、バージョン4(以下、V4と参照する。)プリンタ・ドライバと呼ばれる、プリンタ・ドライバ・アーキテクチャをサポートしている。
図2は、V4プリンタ・ドライバのアーキテクチャの概略を説明する図である。V4アーキテクチャ200では、XPSDrvアーキテクチャと同様のレンダリング・アーキテクチャを採用している。典型的には、XPS(XML(eXtensible Markup Language) Paper Specification)からデバイス用のPDL(Page Description Language)をレンダリングするXPSフィルタ214が使用される。また、詳細な説明は省略するが、V4アーキテクチャでは、簡素化された構成226がサポートされ、バージョン3よりも簡素なデバイス接続230がサポートされる。これにより、双方向スキーマを介した双方向通信およびWSD(Web Services for Devices)の使用をしたプリンタデバイス240との通信が可能とされている。
ユーザ・インタフェースに関しては、V4プリンタ・ドライバ・モデルでは、Windows(登録商標)デスクトップと、ModernスタイルUIの両方でカスタマイズされたユーザ・インタフェースがサポートされる。これらのプリンタUI220は、本質的に大きくことなるので、2つの別々のアプリケーション222,224として実装される。プリンタ拡張(Printer Extension)222は、デスクトップでV4プリンタ・ドライバの印刷設定およびプリンタ通知を提供する。ベンダは、ベンダ独自のプリンタ拡張222を提供することにより、ベンダ独自の印刷設定画面をユーザに提供することが可能である。なお、プリンタ拡張222がベンダから提供されない場合は、OS標準の印刷設定画面が提供されることになる。Modernスタイル・デバイス・アプリケーション224は、ModernスタイルUIでV4プリンタ・ドライバの印刷設定およびプリンタ通知を提供する。
図3は、本実施形態におけるホスト装置110上で動作するソフトウェア・コンポーネントを示すブロック図である。まず、ホスト装置110上には、OS112が動作している。図3には、さらにOS112上で動作するソフトウェア・コンポーネントとして、プリンタ・ドライバ120と、アプリケーション150と、通信部152とが示されている。
アプリケーション150は、ワードプロセッサやスプレッドシート、プレゼンテーション、ドロー、フォトレタッチ、ブラウザ、文書ビューアなどの印刷機能を備えた各種アプリケーションである。アプリケーション150は、ユーザによる起動指示に応答して、当該アプリケーション150のプログラムがCPUに読み出され、メモリ上に展開され、OS上でプロセスとして起動する。アプリケーション150は、ユーザ操作に応答して、プリンタ・ドライバ120を呼び出して印刷設定画面を表示させ、また、印刷設定に基づく印刷命令をプリンタ・ドライバ120に発行する。通信部152は、各種通信プロトコルと、ランゲージ・モニタやポートモニタ、ポートドライバなどとを含み構成され、接続される画像形成装置180との通信を制御する。
プリンタ・ドライバ120は、本実施形態によるプログラムが提供する画像処理ドライバである。プリンタ・ドライバ120は、アプリケーション150からの印刷命令に応答して、印刷データを生成し、画像形成装置180に印刷要求と共に印刷データを送信する機能を提供する。プリンタ・ドライバ120は、より具体的には、印刷データの描画を行ってプリンタ用のコマンドを付与する機能を担うレンダリング122と、プリンタUI126とを含み構成される。レンダリング122は、標準のまたは独自のXPSフィルタ124を備える。
上記プリンタUI126は、印刷設定用のGUI(Graphical User Interface)を提供する機能を担っている。プリンタUI126は、V4アーキテクチャにおいては、Modernスタイル・デバイス・アプリケーション128と、プリンタ拡張130とを含み構成される。Modernスタイル・デバイス・アプリケーション128は、Modernスタイル・アプリケーションで印刷がなされた場合の印刷設定画面を提供する。Modernスタイル・デバイス・アプリケーション128は、アプリケーションを定義するコンポーネントを格納するWindows(登録商標)ストア・アプリ・パッケージ(APPX)として提供される。
これに対して、プリンタ拡張130は、デスクトップ・アプリケーションで印刷がなされた場合の印刷設定画面を提供する。プリンタ拡張222は、典型的には、実行可能形式(EXE)で提供される。
V4プリンタ・ドライバは、デスクトップ用のカスタマイズUIが実行可能形式(EXE)で提供されるという点で、V3アーキテクチャとは異なっている。それに伴い、V4アーキテクチャの印刷設定画面は、その呼出元のプロセスとは別のプロセスで実行される点で、呼出元アプリケーションにロードされて呼出元と同一プロセスで動作するV3アーキテクチャの印刷設定画面とは異なっている。このため、V4プリンタ・ドライバは、上記提供形式の相違により、V3アーキテクチャの場合と異なる振る舞いとなってしまい、ユーザの利便性が損なわれる可能性があった。
例えば、親プロセスが手動で終了されたり、または強制終了されたりしても、印刷設定画面が終了せず、意味の無くなった印刷設定画面が表示され続ける場合があった。また、モーダル・ウィンドウとして印刷設定画面が開かれた場合でも、ユーザにより親プロセスのウィンドウが操作されてしまう場合や、ビジー状態を発生させてしまう場合があった。
そこで、本実施形態では、アプリケーションのプロセスが手動で終了または強制終了された場合でも、印刷設定画面を適切に終了させることができるよう構成されたプリンタ拡張130を含む、プリンタ・ドライバ120を提供する。さらに、好ましい実施形態では、プリンタ拡張130は、モーダル・ウィンドウとして印刷設定画面が開かれている間、親プロセスのウィンドウを入力が排他制御される制限状態に移行させるよう構成されている。
本実施形態によるプリンタ拡張130は、より詳細には、印刷設定画面を開くための処理を行うドライバ・イベント処理部132と、印刷設定部134と、アプリケーション監視部136と、プリンタ拡張監視部138とを含む。
ドライバ・イベント処理部132は、ドライバ・イベント(DriverEvent)の発生に応答して呼び出されて、印刷設定部134を呼び出して、モーダル・ウィンドウとして、またはモードレス・ウィンドウとして、印刷設定画面を開く。印刷設定部134は、ユーザが印刷処理の設定を行うためUIである印刷設定画面を表示し、本実施形態による画面表示手段を提供する。
ここで、モーダル・ウィンドウとは、所定の親ウィンドウの子ウィンドウとして生成され、ユーザが当該子ウィンドウに対して適切に応答しない限り制御が親ウィンドウに戻されないユーザ・インタフェース設計になっているウィンドウをいう。モーダル・ウィンドウを呼び出すプロセスとモーダル・ウィンドウのプロセスとが同一の場合は、当該プロセスが終了すると、モーダル・ウィンドウは、自動的に閉じられるという性質を有する。ダイアログ形式のモーダル・ウィンドウは、モーダル・ダイアログと呼ばれる。
これに対して、モードレス・ウィンドウとは、所定の親ウィンドウの子ウィンドウとして生成されるが、子ウィンドウを閉じなくても制御を親ウィンドウに戻せるユーザ・インタフェース設計になっているウィンドウをいう。子ウィンドウを開いた後でもユーザによる親ウィンドウに対する操作が制限されないので、ユーザは任意の操作を任意のタイミングで行える。モードレス・ウィンドウを呼び出すプロセスとモードレス・ウィンドウのプロセスとが同一の場合は、プロセスが終了すると、モードレス・ウィンドウは、自動的に閉じられるという性質を有する。
ドライバ・イベント処理部132は、印刷設定画面を開く際に、呼出元アプリケーション150のプロセスを特定し、アプリケーション監視部136を呼び出す。なお、本実施形態において、プロセスとは、メモリ上に生成された動作中のプログラムの実体(インスタンス)である実行単位をいう。あるアプリケーションが複数起動されている場合には、同一アプリケーションのプロセスが複数存在し得るが、ここでは、当該プリンタ拡張130の呼出元である特定のプロセスが識別される。ドライバ・イベント処理部132は、本実施形態における呼出元特定手段を提供する。
アプリケーション監視部136は、モーダル・ウィンドウとして開かれる場合およびモードレス・ウィンドウとして開かれる場合の両方で、ドライバ・イベント処理部132により起動される。アプリケーション監視部136は、呼出元のアプリケーション150のプロセスの有無を監視している。アプリケーション監視部136は、呼出元アプリケーション150のプロセスの終了を検知した場合には、それに依存させて印刷設定画面を閉じるために、当該プリンタ拡張130のプロセスを終了させる。アプリケーション監視部136は、本実施形態における呼出元監視手段および終了処理手段を提供する。
上記のドライバ・イベント処理部132、印刷設定部134およびアプリケーション監視部136は、呼出元アプリケーション150のプロセスとは異なるプロセスで動作するよう構成されている。
モーダル・ウィンドウとして印刷設定画面が開かれる場合には、ドライバ・イベント処理部132は、さらに、呼出元アプリケーション150のプロセスで表示された親ウィンドウ画面を、画面に対する入力が排他制御される制限状態に移行させる。同時に、印刷設定画面が終了する際に、親ウィンドウ画面の制限状態を解除する制御が行われる。ドライバ・イベント処理部132は、モーダル・ウィンドウとして印刷設定画面を開く場合に、本実施形態における制限処理手段および終了時解除処理手段を提供する。なお、印刷設定画面がモーダル・ウィンドウとして開かれるか、モードレス・ウィンドウとして開かれるかは、プリンタ拡張130の実行モードに依存する。具体的には、プリンタUIが起動される際に呼び出されるonDriverEvent関数の引数でeventArgs.WindowModalのフラグを取得することにより判別される。なお、ここで、関数名および引数名は、任意に設定可である。ドライバ・イベント処理部132は、実行モードを示すWindowModalプロパティが「true」の場合に、モーダル・ウィンドウで開く処理を実行する。
プリンタ拡張監視部138は、モーダル・ウィンドウとして印刷設定画面が開かれる場合に、プリンタ拡張130のプロセス自体の強制終了などに対処するべく起動される。プリンタ拡張監視部138は、プリンタ拡張130のプロセス自体の強制終了に対応するため、ドライバ・イベント処理部132、印刷設定部134およびアプリケーション監視部136が動作するものとは異なるプロセスのアプリケーションとして起動される。プリンタ拡張監視部138は、典型的には、印刷設定画面を提供するプリンタ拡張130のアプリケーションで起動時の引数を変更してものとされる。
プリンタ拡張監視部138は、動作中のプリンタ拡張130のプロセスの有無を監視し、そのプロセスの終了を検知する。プリンタ拡張130のプロセスの終了が検知された場合であって、未だ親ウィンドウ画面が制限状態にある場合には、プリンタ拡張監視部138は、親ウィンドウ画面の制限状態を解除する。これにより、印刷設定画面を提供しているプリンタ拡張130のプロセス自体が強制終了した場合でも、親ウィンドウ画面の制限状態を解除することを可能としている。ひいては、制限状態に移行させたプロセスの終了に伴い親ウィンドウ画面をユーザが操作できなくなるというような不具合の発生を防止し、ユーザは処理を継続することが可能となる。プリンタ拡張監視部138は、本実施形態における画面監視手段および終了検知時解除処理手段を構成する。
以下、図4〜図7を参照しながら、モーダル・ウィンドウとして印刷設定画面を開く場合のプリンタ・ドライバの動作について説明する。図4は、本実施形態によるホスト装置110が実行する、モーダル・ウィンドウで印刷設定する場合の各機能部の基本動作を説明するシーケンス図である。
図4に示す処理は、アプリケーション150に対するユーザ操作により印刷設定画面の呼び出し指示が行われたことに応答して、ステップS100から開始される。ステップS100では、アプリケーション150は、OS112に対し、当該プリンタ・ドライバ120を指定して印刷設定画面を開く指令を行い、ステップS101では、OS112からプリンタ拡張130に印刷設定画面を開く指令が伝達される。ステップS102では、OS112を介した印刷設定画面を開く指令に応答して、プリンタ拡張130は、ドライバ・イベント処理部132を呼び出し、ドライバ・イベント処理を開始させる。
ステップS103では、ドライバ・イベント処理部132は、呼出元アプリケーション150を特定する。ステップS104では、ドライバ・イベント処理部132は、特定された呼出元を指定してアプリケーション監視部136を生成(create)する。アプリケーション監視部136は、ステップS104での生成に応答して起動し、ステップS105では、指定された呼出元アプリケーション150の監視を開始する。
ドライバ・イベント処理部132は、アプリケーション監視部136を生成させると、ステップS106で、モーダル・ウィンドウとしての印刷設定画面の親となる呼出元アプリケーション150の親ウィンドウ画面を制限状態に移行させる。特定の実施形態では、制限状態として、ウィンドウ画面の輝度が通常よりも低い半輝度状態にすることができる。
ステップS107では、ドライバ・イベント処理部132は、プリンタ拡張監視部138を生成(create)する。プリンタ拡張監視部138は、ステップS107での生成に応答して起動し、ステップS108では、プリンタ拡張130の監視を開始する。
ステップS109では、ドライバ・イベント処理部132は、印刷設定部134を呼び出して、モーダル・ウィンドウとして印刷設定画面を開く。ユーザにより印刷設定画面での設定が終わり、制御が戻されると、ステップS110では、ドライバ・イベント処理部132は、親ウィンドウ画面の制限状態を解除する。特定の実施形態では、親ウィンドウ画面が半輝度となっていた状態を全輝度の状態に戻す。これにより、親ウィンドウ画面に再び制御が戻されたような振る舞いとなる。
図4は、モーダル・ウィンドウで印刷設定する場合の正常に行われた場合の処理の流れを説明している。印刷設定画面が正常に終了した後は、ドライバ・イベント処理部132からプリンタ拡張130へ制御が戻され、プリンタ拡張130は終了する。アプリケーション監視部136およびプリンタ拡張監視部138も、適時終了することになる。このように、印刷設定画面が表示されている間、呼び出し元であるアプリケーション150のウィンドウを半輝度状態とすることによって、親ウィンドウ画面への入力を制限し、モーダル・ウィンドウが実現される。
図5、図7(A)および図7(B)は、それぞれ、ドライバ・イベント処理部132、アプリケーション監視部136およびプリンタ拡張監視部138が実行する処理の詳細を説明するアクティビティ図である。
図5に示すアクティビティ図は、ドライバ・イベント処理部132が実行する処理を示す。図5に示す処理は、ドライバ・イベント処理が呼び出されたことに応答して、ステップS200から開始される。ステップS201では、ドライバ・イベント処理部132は、直接の親ウィンドウ画面のハンドルと、そのプロセスとを取得する。ステップS202では、直接の親ウィンドウ画面があるか否かに応じて処理を分岐させる。ステップS202で、直接の親ウィンドウ画面があれば、ステップS203へ処理が分岐される。ステップS203では、ドライバ・イベント処理部132は、親ウィンドウ画面の元となるウィンドウ画面を取得し、ステップS204へ進められる。親ウィンドウ画面の元となるウィンドウ画面とは、モーダル・ウィンドウとして印刷設定画面を開いた場合に、印刷設定画面の親として、子である印刷設定画面が開かれている間、入力を制限しておくことが望ましい最上位のウィンドウ画面をいう。
図6は、アプリケーションから印刷設定画面が呼び出された場合の典型的なコンピュータ画面を示す図である。アプリケーションによっては、図6に示すように、印刷設定画面320の直接の親ウィンドウ画面310に対し、さらにその元となるウィンドウ画面300が存在する場合がある。モーダル・ウィンドウで印刷設定画面を開く場合は、この例では、この直接の親ウィンドウ画面310およびさらにその元となるウィンドウ画面300の両方の画面の入力を制限することが望ましい。
一方、ステップS202で、直接の親ウィンドウ画面がなければ、ステップS204へ直接処理が分岐される。これは、呼出元アプリケーション150が、UIを有していないアプリケーションである場合が該当し、この場合は、モーダル・ウィンドウで印刷設定画面を開く場合でも、制限すべき対象の画面が存在しない。
ステップS204では、ドライバ・イベント処理部132は、アプリケーション監視部136を起動する。ステップS205では、ドライバ・イベント処理部132は、親ウィンドウ画面の元となるウィンドウ画面が輝度表示されているか否かを判定する。ステップS205で、該当ウィンドウ画面が輝度表示されていると判定された場合(YES)は、ステップS206へ処理を分岐させる。ステップS206では、ドライバ・イベント処理部132は、親ウィンドウ画面の元となるウィンドウ画面を半輝度表示とする。ステップS207では、ドライバ・イベント処理部132は、プリンタ拡張監視部138を起動する。ステップS208では、ドライバ・イベント処理部132は、印刷設定画面をモーダル・ウィンドウとして開く。一方、ステップS205で、親ウィンドウ画面の元となるウィンドウ画面が輝度表示されていない判定された場合(NO)は、ステップS208へ直接処理を分岐させる。
ステップS209では、印刷設定画面が強制終了されたか否かで処理を分岐させる。ユーザによる印刷設定画面での印刷設定が正常に終了すると、ドライバ・イベント処理部132に制御が戻される。印刷設定画面が正常に終了しており、強制終了されていない場合(ステップS209:NO)は、ステップS210で、ドライバ・イベント処理部132は、親ウィンドウ画面の元となるウィンドウ画面を輝度表示に戻し、ステップS211で本処理を終了させる。一方、印刷設定画面が強制終了された場合は、当該ドライバ・イベント処理部132も強制終了することとなる。このため、印刷設定画面が強制終了された場合(ステップS209:NO)は、輝度表示を解除できずに、ステップS211で本処理が終了する。
なお、アプリケーション監視部136およびプリンタ拡張監視部138の起動時には、監視や終了処理に必要な情報が適宜渡される。監視や終了処理に必要な情報としては、現在のプロセスのプロセスID、親ウィンドウ画面のプロセスのプロセスID、親ウィンドウ画面の元となるウィンドウ画面のハンドル、および親ウィンドウ画面の元となるウィンドウ画面が輝度状態から半輝度状態に変更されたか否かを示す情報などが含まれる。
図7(A)に示すアクティビティ図は、アプリケーション監視部136が実行する処理を示す。図7(A)に示す処理は、ドライバ・イベント処理部132により起動されたことに応答して、ステップS300から開始される。ステップS301では、アプリケーション監視部136は、呼出元アプリケーション150の監視を開始させ、例えば定期的に、呼出元アプリケーション150のプロセスの有無を確認する。
ステップS302では、アプリケーション監視部136は、呼出元アプリケーション150のプロセスの強制終了が発生していないかを判定する。ステップS302で、呼出元のプロセスの強制終了が発生していないと判定された場合(NO)は、ステップS303へ処理が分岐される。ステップS303では、アプリケーション監視部136は、呼出元アプリケーション150が正常に終了したか否かで処理を分岐させる。未だ終了されていない場合(ステップS303:NO)は、ステップS301へ処理が戻され、監視が継続される。一方、正常に終了されている場合(ステップS303:YES)は、ステップS305へ処理が分岐され、当該処理が終了する。
一方、ステップS302で、呼出元アプリケーション150のプロセスが無く、強制終了が発生したと判定される場合(YES)は、ステップS304へ処理が分岐される。ステップS304では、アプリケーション監視部136は、呼出元アプリケーション150の終了に依存させて印刷設定画面を閉じるべく、プリンタ拡張130を終了させ、ステップS305で、本処理が終了する。
図7(B)に示すアクティビティ図は、プリンタ拡張監視部138が実行する処理を示す。図7(B)に示す処理は、ドライバ・イベント処理部132により起動されたことに応答して、ステップS400から開始される。上述したようにプリンタ拡張監視部138は、プリンタ拡張130とは別プロセスとして起動される。ステップS401では、プリンタ拡張監視部138は、プリンタ拡張130の監視を開始させ、例えば定期的に、プリンタ拡張130のプロセスの有無を確認する。
ステップS402では、プリンタ拡張監視部138は、親ウィンドウ画面の元となるウィンドウ画面が半輝度表示にされ、かつ、プリンタ拡張130の強制終了が発生していないかを判定する。ステップS402で、親ウィンドウ画面の元となるウィンドウ画面が半輝度表示にされ、かつ、プリンタ拡張130のプロセスの強制終了が発生していると判定される場合(YES)は、ステップS404へ処理が分岐される。
ステップS404では、プリンタ拡張監視部138は、親ウィンドウ画面の元となるウィンドウ画面のハンドルを用いて、該ウィンドウを輝度状態に戻し、ステップS405で、本処理を終了させる。親ウィンドウ画面の元となるウィンドウ画面が半輝度表示にされ、かつ、プリンタ拡張130のプロセスの強制終了されてしまった場合は、図5に示したステップS210の処理が行われない。そこで、本実施形態では、プリンタ拡張監視部138が、プリンタ拡張130のプロセスとは別のプロセスとして起動し、プリンタ拡張130の強制終了を検知した際に、ドライバ・イベント処理部132の代わりに元となるウィンドウ画面を半輝度状態から輝度表示に戻すこととしている。
一方、親ウィンドウ画面の元となるウィンドウ画面が半輝度状態ではない場合、または強制終了されていない場合(ステップS402:NO)は、ステップS403へ処理が分岐される。ステップS403では、プリンタ拡張130が正常に終了したか否かで処理が分岐される。未だ終了されていない場合(ステップS403:NO)は、ステップS401へ処理が戻され、監視が継続する。一方、正常に終了されている場合(ステップS403:YES)は、ステップS405へ処理が分岐され、当該処理が終了する。
以下、図8、図9および図7(A)を参照しながら、モードレス・ウィンドウとして印刷設定画面を開く場合のプリンタ・ドライバの動作について説明する。図8は、本実施形態によるホスト装置110が実行する、モードレス・ウィンドウで印刷設定する場合の各機能部の基本動作を説明するシーケンス図である。
図8に示す処理は、アプリケーション150に対するユーザ操作により印刷設定画面の呼び出し指示が行われたことに応答して、ステップS500から開始される。ステップS500では、アプリケーション150は、OS112に対し、印刷設定画面を開く指令を行い、ステップS501では、OS112からプリンタ拡張130に印刷設定画面を開く指令が伝達される。ステップS502では、プリンタ拡張130は、ドライバ・イベント処理部132を呼び出し、ドライバ・イベント処理を開始させる。
ステップS503では、ドライバ・イベント処理部132は、呼出元アプリケーション150を特定する。ステップS504では、ドライバ・イベント処理部132は、特定された呼出元を指定してアプリケーション監視部136を生成(create)する。アプリケーション監視部136は、ステップS504での生成に応答して起動し、ステップS505では、呼出元アプリケーション150の監視を開始する。ステップS506では、ドライバ・イベント処理部132は、印刷設定部134を呼び出して、モードレス・ウィンドウとして印刷設定画面を開く。印刷設定画面が正常に終了した後は、アプリケーション監視部136は、適時終了することになる。
図9は、ドライバ・イベント処理部132が実行する処理の詳細を説明するアクティビティ図である。なお、モードレス・ウィンドウで印刷設定画面を開く場合のアプリケーション監視部136が実行する処理は、図7(A)に示したものと同一であるため、説明を割愛する。
図9に示す処理は、ドライバ・イベント処理が呼び出されたことに応答して、ステップS600から開始される。ステップS601では、ドライバ・イベント処理部132は、親ウィンドウ画面のハンドルと、そのプロセスとを取得する。ステップS602では、ドライバ・イベント処理部132は、アプリケーション監視部136を起動する。ステップS603では、ドライバ・イベント処理部132は、印刷設定画面をモードレス・ウィンドウとして開き、ステップS604で本処理を終了させる。
なお、アプリケーション監視部136の起動時には、監視や終了処理に必要な情報が適宜渡される。監視や終了処理に必要な情報としては、ここでは、現在のプロセスのプロセスID、親ウィンドウのプロセスのプロセスIDなどが含まれる。アプリケーション監視部136は、モーダル・ウィンドウの場合と同様に、呼出元アプリケーション150が強制終了したことに応答して、印刷設定画面を閉じるべくプリンタ拡張130のプロセスを終了させる。
なお、モードレス・ウィンドウの場合は、プリンタ拡張130が強制終了されても、親ウィンドウ画面に制御が戻るだけなので、アプリケーション監視部136を別プロセスで起動することは要さない。しかしながら、アプリケーション監視部136を別プロセスで起動することを妨げるものではない。
以下、図10を参照しながら、上述までの実施形態におけるホスト装置110のハードウェア構成について説明する。ホスト装置110は、典型的には、汎用コンピュータ装置として構成される。図10は、本実施形態による汎用コンピュータ装置のハードウェア構成を示す図である。
汎用コンピュータ装置110は、デスクトップ型のパーソナル・コンピュータ、ワークステーションなどとして構成されている。汎用コンピュータ装置110は、CPU(Central Processing Unit)12と、CPU12とメモリとの接続を担うノースブリッジ14と、サウスブリッジ16とを含む。サウスブリッジ16は、上記ノースブリッジ14と専用バスまたはPCIバスを介して接続され、PCIバスやUSBなどのI/Oとの接続を担う。
ノースブリッジ14には、CPU12の作業領域を提供するRAM(Random Access Memory)18と、映像信号を出力するグラフィックボード20とが接続される。グラフィックボード20には、アナログRGB、HDMI(High-Definition Multimedia Interface;HDMIおよびHigh-Definition Multimedia Interfaceは登録商標または商標である)、DVI(Digital Visual Interface)などの映像出力インタフェースを介してディスプレイ50に接続される。
サウスブリッジ16には、PCI(Peripheral Component Interconnect)22、LANポート24、IEEE1394、USB(Universal Serial Bus)ポート28、補助記憶装置30、オーディオ入出力32、シリアルポート34が接続される。補助記憶装置30は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などであり、コンピュータ装置を制御するためのOS112、上記プリンタ・ドライバ120のプログラムや各種システム情報や各種設定情報を格納する。LANポート24は、汎用コンピュータ装置110を有線および無線でネットワーク102に接続させるインタフェース機器である。USBポート28には、キーボード52およびマウス54などの入力装置が接続され、操作者からの各種指示の入力を受け付けるためのユーザ・インタフェースを提供する。
本実施形態による汎用コンピュータ装置110は、ROMや補助記憶装置30からプログラムを読み出し、RAM18が提供する作業空間に展開することにより、CPU12の制御の下、上述した各機能部および各処理を実現する。なお、汎用コンピュータ装置110のハードウェア構成について説明したが、画像形成装置180についても、画像形成処理、画像読取処理、ファクシミリ送受信処理など特定の用途に応じたハードウェアを備える他、CPUおよびRAM等などのハードウェアを備える点では共通しており、同様な構成とすることができる。
以上説明した実施形態によれば、印刷設定画面が開かれた場合に、呼出元アプリケーション150のプロセスが手動で終了または強制終了したときに、それに依存させて印刷設定画面を閉じることができるようになる。ひいては、強制終了が発生した場合に設定しても意味のない印刷設定画面が開いたままになることが防げ、ユーザの操作性を向上させることができる。
また、印刷設定画面がモーダル・ウィンドウとして開かれた場合に、さらに、呼出元アプリケーション150の元となるウィンドウ画面を入力排他状態にすることができるようになる。ひいては、呼出元アプリケーションのプロセスがビジー状態になってしまうことを防止し、ユーザの操作性を向上させることができる。
上記構成によれば、V4プリンタ・ドライバ・モデルのような、表示画面がその呼び出し元とは異なる実行単位で動作するようなアーキテクチャにおいても、プリンタUIが呼出元アプリケーションのプロセスで動作するV3アーキテクチャの場合と同様な振る舞いを実現することが可能となる。ひいては、上記アーキテクチャのプリンタ・ドライバのユーザの利便性を向上させることができる。
したがって、上述した実施形態によれば、表示画面が、その呼び出し元とは異なる実行単位で動作している場合においても、呼び出し元の実行単位の状態に依存させて表示画面を終了させることができるプログラム、情報処理装置、および画像処理システムを提供することができる。
なお、上記機能部は、アセンブラ、C、C++、C#、Java(登録商標)などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ROM、EEPROM、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、ブルーレイディスク、SDカード、MOなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。また、上記説明では、ホスト装置110と画像形成装置180とを含み構成されるプリントシステムについて説明したが、上記プリンタ・ドライバおよび画像形成装置を含むシステムとして提供されてもよい。
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
100…プリントシステム、102…ネットワーク、110…ホスト装置、112…OS、120…プリンタ・ドライバ、122,212…レンダリング、124,214…XPSフィルタ、126,220…プリンタUI、128,224…Modernスタイル・デバイス・アプリケーション、130,222…プリンタ拡張、132…ドライバ・イベント処理部、134…印刷設定部、136…アプリケーション監視部、138…プリンタ拡張監視部、150,202…アプリケーション、152…通信部、180…画像形成装置、200…V4アーキテクチャ、226…構成、230…デバイス接続、240…プリンタ、300…元となるウィンドウ、310…直接の親ウィンドウ、320…印刷設定画面、12…CPU、14…ノースブリッジ、16…サウスブリッジ、18…RAM、20…グラフィックボード、22…PCI、24…LANポート、26…IEEE1394ポート、28…USBポート、30…補助記憶装置、32…オーディオ入出力、34…シリアルポート、52…キーボード、54…マウス
Claims (7)
- コンピュータを、
呼び出しに対応して、画像処理に関する画面を表示する画面表示手段、
呼出元プログラム手段を特定する呼出元特定手段、
前記呼出元特定手段により特定された呼出元プログラム手段の終了を監視する呼出元監視手段、および
前記呼出元監視手段により前記呼出元プログラム手段の終了が検知された場合に、前記画面表示手段が表示する画面を終了させる終了処理手段、
として機能させるためのプログラムであり、前記画面表示手段、前記呼出元特定手段、前記呼出元監視手段および前記終了処理手段は、前記呼出元プログラム手段とは異なる実行単位で動作するよう構成されている、プログラム。 - 前記画面がモーダルで開かれる場合に、前記呼出元プログラム手段の実行単位で表示された親画面を、制限状態とする制限処理手段、および
前記画面がモーダルで開かれた場合に、前記画面が終了する際に前記親画面の制限状態を解除する終了時解除処理手段
としてさらに機能させる、請求項1に記載のプログラム。 - 前記画面表示手段の実行単位の終了を監視する画面監視手段、および
前記画面監視手段により前記画面表示手段の実行単位の終了が検知された場合であって、前記親画面が制限状態にある場合に、前記親画面の制限状態を解除する終了検知時解除処理手段
としてさらに機能させる、請求項2に記載のプログラム。 - 前記画面監視手段および前記終了検知時解除処理手段は、前記画面表示手段の実行単位とは異なる実行単位で動作するよう構成されている、請求項3に記載のプログラム。
- 前記プログラムは、画像処理装置のドライバ・プログラムのユーザ・インタフェースを提供する実行形式のファイルとして提供され、前記呼出元プログラム手段は、前記ドライバ・プログラムの呼出元となるアプリケーションのプロセスである、請求項1〜4のいずれか1項に記載のプログラム。
- 呼び出しに対応して、画像処理に関する画面を表示する画面表示手段と、
呼出元プログラム手段を特定する呼出元特定手段と、
前記呼出元特定手段により特定された呼出元プログラム手段の終了を監視する呼出元監視手段と、
前記呼出元監視手段により前記呼出元プログラム手段の終了が検知された場合に、前記画面表示手段が表示する画面を終了させる終了処理手段と
を含み、前記画面表示手段、前記呼出元特定手段、前記呼出元監視手段および前記終了処理手段は、前記呼出元プログラム手段とは異なる実行単位で動作する、情報処理装置。 - コンピュータを、
呼び出しに対応して、画像処理に関する画面を表示する画面表示手段、
呼出元プログラム手段を特定する呼出元特定手段、
前記呼出元特定手段により特定された呼出元プログラム手段の終了を監視する呼出元監視手段、および
前記呼出元監視手段により前記呼出元プログラム手段の終了が検知された場合に、前記画面表示手段が表示する画面を終了させる終了処理手段、
として機能させるためのプログラムと、
前記プログラムが動作するコンピュータから送信されたデータに対し画像処理を施す画像処理装置と
を含み、前記画面表示手段、前記呼出元特定手段、前記呼出元監視手段および前記終了処理手段は、前記コンピュータ上で、前記呼出元プログラム手段とは異なる実行単位で動作するよう構成されている、画像処理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013174192A JP2015043127A (ja) | 2013-08-26 | 2013-08-26 | プログラム、情報処理装置および画像処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013174192A JP2015043127A (ja) | 2013-08-26 | 2013-08-26 | プログラム、情報処理装置および画像処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015043127A true JP2015043127A (ja) | 2015-03-05 |
Family
ID=52696634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013174192A Pending JP2015043127A (ja) | 2013-08-26 | 2013-08-26 | プログラム、情報処理装置および画像処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015043127A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017111690A (ja) * | 2015-12-17 | 2017-06-22 | キヤノン株式会社 | 情報処理装置、プログラム及び制御方法 |
JP2017117162A (ja) * | 2015-12-24 | 2017-06-29 | 横河電機株式会社 | 工業用機器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05342058A (ja) * | 1992-06-10 | 1993-12-24 | Mitsubishi Electric Corp | プロセス異常検知方式 |
JPH09282183A (ja) * | 1996-04-09 | 1997-10-31 | Fuji Facom Corp | 情報処理装置のプロセス管理装置 |
JP2008293148A (ja) * | 2007-05-23 | 2008-12-04 | Hitachi Ltd | プレビュー画面制御方法 |
JP2012146240A (ja) * | 2011-01-14 | 2012-08-02 | Canon Inc | アプリケーションプログラムとプリンタードライバー間のデータ通信方法およびプログラム |
-
2013
- 2013-08-26 JP JP2013174192A patent/JP2015043127A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05342058A (ja) * | 1992-06-10 | 1993-12-24 | Mitsubishi Electric Corp | プロセス異常検知方式 |
JPH09282183A (ja) * | 1996-04-09 | 1997-10-31 | Fuji Facom Corp | 情報処理装置のプロセス管理装置 |
JP2008293148A (ja) * | 2007-05-23 | 2008-12-04 | Hitachi Ltd | プレビュー画面制御方法 |
JP2012146240A (ja) * | 2011-01-14 | 2012-08-02 | Canon Inc | アプリケーションプログラムとプリンタードライバー間のデータ通信方法およびプログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017111690A (ja) * | 2015-12-17 | 2017-06-22 | キヤノン株式会社 | 情報処理装置、プログラム及び制御方法 |
JP2017117162A (ja) * | 2015-12-24 | 2017-06-29 | 横河電機株式会社 | 工業用機器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021129186A1 (zh) | 一种文件处理方法、电子设备、系统和存储介质 | |
JP5795582B2 (ja) | 統合ユーザインターフェース生成方法及びそれを行う装置 | |
CN108292198B (zh) | 信息处理设备、设置方法和信息处理系统 | |
US20190050173A1 (en) | Information processing apparatus, control method, and recording medium | |
US11115547B2 (en) | Image forming apparatus that notifies a specific control unit of operation information depending on an operation screen being displayed, and control method therefor | |
US9170763B2 (en) | Information processing apparatus and control method | |
JP2008204239A (ja) | 電子計算機及びソフトウェアによるユーザインタフェースの実現方法 | |
US20150046839A1 (en) | Information processing apparatus, information processing method and computer-readable medium | |
US9606761B2 (en) | Information processing apparatus for controlling an output process and method for the same | |
US8448192B2 (en) | Computer readable medium storing a universal driver, method of controlling a device and apparatus | |
JP2015043127A (ja) | プログラム、情報処理装置および画像処理システム | |
US20170031668A1 (en) | Peripheral apparatus and method | |
JP5020131B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
US10521171B2 (en) | Apparatus and method for managing objects between information processing apparatuses | |
JP2014119799A (ja) | 情報処理装置及びプログラム、制御方法 | |
US9182950B2 (en) | Non-transitory computer-readable recording medium storing user interface program for developing application software | |
US10191704B2 (en) | Information processing apparatus reading data created by render filter for image formation from storage area and saving the data in temporary storage area | |
JP6252060B2 (ja) | プログラム、情報処理装置及び画像処理システム | |
JP2012256121A (ja) | 画像処理装置及びその制御方法 | |
US20180332190A1 (en) | Information processing apparatus, recording medium, and control method | |
JP2013235314A (ja) | カスタマイズプログラム、情報処理装置および記録媒体 | |
JP2007156712A (ja) | 情報処理装置及びその制御方法、プログラム | |
EP2620854A1 (en) | Display screen management module, information processing terminal and display screen management method | |
WO2022156427A1 (zh) | 一种拖拽处理方法及装置 | |
WO2022222724A1 (zh) | 一种音频输出通道的切换控制方法及显示设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160809 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170425 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20171017 |