JP2018084893A - 情報処理装置、制御方法およびプログラム - Google Patents
情報処理装置、制御方法およびプログラム Download PDFInfo
- Publication number
- JP2018084893A JP2018084893A JP2016226553A JP2016226553A JP2018084893A JP 2018084893 A JP2018084893 A JP 2018084893A JP 2016226553 A JP2016226553 A JP 2016226553A JP 2016226553 A JP2016226553 A JP 2016226553A JP 2018084893 A JP2018084893 A JP 2018084893A
- Authority
- JP
- Japan
- Prior art keywords
- printer driver
- processing apparatus
- monitoring
- file
- information processing
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00962—Input arrangements for operating instructions or parameters, e.g. updating internal software
- H04N1/00973—Input arrangements for operating instructions or parameters, e.g. updating internal software from a remote device, e.g. receiving via the internet instructions input to a computer terminal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1204—Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1224—Client or server resources management
- G06F3/1225—Software update, e.g. print driver, modules, plug-ins, fonts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1229—Printer resources management or printer maintenance, e.g. device status, power levels
- G06F3/1232—Transmitting printer device capabilities, e.g. upon request or periodically
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00002—Diagnosis, testing or measuring; Detecting, analysing or monitoring not otherwise provided for
- H04N1/00026—Methods therefor
- H04N1/00042—Monitoring, i.e. observation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/00127—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
- H04N1/00323—Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a measuring, monitoring or signaling apparatus, e.g. for transmitting measured information to a central location
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1218—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
- G06F3/122—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/0077—Types of the still picture apparatus
- H04N2201/0082—Image hardcopy reproducer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
【課題】プリンタドライバのインストール、またはアンインストールのタイミングでOSによってプリンタドライバのモジュールが呼び出される仕組みを持たない環境においても、ユーザの利便性を向上できる情報処理装置、制御方法およびプログラムを提供する。
【解決手段】監視アプリケーション207は、プリンタドライバの追加を検知した場合、情報取得モジュール208を用いて、画像処理装置216から情報を取得する。プリンタドライバ関連ファイル213は、プリンタドライバ210に関連するファイルであり、プリンタドライバ210の各種設定に関する情報などが記録されている。印刷処理の要求に基づいて発行された印刷ジョブは、OS内のプリントサブシステム202のスプーラー203にて処理される。スプーラー203は、印刷アプリケーション201から発行された印刷ジョブを、プリンタドライバ210へ送信する。
【選択図】図2
【解決手段】監視アプリケーション207は、プリンタドライバの追加を検知した場合、情報取得モジュール208を用いて、画像処理装置216から情報を取得する。プリンタドライバ関連ファイル213は、プリンタドライバ210に関連するファイルであり、プリンタドライバ210の各種設定に関する情報などが記録されている。印刷処理の要求に基づいて発行された印刷ジョブは、OS内のプリントサブシステム202のスプーラー203にて処理される。スプーラー203は、印刷アプリケーション201から発行された印刷ジョブを、プリンタドライバ210へ送信する。
【選択図】図2
Description
本発明は、画像処理装置に接続する情報処理装置、その制御方法およびプログラムに関する。
パーソナルコンピュータなどの情報処理装置とプリンタなどの画像処理装置とが接続される情報処理システムにおいて、情報処理装置は、一般に、画像処理装置に対して印刷データを送信するプリンタドライバを備える。
マイクロソフト社のオペレーティングシステム(OS)であるWindows(登録商標)によりv3プリンタドライバアーキテクチャーが提供される。このアーキテクチャーにおいては、プリンタドライバがOSにインストール、またはアンインストールされた際には、OSが、プリンタドライバのモジュールを呼び出す仕組みがある。例えばプリンタドライバがOSにインストールされると、OSは、DrvPrinterEvent関数のコマンドの引数にPRINTER_EVENT_INITIALIZEを設定する。そして、プリンタドライバ対してプリンタドライバのインストールイベントが送信される。
特許文献1では、こうしたOSの仕組みを利用して、OSから呼び出されたプリンタドライバのモジュールが、インストールに対応する処理またはアンインストールに対応する処理を実行することが開示されている。
しかしながら、OSが、プリンタドライバのインストール、またはアンインストールを含む所定の処理が発生したタイミングでプリンタドライバのモジュールを呼び出さない状況について特許文献1は考慮していない。そのため、特許文献1の技術では、上記状況において、プリンタドライバのインストールまたはアンインストールを含む所定の処理が発生した時に実行すべき処理が実行されず、ユーザの利便性が低下するおそれがあった。
上述のような課題を解決するため、本願の情報処理装置は、画像処理装置と通信可能な情報処理装置であって、少なくとも監視対象のプリンタドライバが存在する場合に前記監視対象のプリンタドライバに対する監視処理を継続する監視手段と、前記監視手段による監視処理中に前記プリンタドライバのインストール処理が発生した場合における前記プリンタドライバに対応する前記画像処理装置に関する情報を取得する第1の処理、および、前記監視手段による監視処理中に前記プリンタドライバのアンインストール処理が発生した場合における前記アンインストールされたプリンタドライバの関連ファイルを削除する第2の処理、および、前記監視手段による監視処理中に前記プリンタドライバの変更処理が発生した場合における前記プリンタドライバに対応するファイルを変更する第3の処理の少なくとも1つを実行する実行手段を有し、前記関連ファイルは、前記アンインストールされたプリンタドライバに関連し、かつ、前記アンインストールされたプリンタドライバを構成するファイルとは異なることを特徴とする。
本発明によれば、プリンタドライバのインストール、またはアンインストールのタイミングでOSによってプリンタドライバのモジュールが呼び出される仕組みを持たない環境においても、ユーザの利便性を向上できる。
(第1の実施形態)
本実施形態における画像処理装置と情報処理装置の構成を、図1を参照して説明する。
情報処理装置100は入力インタフェース102とCPU103、ROM104、RAM105、外部記憶装置106、出力インタフェース108、表示部107、キーボード101、マウス109、USBインタフェース110を有する。情報処理装置100は、USBインタフェース110およびUSBケーブル190を介して後述する画像処理装置150と通信可能である。ROM104には初期化プログラムが入っており、外部記憶装置106にはアプリケーションプログラム群、OS(オペレーティングシステム)、プリンタドライバやその他各種のデータが保存されている。
本実施形態における画像処理装置と情報処理装置の構成を、図1を参照して説明する。
情報処理装置100は入力インタフェース102とCPU103、ROM104、RAM105、外部記憶装置106、出力インタフェース108、表示部107、キーボード101、マウス109、USBインタフェース110を有する。情報処理装置100は、USBインタフェース110およびUSBケーブル190を介して後述する画像処理装置150と通信可能である。ROM104には初期化プログラムが入っており、外部記憶装置106にはアプリケーションプログラム群、OS(オペレーティングシステム)、プリンタドライバやその他各種のデータが保存されている。
RAM105は外部記憶装置106に格納される各種プログラムがワークメモリとして使用する。画像処理装置150はUSBインタフェース151とRAM152、プリントエンジン153、ROM154、CPU155を有する。画像処理装置150は、USBインタフェース151およびUSBケーブル190を介して情報処理装置100と通信可能である。RAM152はCPU155の主メモリとワークメモリとして用いられ、受信した印刷データを一旦保存するための受信バッファーや各種のデータを保存する。プリントエンジン153はRAM152に保存された印刷データに基づき印刷を行う。ここでは例として情報処理装置100と画像処理装置150の処理分担を上記のように示したが、特にこの分担形態限らず他の形態であっても構わない。また、ここでは例としてUSBインタフェース110、151およびUSBケーブル190を介して情報処理装置100と画像処理装置150が通信を行うよう示しているが、通信手段は他の形態であっても構わない。なお、本実施形態では、CPU103やROM104、RAM105等によりコンピュータが形成される。そして、このコンピュータが、情報処理装置の動作を制御する。
図2は、PC200に備えられたプリンタドライバ210、監視アプリケーション207と、OSのプリントサブシステム202の構成例を示す図である。PC200は、図1の情報処理装置100に対応し、画像処理装置216は、図1の画像処理装置150に対応する。
また図2は、新規のOS上で実現される新規プリントシステムと監視アプリケーションの関係を示す一例である。なお、新規プリントシステムの一例として、次世代のWindowsプリンタドライバ(v4プリンタドライバ)アーキテクチャーを用いて説明する。v4プリンタドライバアーキテクチャーでは、プリンタドライバのインストール、またはアンインストールのタイミングでOSによってプリンタドライバのモジュールが呼び出される仕組みがない。そして、この新規プリントシステムには、いくつかの制約がある。例えば、v4プリンタドライバ210は、印刷設定画面を持つことが許可されていない。ゆえにv4プリンタドライバ210の印刷設定画面がOSから呼び出されることはない。そのため、印刷設定画面はOSにより提供される。しかしながら、各ベンダーはv4プリンタドライバ210に対応する印刷設定アプリケーション212を用意することは可能である。この印刷設定アプリケーション212がOSにインストールされると、OSが提供する印刷設定画面の代わりに、印刷設定アプリケーション212が提供する印刷設定画面が表示される。印刷設定アプリケーション212のインストール処理は、v4プリンタドライバのインストール処理に連動して実行されても良い。具体的には、ダウンロードソフトが、v4プリンタドライバを所定のサーバからダウンロードしてインストールした場合、インストールされたv4プリンタドライバに対応する印刷設定アプリケーション212を前記所定のサーバから検索する。そして、対応する印刷設定アプリケーションが検索された場合、ダウンロードソフトが、前記印刷設定アプリケーションを前記所定のサーバからダウンロードしてインストールしても良い。また、印刷設定アプリケーション212とv4プリンタドライバとは、識別情報にて関連付けられているので、この識別情報を使って連動したインストール処理が実現できる。ただし、印刷設定アプリケーション212は、v3プリンタドライバのベンダー独自のユーザインターフェースモジュールのように、プリンタドライバのインストールおよびアンインストールのタイミングでOSに呼び出されることはない。なお、印刷設定アプリケーション212の印刷設定画面は、OSにより提供される印刷設定画面よりも詳細な印刷設定情報を選択可能である。例えば、印刷設定アプリケーション212の印刷設定画面は、OSにより提供される印刷設定画面では設定できない設定項目についても印刷設定情報の設定を受け付ける。
その他の制限としては、新規OS上で実現される新規プリントシステムでは、ランゲージモニタプログラムの動作が許可されていない。具体的には、図2の装置で動作する新規OSは、プリンタドライバを構成するファイルとして画像処理装置とのデータの送受信を行うランゲージモニタプログラムを含むことを制限している。つまり、OSは、v4プリンタドライバ210の印刷設定画面を呼び出すことはせず、かつ、プリンタドライバと関連する印刷設定アプリケーション212の印刷設定画面を呼び出す。また、OSは、ランゲージモニターを呼び出さない。v4プリンタドライバ210(以降、単に「プリンタドライバ」と称す)は、印刷アプリケーション201が発行した印刷指示に従って印刷データを生成し、画像処理装置216に印刷データを送信する。また、プリンタドライバは、画像処理装置216から能力情報やステータス情報を取得する。
監視アプリケーション207は、OSへのプリンタドライバの追加、削除、変更の少なくとも1つが実行されたか否かを監視する監視処理を実行する。なお、プリンタドライバの変更の例としては、プリンタアイコン名の変更や画像処理装置との通信を行うポートの変更が考えられる。
監視アプリケーション207は、プリンタドライバの追加を検知した場合、情報取得モジュール208を用いて、画像処理装置216から情報を取得する。なお、ここで取得された情報は、例えば、印刷設定アプリケーション212の設定画面を構築するために使われる。また、監視アプリケーション207は、プリンタドライバの削除を検知した場合、ファイル削除モジュール209を用いて、プリンタドライバ関連ファイル213を削除する。
プリンタドライバ関連ファイル213は、プリンタドライバ210に関連するファイルであり、プリンタドライバ210の各種設定に関する情報などが記録されている。このプリンタドライバ関連ファイル213は、情報処理装置内のOSが参照する記憶領域に生成され、プリンタドライバ210のアンインストールでは削除されない。OSとしてWindows(登録商標)を用いる場合であれば、「ProgramData」フォルダや「ApplicationData(AppData)」フォルダが、プリンタドライバ関連ファイル213の生成場所として考えられる。プリンタドライバ関連ファイル213のファイル名やファイルを含むフォルダ名に命名規則を設けることで、どのプリンタドライバに関連するファイルかを識別することができる。
インストーラ214は、ユーザの指示により起動されることにより、監視アプリケーション207をインストールするためのソフトウェアである。監視アプリケーション207がインストーラ214によってインストールされる場合、監視アプリケーション207は、インストーラ214の監視アプリケーション登録モジュール215によってスタートアップに登録され、起動される。スタートアップに登録された監視アプリケーション207は、常駐アプリケーションとして動作する。つまり、監視アプリケーション207は、基本的にはOSの起動直後に処理を開始し、OSの終了時に処理を終了する。このように監視アプリケーション207を常駐アプリケーションとして動作させることで、少なくとも監視対象のプリンタドライバが存在する場合に監視処理を継続することができる。言い換えれば、情報処理装置が起動された場合、監視アプリケーションは監視処理を実行する。
なお、監視アプリケーション207をプリンタドライバ210の構成物に含めてしまい、プリンタドライバ210の監視アプリケーション登録モジュール211が監視アプリケーション207をスタートアップに登録してもよい。この場合、プリンタドライバ210が動作するタイミング(例えば印刷実行時)で監視アプリケーション207がスタートアップに登録される。監視アプリケーション207がスタートアップに登録されることにより、OS再起動後やOSへの再ログイン後もOSによって監視アプリケーション207が起動され、動作を開始することが可能となる。
次に図2を用いて、PC200から画像処理装置216へ印刷データが渡るまでのデータの流れを説明する。印刷アプリケーション201は、OSが提供する印刷指示を行うAPI(Application Program Interface)を利用し、印刷処理の要求を行う。印刷処理の要求に基づいて発行された印刷ジョブは、OS内のプリントサブシステム202のスプーラー203にて処理される。スプーラー203は、印刷アプリケーション201から発行された印刷ジョブを、プリンタドライバ210へ送信する。プリンタドライバ210は、印刷ジョブを受信すると、ページ構成処理やコマンド生成処理を行い、画像処理装置216が解釈可能な印刷データを生成する。
ここでのページ構成処理とは、印刷アプリケーション201から指示された印刷設定情報に基づいてページの順序を並べ替える処理や、複数ページを用紙の1つの面に相当する物理ページに配置するための処理を指す。また、コマンド生成処理とは、印刷ジョブを画像処理装置216が解釈可能な印刷データへ変換する処理を指す。印刷ジョブを印刷データに変換する処理が完了すると、プリンタドライバ210はプリントサブシステム202内のポートモニタ204に印刷データを渡す。その後、ポートモニタ204は、デバイスインタフェース205、クラスドライバ206を介して、印刷データを画像処理装置216に転送する。
続いて、図2を用いて、監視アプリケーション207がプリンタドライバ210の追加、削除、変更を監視する方法について説明する。監視アプリケーション207は、一つ以上のプリンタドライバを監視対象とし、OSが提供するAPI(Application Program Interface)を利用し、プリンタドライバ210のインストール、アンインストールまたは変更を監視する。
監視アプリケーション207は、プリンタドライバ210のインストールを検知したら、ポートモニタ204を介して画像処理装置と通信する。そして、監視アプリケーション207は、画像処理装置216内の記憶装置217に記憶されている画像処理装置216の能力情報や、画像処理装置216が印刷可能な用紙の情報を取得する。ここで取得した情報は、プリンタドライバ210または印刷設定アプリケーション212に共有される。共有の方法は、プリンタドライバ関連ファイル213への出力であってもよいし、プリンタドライバ210または印刷設定アプリケーション212が公開する関数を呼び出し、その引数として受け渡してもよい。また、別の方法でもよい。なお、ここで共有された情報は、印刷実行時のプリンタドライバ210の処理を決定するために用いられる。例えば、プリンタドライバ210は、画像処理装置216がユーザ名およびホスト名を受信可能か否かを、共有された情報に基づいて判定する。この判定結果により、プリンタドライバ210は、印刷データにユーザ名およびホスト名を設定するか否かを決定する。また、印刷設定アプリケーション212が、共有された情報に基づいて表示する印刷設定画面の内容を決定する。
また、監視アプリケーション207は、プリンタドライバ210のアンインストールを検知したら、プリンタドライバ210の構成物には含まれず、アンインストールによって削除されないプリンタドライバ関連ファイル213を削除する。なお、削除する対象はレジストリに記載された情報であってもよい。具体的には、削除対象となるプリンタドライバ関連ファイル213は、アンインストールされたプリンタドライバのプリンタドライバ名のフォルダ内に保持されている。そのため、監視アプリケーション207は、アンインストールされたプリンタドライバ名を特定することで、削除すべきフォルダを特定し、そのフォルダを削除する。結果として、アンインストールされたプリンタドライバのプリンタドライバ関連ファイル213が削除される。
また、監視アプリケーション207は、プリンタドライバ210の変更を検知したら、プリンタドライバ関連ファイル213の生成場所の変更や、記載内容の変更を行う。
図3は、監視アプリケーションの処理の流れを示すフローチャートである。なお、本願では、CPU103がフローチャートの処理に必要なプログラムを読み出して実行する子でフローチャートの処理が実行される。OS、インストーラまたはプリンタドライバからの指示により監視アプリケーション207が起動される(S301)。S301の後、監視アプリケーション207による監視処理が始まる。監視アプリケーション207は、OSが提供するAPIを使用し、プリンタドライバの追加、削除、変更を検知する為のイベントをOSに登録するイベント登録処理を実行する(S302)。例えばWindowsの場合、FindFirstPrinterChangeNotification API、FindNextPrinterChangeNotification APIを使用することで、監視アプリケーション207は、OSへのプリンタドライバの追加、削除、変更を監視できる。このイベント登録が行われることにより、OSは、プリンタドライバの追加、削除、変更が発生したことを監視アプリケーション207に対してイベントとして通知できる。
次に、監視アプリケーション207は、OSが提供するEnumPrinters APIを使用してOSにインストールされている各プリンタの情報(PRINTER_INFO構造体)を取得する。そして、監視アプリケーション207は、この情報を元にプリンタドライバ名やプリンタアイコン名を列挙したプリンタドライバリスト1を生成する(S303)。なお、ステップS302とステップS303の処理を行う順番は逆でもよい。次に監視アプリケーション207が、OSからイベントが発行されたか否かを検知する(S304)。
S302の登録により、プリンタドライバが新規に追加された場合、OSはプリンタドライバの追加に対応するイベントを監視アプリケーション207に通知する。また、プリンタドライバがアンインストールされた場合、OSはプリンタドライバのアンインストールに対応するイベントを監視アプリケーション207に通知する。同様に、プリンタドライバが変更された場合、OSはプリンタドライバの変更に対応するイベントを監視アプリケーション207に通知する。S304において監視アプリケーション207が、いずれかのイベントを検知した場合、S303と同様に、その時点でOSにインストールされているプリンタドライバの情報を列挙したプリンタドライバリスト2を生成する(S305)。なお、二つのプリンタドライバリストを生成する目的について説明する。監視アプリケーション207は、イベントを受信することでプリンタドライバの追加、削除、変更のいずれが行われたかを認識することはできるが、どのプリンタドライバに対する処理であるかをイベントのみでは判定できない。そのため、監視アプリケーション207は、S303とS305で作成したリストを使って、イベント検知前後で追加、削除、変更されたプリンタドライバを特定する。
なお、監視アプリケーション207は、2つのリスト間におけるプリンタドライバの有無を確認することで、追加または削除されたプリンタドライバを特定できる。また、プリンタドライバリストにプリンタドライバ名に紐付けてプリンタアイコン名、ポート名が記載されている場合、監視アプリケーション207は、2つのリストの比較結果からプリンタアイコン名またはポート名が変更されたプリンタドライバを特定できる。
監視アプリケーション207は、S303で生成したプリンタドライバリスト1と、S305で生成したプリンタドライバリスト2を比較し、その差分から、ステップS304で検知したイベントの対象となるプリンタドライバを特定する(S306)。続いて、監視アプリケーション207は、ステップS306で特定したプリンタドライバが、監視対象のプリンタドライバか否かを判定する(S307)。判定の方法としては、プリンタドライバ名に含まれる文字列を使用する方法がある。その他、GetPrinterDriver APIを使用して取得したプリンタドライバのアーキテクチャーバージョン情報、v3プリンタドライバ、v4プリンタドライバで差異のあるプリンタドライバのインストールフォルダなどを用いる方法が考えられる。また、これらの情報を組み合わせて判定しても良い。例えば、監視アプリケーション207は、所定の製造元のプリンタドライバであり、かつ、v4プリンタドライバであるという両者の条件を満たすプリンタドライバを監視対象のプリンタドライバとして判定しても良い。また、監視アプリケーション207は、上記両者の条件のうち少なくとも1つを満たすプリンタドライバを監視対象のプリンタドライバと判定しても良い。ステップS307の判定によって、ステップS306で特定したプリンタドライバが監視対象のプリンタドライバではないと判定された場合には、ステップS303に戻り、処理を継続する。ステップS307の判定によって、ステップS306で特定したプリンタドライバが監視対象のプリンタドライバであると判定された場合、監視アプリケーション207は、ステップS304で検知したイベントの種類を確認する(S308)。
監視アプリケーション207は、OSから発行されたイベントを解析することで、プリンタドライバの追加、削除、変更のいずれのイベントが発生したかを特定できる。なお、プリンタドライバリスト2を生成し、プリンタドライバリスト1と比較する処理(ステップS305、ステップS306)は、ステップS308の後に実施してもよい。ステップS308の確認の結果、イベントの種類がプリンタドライバの追加を示すイベントであれば、監視アプリケーション207は、プリンタドライバが新規にインストールされたと判断する。そして、監視アプリケーション207はプリンタドライバのインストールイベントを検知した際に実施する処理を実行する(S309)。
監視処理中にプリンタドライバのインストール処理が発生した場合におけるS309の処理の例として、監視アプリケーション207による先述の画像処理装置の能力情報の取得処理や、画像処理装置に登録された印刷可能な用紙の情報を取得するが挙げられる。そして、監視アプリケーション207は、プリンタドライバ210や印刷設定アプリケーション212に取得された情報を共有する。これにより、印刷実行時のプリンタドライバ210の処理が決定される。また、取得された情報が、印刷設定アプリケーション212により提供される印刷設定画面上に反映される。
ここで図4および図5を用いて、監視アプリケーション207から共有された画像処理装置が印刷可能な用紙の情報をもとに、印刷設定アプリケーション212の処理を決定する例を説明する。図4はOSのデバイス管理画面の一例を表す図である。デバイス管理画面401には、OSにインストールされているプリンタドライバのアイコンが表示される。プリンタアイコン402には、「AAA C−333 Printer」というプリンタアイコン名403がつけられている。ユーザがプリンタアイコン402を選択することで、プリンタアイコン402に対して実行可能な操作を示すメニュー404が表示される。
図5は印刷設定アプリケーション212の印刷設定画面を表す図であり、プリンタアイコン402の操作メニュー404の中から印刷設定405を選んだ際に表示される。501は印刷設定アプリケーション212の印刷設定画面であり、502はプリンタアイコン名である。印刷設定画面501は複数のシートを持つ構成であり、ここではそのうちの基本設定シート503が選択されている状態を示している。この基本設定シート503では、用紙の種類、用紙サイズ、印刷品質のそれぞれの設定を行うことができ、504は現在選択されている用紙の種類を示している。505は用紙の種類として選択可能な選択肢を示しており、ここに表示する選択肢は、監視アプリケーション207が画像処理装置216から取得した情報をもとに決定されている。図3の説明に戻る。ステップS308において、イベントの種類がプリンタドライバの削除を示すイベントであれば、監視アプリケーション207はプリンタドライバがアンインストールされたと判断する。そして、監視アプリケーション207は、プリンタドライバのアンインストールイベントを検知した際に実施する処理を実行する(S310)。監視処理中にプリンタドライバのアンインストール処理が発生した場合における処理の例として、監視アプリケーション207によるアンインストールされたプリンタドライバの関連ファイルを削除する処理が挙げられる。
ステップS308において、イベントの種類がプリンタドライバの変更を示すイベントであれば、監視アプリケーション207はプリンタドライバが変更されたと判断する。そして、監視アプリケーション207は、プリンタドライバの変更を検知した際に実施する処理を実行する(S311)。監視処理中にプリンタドライバの変更処理が発生した場合における処理の例として、監視アプリケーション207による先述のプリンタドライバ関連ファイル213の生成場所変更や編集といった処理が挙げられる。
なお、ステップS309〜ステップS311のいずれの処理も、監視アプリケーション207によって呼び出された他のソフトウェアが実施してもよい。また、S309−S311がプリンタドライバを特定する必要なく実施できる処理である場合や、イベント検知時にイベント対象のプリンタドライバが特定できる場合には、S303、S305−S307がスキップされても良い。
なお、図3のステップS303〜ステップS311の処理は、監視アプリケーション207が起動している間、繰り返される。また、監視アプリケーションは、監視対象のプリンタドライバの追加(インストール)、削除(アンインストール)、変更の全てに対する処理を実行しても良いし、少なくとも1つの処理を実行しても良い。
以上説明したように、本実施形態においては、OSから通知されるイベントを監視する監視アプリケーション207を用意することで、プリンタドライバのインストール時、アンインストール時、変更時に、ベンダー独自の処理を実施することができる。
(第2の実施形態)
図6は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。第1の実施形態と異なる点は、OSへのプリンタドライバの追加、削除、変更を検知する方法である。なお、本実施形態においても、図1で説明した情報処理装置100と画像処理装置150を使用するものとする。
図6は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。第1の実施形態と異なる点は、OSへのプリンタドライバの追加、削除、変更を検知する方法である。なお、本実施形態においても、図1で説明した情報処理装置100と画像処理装置150を使用するものとする。
第1の実施形態では、図3のステップS302において、監視アプリケーション207は、OSにより提供されるFindFirstPrinterChangeNotification API、FindNextPrinterChangeNotification APIを使用し、OSへのプリンタドライバの追加、削除、変更を監視するためのイベント登録を行った。本実施形態では、こうしたOSが提供するイベントの仕組みを利用せずにOSへのプリンタドライバの追加、削除、変更を監視する方法について説明する。
OS、インストーラまたはプリンタドライバによって監視アプリケーション207が起動される(S601)。S601の後、監視アプリケーション207による監視処理が始まる。監視アプリケーション207は、OSが提供するEnumPrinters APIを使用してOSにインストールされている全てのプリンタの情報(PRINTER_INFO構造体)を取得する。そして、監視アプリケーション207は、この情報を元にプリンタドライバ名やプリンタアイコン名を列挙したプリンタドライバリスト1を生成する(S602)。その後、所定時間経過した後において(S603)、監視アプリケーション207は、ステップS602と同様の方法で、プリンタドライバリスト2を生成する(S604)。
なお、二つのプリンタドライバリストを生成する目的は、イベント検知前後で追加、削除、変更されたプリンタドライバを特定するためである。監視アプリケーション207はステップS602で生成したプリンタドライバリスト1と、ステップS604で生成したプリンタドライバリスト2を比較する。監視アプリケーション207は、両者の比較結果から、ステップS603の前後でプリンタドライバの追加、削除、変更が行われたか否かを判別することができる。二つのリストに差分がなければ、ステップS603に戻って処理を継続する。ステップS605の比較の結果、二つのリストに差分があった場合には、差分として特定されたプリンタドライバが監視対象のプリンタドライバか否かを判定する(S606)。判定の方法は、S307と同じである。S606の判定の結果、S605で差分として特定されたプリンタドライバが監視対象のプリンタドライバでないと判定された場合、監視アプリケーション207は、ドライバリスト1の内容を更新する(S607)。なお、S607の更新処理とは、ドライバリスト2の内容でドライバリスト1の内容を上書きする処理に相当する。
そして、ステップS603に戻って処理を継続する。
S606においてS605で差分として特定されたプリンタドライバが監視対象のプリンタドライバであると判定された場合、監視アプリケーション207は、二つのリストの差分からプリンタドライバについて発生したイベントの種類を判定する(S608)。例えばプリンタドライバリスト1に記載されていないプリンタドライバがプリンタドライバリスト2に存在する場合、ステップS603の前後でプリンタドライバが追加されたと判定できる。一方、プリンタドライバ1に記載されているプリンタドライバがプリンタドライバ2に存在しない場合には、ステップS603の前後でプリンタドライバが削除されたと判定できる。また、プリンタドライバリストに記載する情報を工夫することで、プリンタドライバの変更も検知することができる。例えばプリンタドライバ名に紐付けてプリンタアイコン名、ポート名などを記載しておけば、プリンタアイコン名、ポート名が変更されてもそのことを検知することができる。ステップS608〜S611の処理は、第1の実施形態にて説明しているため詳細は省略する。S609、S610またはS611の処理の後、監視アプリケーション207は、ドライバリスト1の内容を更新し(S612)、ステップS603に戻って処理を継続する。S612の更新処理の一例は、ドライバリスト2の内容でドライバリスト1の内容を上書きする処理である。なお、ステップS603〜ステップS612の処理は、監視アプリケーション207が起動している間、繰り返される。また、ステップS605で差分として複数のプリンタドライバが特定された場合、任意の一つのプリンタドライバが選定されてS606以降の処理が実行される。S607またはS612のリスト1の更新処理において、選定したそのプリンタドライバについてのみの更新を行うことにより、ここで選定されなかった残りのプリンタドライバを再度S603に戻った後の処理で差分として抽出することが可能となる。
以上説明したように、本実施形態においては、OSが提供するイベントの仕組みを利用せずにOSへのプリンタドライバの追加、削除、変更を監視することが可能となる。
(第3の実施形態)
図7は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。ここでは、監視アプリケーション207の終了処理について説明する。監視アプリケーション207はインストーラやプリンタドライバによってスタートアップに登録されるため、基本的にはOSの起動直後に処理を開始し、OSの終了時に処理を終了する。しかしながら、OSに監視対象のプリンタドライバが存在しない状況で処理を続けてしまうと、情報処理装置のメモリやCPUリソースを無駄に消費してしまうことになる。そこで本実施形態では、OSに監視対象のプリンタドライバが存在するか否かを確認し、存在しない場合に監視アプリケーション207の処理を終了することによって、不要なリソース消費を抑える方法について説明する。なお、本実施形態においても、図1で説明した情報処理装置100と画像処理装置150を使用するものとする。
図7は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。ここでは、監視アプリケーション207の終了処理について説明する。監視アプリケーション207はインストーラやプリンタドライバによってスタートアップに登録されるため、基本的にはOSの起動直後に処理を開始し、OSの終了時に処理を終了する。しかしながら、OSに監視対象のプリンタドライバが存在しない状況で処理を続けてしまうと、情報処理装置のメモリやCPUリソースを無駄に消費してしまうことになる。そこで本実施形態では、OSに監視対象のプリンタドライバが存在するか否かを確認し、存在しない場合に監視アプリケーション207の処理を終了することによって、不要なリソース消費を抑える方法について説明する。なお、本実施形態においても、図1で説明した情報処理装置100と画像処理装置150を使用するものとする。
OS、インストーラまたはプリンタドライバによって監視アプリケーション207が起動される(S701)。監視アプリケーション207は、OSが提供するEnumPrinters APIを使用してOSにインストールされている各プリンタの情報(PRINTER_INFO構造体)を取得する。そして、監視アプリケーション207は、この情報を元にプリンタドライバ名を列挙したプリンタドライバリストを生成する(S702)。続いて、監視アプリケーション207は、プリンタドライバリストに含まれるプリンタドライバの総数を変数nにセットする(S703)。次に、監視アプリケーション207は、プリンタドライバリストに含まれる一つ目のプリンタドライバを選定し(S704)、そのプリンタドライバが監視対象のプリンタドライバか否かを判定する(S705)。なお、判定の方法は、S307と同様である。ステップS705の判定の結果、選定したプリンタドライバが監視対象のプリンタドライバであると判定された場合には、OSに監視対象のプリンタドライバが存在することになり、監視アプリケーション207は処理を継続する。一方、ステップS705の判定によって、選定されたプリンタドライバが監視対象のプリンタドライバでないと判定された場合、監視アプリケーション207は、ドライバリストに含まれる他のプリンタドライバを選定する(S704)。そして、監視アプリケーション207は、再びステップS705の判定を実施する。プリンタドライバリストに含まれるすべてのプリンタドライバについてステップS705の判定を行った結果、いずれも監視対象のプリンタでないと判定された場合には、監視アプリケーション207は処理を終了する(S706)。ここで終了する処理は、監視アプリケーション207の全ての処理であってもよいし、第1の実施形態または第2の実施形態で説明したプリンタドライバの追加、削除または変更を検知する処理であってもよい。後者の場合、定期的に本実施形態で説明した処理を実施することで、新たに監視対象のプリンタドライバがOSに追加されたとしても、そのことを検知し、再び第1の実施形態または第2の実施形態で説明した処理を再開することが可能となる。なお、S705の判定においてYesと判定された場合、図7の処理に続いて、監視アプリケーション207は、第1の実施形態または第2の実施形態に記載した内容に基づく監視処理を実行する。
なお、ステップS703以降の処理は、S303で生成したドライバリスト1に対して実施してもよいし、S602で生成したドライバリスト1、またはS604で生成したドライバリスト2に対して実施してもよい。また、第1の実施形態もしくは第2の実施形態とは関係なく実施してもよい。
(第4の実施形態)
図8は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。第3の実施形態では、OSに監視対象のプリンタドライバが存在しない場合に、監視アプリケーション207の処理を終了する説明した。しかしながら、監視アプリケーション207が処理を終了したとしても、監視アプリケーション207はスタートアップに残ったままであり、OSが再度起動されたタイミングで処理を開始してしまう。そこで本実施形態では、OSに監視対象のプリンタドライバがないことを検知した際、監視アプリケーション207が第1の実施形態または第2の実施形態で説明した処理を停止し、その後に自らを削除する処理について説明する。なお、本実施形態においても、図1で説明した情報処理装置100と画像処理装置150を使用するものとする。
図8は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。第3の実施形態では、OSに監視対象のプリンタドライバが存在しない場合に、監視アプリケーション207の処理を終了する説明した。しかしながら、監視アプリケーション207が処理を終了したとしても、監視アプリケーション207はスタートアップに残ったままであり、OSが再度起動されたタイミングで処理を開始してしまう。そこで本実施形態では、OSに監視対象のプリンタドライバがないことを検知した際、監視アプリケーション207が第1の実施形態または第2の実施形態で説明した処理を停止し、その後に自らを削除する処理について説明する。なお、本実施形態においても、図1で説明した情報処理装置100と画像処理装置150を使用するものとする。
なお、S801〜S806は、図7のS701〜S706と同様の処理であるため詳細な説明は省略する。ステップS807において、監視アプリケーション207自体を削除する。ステップS807の処理の例としては、監視アプリケーション207を削除するコマンドを記載したバッチファイルを生成し、これを別プロセスで実行する処理が考えられる。
なお、ステップS803以降の処理は、第1の実施形態のステップS303で生成したドライバリスト1に対して実施しても良い。または、第2の実施形態のステップS602で生成したドライバリスト1、またはステップS604で生成したドライバリスト2に対して実施しても良い。また、第1の実施形態もしくは第2の実施形態とは関係なく実施してもよい。
(第5の実施形態)
図9は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。第1の実施形態または第2の実施形態で説明したように、監視アプリケーション207は、監視アプリケーション207起動後のOSへのプリンタドライバの追加を監視する。そのため、監視アプリケーション207が起動する前に既にインストールされているプリンタドライバの中に監視対象となるプリンタドライバがある場合、そうしたプリンタドライバに対して、インストールを検知した際の処理を実施できない。そこで本実施形態では、監視アプリケーション207が起動する前にインストールされているプリンタドライバの有無を確認し、必要に応じて、プリンタドライバのインストールを検知した際の処理を行う方法について説明する。なお、本実施形態においても、図1で説明した情報処理装置100と画像処理装置150を使用するものとする。また、本実施形態では、第1の実施形態で例に挙げた画像処理装置216から取得した情報をプリンタドライバ210に共有する処理をインストール時処理として実施するものとする。
図9は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。第1の実施形態または第2の実施形態で説明したように、監視アプリケーション207は、監視アプリケーション207起動後のOSへのプリンタドライバの追加を監視する。そのため、監視アプリケーション207が起動する前に既にインストールされているプリンタドライバの中に監視対象となるプリンタドライバがある場合、そうしたプリンタドライバに対して、インストールを検知した際の処理を実施できない。そこで本実施形態では、監視アプリケーション207が起動する前にインストールされているプリンタドライバの有無を確認し、必要に応じて、プリンタドライバのインストールを検知した際の処理を行う方法について説明する。なお、本実施形態においても、図1で説明した情報処理装置100と画像処理装置150を使用するものとする。また、本実施形態では、第1の実施形態で例に挙げた画像処理装置216から取得した情報をプリンタドライバ210に共有する処理をインストール時処理として実施するものとする。
なお、S901〜S905は、S701〜S705と同様の処理であるため詳細な説明は省略する。ステップS905の判定の結果、選定したプリンタドライバが監視対象のプリンタドライバであると判定された場合、監視アプリケーション207は、そのプリンタドライバに対してインストール時処理が必要か否かを判定する。判定の方法としては例えば、インストール時処理の際にプリンタドライバ関連ファイル213を生成するのであれば、監視アプリケーション207は、プリンタドライバ関連ファイルの存在もしくは内容を確認する方法が考えられる。既にファイルが存在する場合、もしくはファイルが存在し、その中にインストール時処理の際に記載する情報が既に記載されている場合、監視アプリケーション207は、インストール時処理は不要と判定する。そして、監視アプリケーション207は、ドライバリストに含まれる他のプリンタドライバを選定し(S904)、再びステップS905の判定を実施する。なお、ステップS905の判定ついては、インストール時処理の際にレジストリを経由して情報を共有するのであれば、そのレジストリ情報の有無を確認して判定しても良い。または、プリンタドライバ210が公開する関数を呼び出して、インストール時処理が完了しているか否かの情報を返却してもらって判定しても良い。また、インストール時処理を繰り返し行っても問題ない場合には、ステップS906の判定は行わずに、ステップS907に進んでもよい。ステップS906の判定において、ステップS904で選定したプリンタドライバに対してインストール時処理が必要と判定された場合には、ステップS904で選定されたプリンタドライバについて、インストール時処理を実施する(S907)。ステップS907で実施する処理の例は、第1の実施形態に記載の通りである。なお、ステップS907で実施する処理は、監視アプリケーション207によって呼び出された他のソフトウェアが実施してもよい。
また、S902で生成したリストに含まれる全プリンタドライバに対してS904〜S907を実施することで、監視アプリケーション207の起動前にインストールされているプリンタドライバに、インストールを検知した際に行う処理が実施される。
(第6の実施形態)
図10は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。第1の実施形態または第2の実施形態で説明したように、監視アプリケーション207は、監視アプリケーション207起動後のOSからのプリンタドライバの削除を監視する。そのため、監視アプリケーション207が起動する前に既にプリンタドライバがアンインストールされている場合には、アンインストールを検知した際に行う処理を実施することができない。そこで本実施形態では、監視アプリケーション207が起動する前にアンインストールされたプリンタドライバに対する処理について説明する。なお、本実施形態においても、図1で説明した情報処理装置100と画像処理装置150を使用するものとする。また、本実施形態では、第1の実施形態で例に挙げたプリンタドライバ関連ファイル213を削除する処理を、アンインストール時処理として行うものとする。
図10は、本実施の形態における監視アプリケーションの処理の流れを示すフローチャートである。第1の実施形態または第2の実施形態で説明したように、監視アプリケーション207は、監視アプリケーション207起動後のOSからのプリンタドライバの削除を監視する。そのため、監視アプリケーション207が起動する前に既にプリンタドライバがアンインストールされている場合には、アンインストールを検知した際に行う処理を実施することができない。そこで本実施形態では、監視アプリケーション207が起動する前にアンインストールされたプリンタドライバに対する処理について説明する。なお、本実施形態においても、図1で説明した情報処理装置100と画像処理装置150を使用するものとする。また、本実施形態では、第1の実施形態で例に挙げたプリンタドライバ関連ファイル213を削除する処理を、アンインストール時処理として行うものとする。
S1001−S1003はS701−S703の処理と同様であるため詳細な説明は省略する。次に、監視アプリケーション207は、OSが参照する記憶領域に配置されているプリンタドライバ関連ファイルのリスト(以後、ファイルリスト)を生成し(S1004)、リストに含まれるプリンタドライバ関連ファイルの総数を変数nにセットする。その後、監視アプリケーション207は、ファイルリストに含まれる一つ目のファイルを選定する(S1006)。ステップS1007において、監視アプリケーション207は、プリンタドライバリストに含まれる一つ目のプリンタドライバを選定する。そして、監視アプリケーション207は、ステップS1006で選定したプリンタドライバ関連ファイルが、ステップS1007で選定したプリンタドライバに関連するものか否かを判定する(S1008)。その結果、ステップS1007で選定したプリンタドライバに関連するファイルであると判定された場合、監視アプリケーション207は、ファイルリストに含まれる他のプリンタドライバ関連ファイルを選定する(S1006)。監視アプリケーション207は、再びステップS1007の処理を実施する。S1008の判定の結果、S1006で選定されたプリンタドライバ関連ファイルが、S1007で選定されたプリンタドライバに関連するファイルでない場合、監視アプリケーション207は、リストに含まれる他のプリンタドライバを選定する(S1007)。そして、監視アプリケーション207は、再びステップS1008の判定を実施する。S1006で選定したドライバ関連ファイルが、S1002で生成したリストに含まれるプリンタドライバに関連しない場合、監視アプリケーション207は、アンインストール時処理として、そのプリンタドライバ関連ファイルを削除する(S1009)。なお、ステップS1009で実施する処理は、監視アプリケーション207によって呼び出された他のソフトウェアが実施してもよい。S1004で生成したリスト内の全プリンタドライバ関連ファイルにS1007〜S1009を実施することで、監視アプリケーション207の起動前にアンインストールされたプリンタドライバに、アンインストールを検知した際に行う処理が実施される。
なお、本願では、OSとして、Windowsが使用された例を用いて説明したが、他のOSが用いられる時に本願のいずれかの処理が実行されても良い。
さらにまた、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。また、プログラムは、1つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、処理の一部または全部をASIC等のハードウェアで実現するようにしてもよい。また、CPUも1つのCPUで全ての処理を行うものに限らず、複数のCPUが適宜連携をしながら処理を行うものとしてもよい。
100 情報処理装置
101 キーボード
102 入力インタフェース
103 CPU
104 ROM
105 RAM
101 キーボード
102 入力インタフェース
103 CPU
104 ROM
105 RAM
Claims (15)
- 画像処理装置と通信可能な情報処理装置であって、
前記情報処理装置が起動された場合に監視処理を実行する監視手段と、
前記監視手段による監視処理中に前記プリンタドライバのインストール処理が発生した場合における前記プリンタドライバに対応する前記画像処理装置に関する情報を取得する第1の処理、および、前記監視手段による監視処理中に前記プリンタドライバのアンインストール処理が発生した場合における前記アンインストールされたプリンタドライバの関連ファイルを削除する第2の処理、および、前記監視手段による監視処理中に前記プリンタドライバの変更処理が発生した場合における前記プリンタドライバに対応するファイルを変更する第3の処理の少なくとも1つを実行する実行手段を有し、
前記関連ファイルは、前記アンインストールされたプリンタドライバに関連し、かつ、前記アンインストールされたプリンタドライバを構成するファイルとは異なることを特徴とする情報処理装置。 - 前記プリンタドライバのインストール処理またはアンインストール処理が発生した場合にイベントを通知するように、前記情報処理装置にて動作するオペレーティングシステムに対して、イベント登録処理を行う登録手段を更に有し、
前記監視手段は、前記監視処理として前記オペレーティングシステムから通知されるイベントを監視することを特徴とする請求項1に記載の情報処理装置。 - 前記情報処理装置にて動作するオペレーティングシステムにより管理されているプリンタドライバを示す第1リストを取得する第1取得手段と、
前記第1リストを取得してから所定時間経過した後に、前記オペレーティングシステムにより管理されているプリンタドライバを示す第2リストを取得する第2取得手段を更に有し、
前記監視手段は、前記第1および前記第2リストに基づいて、監視対象のプリンタドライバに対するインストール処理またはアンインストール処理が発生したか否かを判定することを特徴とする請求項1に記載の情報処理装置。 - 前記第1の処理が実行された場合、前記監視対象のプリンタドライバの設定画面に、前記第1の処理により取得された前記画像処理装置に関する情報が反映されることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
- 前記情報処理装置において動作するオペレーティングシステムは、前記プリンタドライバを構成するファイルとして前記画像処理装置とのデータの送受信を行うランゲージモニタプログラムを含めることを制限することを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
- 前記情報処理装置においてオペレーティングシステムが動作している間、前記監視手段は、前記監視対象のプリンタドライバの有無に関わらず、前記監視処理を継続することを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
- 前記監視対象のプリンタドライバが存在しないと判定された場合、前記監視手段の動作が停止されることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
- 画像処理装置と通信可能な情報処理装置において実行される制御方法であって、
前記情報処理装置が起動された場合に監視処理を実行する監視ステップと、
前記監視処理中に前記プリンタドライバのインストール処理が発生した場合における前記プリンタドライバに対応する前記画像処理装置に関する情報を取得する第1の処理、および、前記監視処理中に前記プリンタドライバのアンインストール処理が発生した場合における前記アンインストールされたプリンタドライバの関連ファイルを削除する第2の処理、および、前記監視処理中に前記プリンタドライバの変更処理が発生した場合における前記プリンタドライバに対応するファイルを変更する第3の処理の少なくとも1つを実行する実行ステップを有し、
前記関連ファイルは、前記アンインストールされたプリンタドライバに関連し、かつ、前記アンインストールされたプリンタドライバを構成するファイルとは異なることを特徴とする制御方法。 - コンピュータに、
前記コンピュータが起動された場合に監視処理を実行する監視ステップと、
前記監視処理中に前記プリンタドライバのインストール処理が発生した場合における前記プリンタドライバに対応する前記画像処理装置に関する情報を取得する第1の処理、および、前記監視処理中に前記プリンタドライバのアンインストール処理が発生した場合における前記アンインストールされたプリンタドライバの関連ファイルを削除する第2の処理、および、前記監視処理中に前記プリンタドライバの変更処理が発生した場合における前記プリンタドライバに対応するファイルを変更する第3の処理の少なくとも1つを実行する実行ステップを実行させ、
前記関連ファイルは、前記アンインストールされたプリンタドライバに関連し、かつ、前記アンインストールされたプリンタドライバを構成するファイルとは異なることを特徴とするプログラム。 - 前記プリンタドライバのインストール処理またはアンインストール処理が発生した場合にイベントを通知するように、オペレーティングシステムに対して、イベント登録処理を行う登録ステップを更に実行させ、
前記監視処理として前記オペレーティングシステムから通知されるイベントが監視されることを特徴とする請求項9に記載のプログラム。 - オペレーティングシステムにより管理されているプリンタドライバを示す第1リストを取得する第1取得ステップと、
前記第1リストを取得してから所定時間経過した後に、前記オペレーティングシステムにより管理されているプリンタドライバを示す第2リストを取得する第2取得ステップを更に実行させ、
前記第1および前記第2リストに基づいて、監視対象のプリンタドライバに対するインストール処理またはアンインストール処理が発生したか否かが判定されることを特徴とする請求項9に記載のプログラム。 - 前記第1の処理が実行された場合、前記監視対象のプリンタドライバの設定画面に、前記第1の処理により取得された前記画像処理装置に関する情報が反映されることを特徴とする請求項9乃至11のいずれか1項に記載のプログラム。
- 前記コンピュータにより制御されるオペレーティングシステムは、前記プリンタドライバを構成するファイルとして前記画像処理装置とのデータの送受信を行うランゲージモニタプログラムを含むことを制限することを特徴とする請求項9乃至12のいずれか1項に記載のプログラム。
- 前記コンピュータにより制御されるオペレーティングシステムが動作している間、前記監視対象のプリンタドライバの有無に関わらず、前記監視処理が継続されることを特徴とする請求項9乃至13のいずれか1項に記載のプログラム。
- 前記監視対象のプリンタドライバが存在しないと判定された場合、前記監視ステップの動作が停止されることを特徴とする請求項9乃至14のいずれか1項に記載のプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016226553A JP2018084893A (ja) | 2016-11-22 | 2016-11-22 | 情報処理装置、制御方法およびプログラム |
US15/816,828 US10356267B2 (en) | 2016-11-22 | 2017-11-17 | Information processing apparatus, control method, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016226553A JP2018084893A (ja) | 2016-11-22 | 2016-11-22 | 情報処理装置、制御方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018084893A true JP2018084893A (ja) | 2018-05-31 |
Family
ID=62148037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016226553A Pending JP2018084893A (ja) | 2016-11-22 | 2016-11-22 | 情報処理装置、制御方法およびプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10356267B2 (ja) |
JP (1) | JP2018084893A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020087255A (ja) * | 2018-11-30 | 2020-06-04 | ブラザー工業株式会社 | サポートプログラム、情報処理装置、および印刷方法 |
WO2020158716A1 (ja) * | 2019-02-01 | 2020-08-06 | ブラザー工業株式会社 | サポートプログラム、情報処理装置、および印刷方法 |
JP2021022313A (ja) * | 2019-07-30 | 2021-02-18 | ブラザー工業株式会社 | プログラム |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022138929A (ja) * | 2021-03-11 | 2022-09-26 | シャープ株式会社 | インストールプログラム及びインストール方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7319533B2 (en) * | 2003-01-06 | 2008-01-15 | Sharp Laboratories Of America, Inc. | System for face-up printing from a duplex printer |
JP2005338940A (ja) * | 2004-05-24 | 2005-12-08 | Canon Inc | インストール方法、情報処理装置、及びデバイスドライバ |
US20080120614A1 (en) * | 2006-11-21 | 2008-05-22 | Brother Kogyo Kabushiki Kaisha | Device, Method, and Computer Usable Medium for Installing Programs |
US20080244567A1 (en) * | 2007-03-30 | 2008-10-02 | Konica Minolta Systems Laboratory, Inc. | Portable printer driver |
JP5284023B2 (ja) * | 2007-10-05 | 2013-09-11 | キヤノン株式会社 | 情報処理装置および制御方法および制御プログラム |
US8155019B2 (en) * | 2008-01-07 | 2012-04-10 | Canon Kabushiki Kaisha | Information processing apparatus, device information display method, and computer-readable storage medium |
JP5513018B2 (ja) * | 2008-06-27 | 2014-06-04 | キヤノン電子株式会社 | 周辺装置及び画像読取装置 |
KR101324188B1 (ko) * | 2008-07-01 | 2013-11-07 | 삼성전자주식회사 | 화상형성장치, 호스트 클라이언트, 화상형성시스템 및화상형성시스템의 관리방법 |
JP5383254B2 (ja) * | 2009-02-27 | 2014-01-08 | キヤノン株式会社 | 情報処理装置及びその制御方法、並びにプログラム |
JP5278047B2 (ja) * | 2009-03-04 | 2013-09-04 | 株式会社リコー | 情報処理装置とプログラムとコンピュータ読み取り可能な記録媒体 |
JP5370253B2 (ja) * | 2010-04-27 | 2013-12-18 | ブラザー工業株式会社 | 制御装置、プログラム、及び管理方法 |
US20120017208A1 (en) * | 2010-07-14 | 2012-01-19 | Mark Lussier | System and method for updating device drivers |
JP2013206386A (ja) * | 2012-03-29 | 2013-10-07 | Canon Inc | 情報処理装置及びその制御方法、並びにプログラム |
JP6351405B2 (ja) * | 2013-12-16 | 2018-07-04 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
JP6217669B2 (ja) * | 2015-02-27 | 2017-10-25 | コニカミノルタ株式会社 | プリンタードライバープログラム |
-
2016
- 2016-11-22 JP JP2016226553A patent/JP2018084893A/ja active Pending
-
2017
- 2017-11-17 US US15/816,828 patent/US10356267B2/en active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020087255A (ja) * | 2018-11-30 | 2020-06-04 | ブラザー工業株式会社 | サポートプログラム、情報処理装置、および印刷方法 |
JP7230467B2 (ja) | 2018-11-30 | 2023-03-01 | ブラザー工業株式会社 | サポートプログラム、情報処理装置、および印刷方法 |
WO2020158716A1 (ja) * | 2019-02-01 | 2020-08-06 | ブラザー工業株式会社 | サポートプログラム、情報処理装置、および印刷方法 |
JP2020126364A (ja) * | 2019-02-01 | 2020-08-20 | ブラザー工業株式会社 | サポートプログラム、情報処理装置、および印刷方法 |
US11429320B2 (en) | 2019-02-01 | 2022-08-30 | Brother Kogyo Kabushiki Kaisha | Information processing apparatus configured to perform printing using a general-use printing program, non-transitory computer-readable recording medium and printing method therefor |
JP7293684B2 (ja) | 2019-02-01 | 2023-06-20 | ブラザー工業株式会社 | サポートプログラム、情報処理装置、および印刷方法 |
US11768638B2 (en) | 2019-02-01 | 2023-09-26 | Brother Kogyo Kabushiki Kaisha | Information processing apparatus configured to perform printing using a general-use printing program, non-transitory computer-readable recording medium and printing method therefor |
JP2021022313A (ja) * | 2019-07-30 | 2021-02-18 | ブラザー工業株式会社 | プログラム |
JP7331534B2 (ja) | 2019-07-30 | 2023-08-23 | ブラザー工業株式会社 | プログラム |
Also Published As
Publication number | Publication date |
---|---|
US10356267B2 (en) | 2019-07-16 |
US20180146110A1 (en) | 2018-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230071250A1 (en) | Information processing apparatus, control method, and a storage medium | |
US8640148B2 (en) | Information processing apparatus, information processing method and storage medium | |
CN110321086B (zh) | 非暂时性计算机可读记录介质以及控制信息处理装置的方法 | |
KR102248494B1 (ko) | 정보 처리 장치, 정보 처리 방법, 및 저장 매체 | |
EP2474906A2 (en) | Network device management system, network device management apparatus, client apparatus, and network device management method | |
US9417862B2 (en) | Information processing apparatus, function extension method for information processing apparatus, and non-transitory computer-readable storage medium | |
JP2018128790A (ja) | 情報処理装置、プログラム、インストール方法 | |
US20130301069A1 (en) | Information processing device, computer program product, and image forming apparatus | |
JP5728896B2 (ja) | 印刷システム及びプログラム | |
JP2018084893A (ja) | 情報処理装置、制御方法およびプログラム | |
JP2011227674A (ja) | 管理装置、その制御方法およびプログラム | |
JP2011180681A (ja) | インストーラ及びプリンタドライバのインストール方法 | |
WO2014136429A1 (en) | Information processing apparatus and method for the same | |
JP6303667B2 (ja) | プログラム、情報処理装置および情報処理システム | |
US8422040B2 (en) | Image forming system and method, management apparatus, and recording medium | |
EP3893102A1 (en) | Information processing device, server device, control method, and control program | |
US10338857B2 (en) | Information processing apparatus, information processing system, and information processing method | |
EP2234014A2 (en) | Information processing apparatus, information processing method, and information processing system | |
US10602011B2 (en) | Image forming apparatus, information processing method, and program | |
JP6906990B2 (ja) | 情報処理装置、制御方法、およびプログラム | |
JP2021043547A (ja) | 情報処理装置および情報処理装置の制御方法ならびにプログラム | |
JP2015121887A (ja) | 情報処理装置及びその制御方法、およびプログラム | |
US11327693B2 (en) | Computer-readable medium, information processing device, and Method for installing appropriate program | |
JP2018112817A (ja) | プリンタードライバーアンインストーラー | |
JP2023166076A (ja) | 画像処理装置、画像処理装置の制御方法、及びプログラム |