<第1の実施の形態>
以下、本発明の実施の形態を、図面を参照して説明する。
以下で引用されるWindows(登録商標) Vista OSの情報の内、特に詳しい説明を付加していないものに関しては、2008年9月29日現在、Microsoft Developer Network (MSDN)のサイトで公開されている。以下にそのインターネットのURLを示す。(http://msdn.microsoft.com/en−us/library/default.aspx)
図1は本発明に係る情報処理装置及び周辺装置からなる周辺装置制御システムの一実施形態におけるシステムの構成部分を表すブロック図である。同図において、1、2は情報処理装置であり、一般的なパーソナルコンピュータ(以降、PCと略す場合がある)で構成される。PC1、PC2は図2(a)で後述するようなハードウェアで構成され、OS(Operating System)として米国マイクロソフト社のWindows(登録商標) Vistaと同等のOSがインストールされている。PC1、PC2はそれぞれEthernet(登録商標)で構成されるネットワーク4、8に接続されている。3はマルチファンクションプリンタ(以降、MFPと略す場合がある)であり、カラーインクジェットプリンタ、カラーファクシミリ、カラースキャナ、フラッシュメモリ用の外部ストレージ等で構成され、本発明における周辺装置の一例としている。MFP3はABC社製のKmmnというモデル名のMFPである。MFP3のメインの機能はプリンタ機能であり、ファクシミリ機能とスキャナ機能に関してはサブ機能である。尚、本発明における周辺装置としては、プリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、及びこれらの複合機能を備える装置等であってもよい。MFP3は図2(b)で後述するようなハードウェアで構成され、PC1とネットワーク4を介して接続されており、互いに双方向通信が可能である。80はアプリケーションであり、Windows(登録商標)用の実行可能形式のファイル(*.EXE)で構成される。本発明のアプリケーションの一例として、アプリケーション80は図7(a)に示すようなデバイス管理(Device Management)である。50は図4に示すようなプリンタドライバである。150は図14に示すようなFAXドライバである。ネットワーク4は、MFP3を使用するユーザ(顧客)が住んでいる自宅に構築された一般家庭用のホームネットワークである。MFP3はこの自宅内でネットワーク4を介してPC1と接続されて家族間で共有使用されているMFPである。ネットワーク8はABC社内に構築されたオフィスネットワークである。ネットワーク8に接続されているPC2はWebサーバの機能を備えるWebサーバ9を備えており、インターネットを介してABC社のWebサイトを提供している。10はPC1に挿入可能なCD−ROMであり、ソフトウェアや電子ファイルが格納されている。11、12は図8で後述するデバイス管理制御用ファイルであり、Webサーバ9やCD−ROM10から配布される。5はアナログ電話回線であり、PC1におけるファクシミリの送信または受信に使用される。6はフラッシュメモリであり、MFP3のフラッシュメモリ装着用のスロット(図では省略)に装着することで、PC1からストレージとして参照することができる。7はプリンタであり、XYZ社製のDefgというモデルである。プリンタ7はMFP3とは全く異なるデバイスである。
図2(a)はPCのハードウェア構成の一例を表すブロック図である。PC1、PC2は同図に示すようなハードウェアで構成されている。同図ではPC1の例で説明する。
同図に示す通り、PC1はランダムアクセスメモリ部(RAM1201)、記憶部であるハードディスクドライブ部(HDD1202)、入力部の一例であるキーボード部(KBD1203)、制御部のCPU1204である。さらに、表示部の一例である表示用ディスプレイ(LCD1205)、通信制御部の一例であるネットワークボード(NB1207)、以上のPC1の構成要素を互いに接続するバス1206から構成される。尚、記憶部は、可搬性CD−ROMまたは内部据付のROMなどであってもよい。デバイス管理80等のアプリケーションや、図3、図4、図14に示す各モジュール(ソフトウェア)は、HDD1202に記憶され、必要に応じてRAM1201に読み出されてCPU1204により実行される。これにより、CPU1204が、デバイス管理80等のアプリケーションや、図3、図4、図14に示す各モジュール(ソフトウェア)の機能を実現する。
図2(b)はMFPのハードウェア構成を表すブロック図である。MFP3は同図に示すようなハードウェア構成を持つ。同図において、15はマイクロプロセッサ等から構成されるCPUである。CPUは、MFP3の中央処理装置として、ROM16に記憶されているプログラムに従って、RAM17、通信部18、記録部19、操作部20、表示部21、読取り部22、ファクシミリ制御部23、外部ストレージ制御部24を制御する。ROM16にはプリンタドライバ50(図4で後述する)の制御に従ってMFP3が記録(印刷)処理や、状態をPC1へ伝える処理を行うプログラムが記憶されている。また、ROM16には、FAXドライバ150(図14で後述する)の制御に従ってMFP3がファクシミリの送信または受信処理や、ファクシミリの送信または受信の状態をPC1へ伝える処理を行うプログラムも記憶されている。RAM17は主にPC1から送られて、それをもとに記録部19によって印刷される印字データが一時的に記憶される。また、RAM17には、読取り部22で読取られた画像データ、PC1から送られてきたファクシミリの送信データ、ファクシミリ制御部で受信されたファクシミリの受信データ等も一時的に記憶される。通信部18にはネットワーク4用の接続ポートやアナログ電話回線5用の接続ポート等が含まれており、Ethernet(登録商標)やファクシミリのアナログ通信を制御する。記録部19は、インクジェット方式の記録ヘッド、各カラーインク、キャリッジ、記録紙搬送機構等から構成される記録ユニットと、前記印字データをもとに前記記録ヘッドにて印字用パルスを発生させる為のASIC等から構成される電気回路とから構成される。印刷可能なアプリケーション上での印刷操作またはファクシミリの送信操作によって、アプリケーションで開かれているファイルの表示内容(画像データ)が、EMF形式のスプールファイルとしてPC1のHDD1202に一時的に格納される。そして、画像データは、プリンタドライバ50またはFAXドライバ150を介してMFP3制御用コマンドを含む印字データまたはファクシミリの送信データに変換された後、ネットワーク4を介してMFP3に送られる。MFP3にて受信された印字データは、記録部19で印字用パルスに変換されて、記録紙上に印刷される。MFP3にて受信されたファクシミリの送信データは、ファクシミリ制御部23でファクシミリの通信プロトコルに変換されて、アナログ電話回線5を介して相手先のファクシミリ装置に送信される。20は操作部であり、電源ボタン、リセットボタン等の各種ボタンから構成され、MFP3を操作することができる。21は表示部であり、タッチパネルの液晶ディスプレイで構成され、MFP3の状態の表示や、各種設定や電話番号の表示、入力等を行うことができる。22は読取り部であり、カラーイメージセンサや画像処理用のASIC等から構成される電気回路とから構成される。23はファクシミリ制御部であり、ファクシミリ用のモデムやアナログ通信回路等から構成され、ファクシミリの通信プロトコルに従ってファクシミリの送信や受信を制御する。24は外部ストレージ制御部であり、フラッシュメモリ装着用のスロットやストレージ用のインタフェース回路等から構成され、装着されたフラッシュメモリを制御する。
図3はPCのソフトウェア構成を表す図である。
同図において、92はEthernet(登録商標)を制御するEthernet(登録商標)制御スタックである。91はIP Networkを制御するIP Network制御スタックである。90はWSDを制御するWSD制御スタック、89はIHVの独自プロトコルを制御するIHVネイティブプロトコル制御スタックである。88はネットワークのプラグ アンドプレイ(以降、N−PnPと略す場合がある)を制御するN−PnP制御スタックである。
尚、ネットワーク接続デバイスに対するサポートを提供する、プラグ アンド プレイの一連の拡張機能としてWindows(登録商標) Vista OSに標準搭載されている機能として、Plug and Play Extensions(PnP−X)が存在する。しかしながら、本実施例ではこれと同等の機能として前記N−PnPを利用する例で説明する。85はデバイスドライバ群であり、OSに標準で同梱されている標準ドライバ群87とIHVから提供されるIHV製ドライバ群86から構成される。84はアプリケーション/DDIインタフェースであり、Application Programing Interface(API)、Device Driver Interface(DDI)から構成される。80はアプリケーションであり、OSに標準で同梱されているデバイス管理(Device Management)である。30は図4で後述する印刷可能なアプリケーションである。82はアプリケーション群であり、デバイス管理80、アプリケーション30等から構成される。デバイス管理80は、図7(a)で後述するプリンタキューボタン42や印刷設定ボタン43を、アプリケーション/DDIインタフェース84を介して表示できる。
図4はPCにおけるプリンタドライバの構成を表す図である。同図において、50はPC1にインストールされているMFP3用のプリンタドライバであり、33〜36、39の複数のモジュールから構成される。30は印刷可能なアプリケーションであり、例えば、OSに標準で同梱されているテキストエディタであるNotepad(Notepad.exe)等に相当する。31はGraphics Device Interface(GDI)であり、OSの一部である。32はプリンタキューであり、スプーラ40の一部として構成され、印刷ジョブがキューイングされる。キューイングされた印刷ジョブは、図15(a)に示すプリンタキューフォルダ107に表示される。33はプリントプロセッサであり、印刷レイアウトの変更や印刷画像に対する特殊処理が行われる。34はグラフィックスドライバであり、プリンタドライバの画像処理のコアとして、GDI31から送られて来る描画命令をもとに印刷用の画像処理を行い、印刷制御コマンドを作成する。35はUIモジュールであり、プリンタドライバのユーザインタフェースの提供及び制御を行う。36はランゲージモニタであり、データの通信I/Fとしてデータの送受信を制御する。39はステータスモニタであり、MFP3のインクの残量や、警告、エラー等の状態を表示する。37はポートモニタであり、ランゲージモニタ36から送られて来るデータを適切なポートに対して送信したり、MFP3から送られて来るデータをクラスドライバ38を介して受信したりする処理を行う。38はクラスドライバであり、最もポートに近いローレベルのモジュールである。本発明ではWSDやIHVの独自プロトコルのプリンタクラスのドライバに相当し、ポート(本発明ではネットワークポート)を制御する。プリンタドライバ50はMFP3の製造元であるABC社製のものである。
図14はPCにおけるFAXドライバの構成を表す図である。FAXドライバはプリンタクラスのドライバに相当し、ファクシミリの送信ジョブはOS内で印刷ジョブとして取り扱われるので、以降においてファクシミリの送信ジョブを印刷ジョブと呼ぶ場合がある。同図において、150はPC1にインストールされているMFP3用のFAXドライバであり、133〜136、139の複数のモジュールから構成される。30は印刷可能なアプリケーションであり、例えば、OSに標準で同梱されているテキストエディタであるNotepad(Notepad.exe)等に相当する。31はGraphics Device Interface(GDI)であり、OSの一部である。32はプリンタキューであり、スプーラ40の一部として構成され、印刷ジョブ(ファクシミリの送信ジョブ)がキューイングされる。キューイングされた印刷ジョブは、図15(b)に示すプリンタキューフォルダ108に表示される。133はプリントプロセッサであり、ファクシミリ送信する画像のレイアウトの変更やファクシミリ送信する画像に対する特殊処理が行われる。134はグラフィックスドライバであり、FAXドライバの画像処理のコアとして、GDI31から送られて来る描画命令をもとにファクシミリ送信用の画像処理を行い、ファクシミリ送信用の制御コマンドを作成する。135はUIモジュールであり、FAXドライバのユーザインタフェースの提供及び制御を行う。136はランゲージモニタであり、データの通信I/Fとしてデータの送受信を制御する。139はステータスモニタであり、ファクシミリ送信の結果、MFP3の警告、エラー等の状態を表示する。140はアドレス帳であり、ファクシミリを送信する相手先の氏名やFAX番号等の登録や変更等を一元管理することができる。37はポートモニタであり、ランゲージモニタ136から送られて来るデータを適切なポートに対して送信したり、MFP3から送られて来るデータをクラスドライバ38を介して受信したりする処理を行う。38はクラスドライバであり、最もポートに近いローレベルのモジュールである。本発明ではWSDやIHVの独自プロトコルのプリンタクラスのドライバに相当し、ポート(本発明ではネットワークポート)を制御する。FAXドライバ150はMFP3の製造元であるABC社製のものである。
図17はプリンタ情報構造体を表す図である。例えばOSがWindows(登録商標) Vistaの場合、PRINTER_INFO_2構造体がこのプリンタ情報構造体に相当する。同図において、pPrinterNameはプリンタ名またはFAX名を表す文字列のポインタである。このプリンタ名またはFAX名は、ユーザが任意に変更することができる名前であり、フレンドリ名とも呼ばれている。pPortNameはプリンタまたはFAXが接続されている仮想ポート名を表す文字列ポインタである。MFP3のようにプリンタ機能とファクシミリ機能を備えるデバイスの場合、それぞれの機能毎に複数の論理ポートを備えており、PC1内にこれら複数の論理ポートに割り当てられた複数の仮想ポートが生成される。例えば、プリンタ機能には「USB001」という名前の仮想ポートが、ファクシミリ機能には「USB002」という名前の仮想ポートがそれぞれ割り当てられる。pDriverNameはプリンタドライバ名またはFAXドライバ名を表す文字列のポインタである。例えば、MFP3のプリンタ機能の場合、pDriverNameはプリンタドライバ50がインストールされた時にOS内に登録されるドライバ名のポインタであり、このドライバ名は前記プリンタ名のデフォルト値としてセットされる名前でもある。また、例えば、MFP3のファクシミリ機能の場合、pDriverNameはFAXドライバ150がインストールされた時にOS内に登録されるドライバ名のポインタであり、このドライバ名は前記FAX名のデフォルト値としてセットされる名前でもある。Statusはデバイスの状態を表す値であり、エラーや稼動状況を表す各状態に対してフラグが割り当てられていて、これらのフラグの論理和がセットされる。例えば、オンライン状態の場合、「0」がセットされる。
図5(a)はプリンタとFAXフォルダを表す図である。同図において、93はプリンタとFAXフォルダであり、PC1上に表示され、PC1で利用できる状態となっているプリンタやFAXがドライバ毎にこの中に表示される。同図ではMFP3のプリンタ(プリンタドライバ50)とFAX(FAXドライバ150)が利用できる状態であることを表している。94はMFP3用のプリンタアイコンであり、MFP3のプリンタであることを特定できる「ABC Kmmn (Printer)」というプリンタ名が表示されている。このプリンタ名は図17のpPrinterNameにセットされている。そして、プリンタドライバ50がインストールされた時にOS内に登録される、図17のpDriverNameにセットされているドライバ名であり、プリンタ名のデフォルト値としてセットされる名前である。例えばOSがWindows(登録商標) Vistaの場合、INFファイルと呼ばれるセットアップファイルにこのドライバ名が記載されており、ドライバのインストール時にそのドライバ名が図17のpDriverNameにセットされてOS内に登録される。95はMFP3用のFAXアイコンであり、MFP3のFAXであることを特定できる「ABC Kmmn (FAX)」というFAX名が表示されている。このFAX名は図17のpPrinterNameにセットされている。そして、FAXドライバ150がインストールされた時にOS内に登録される、図17のpDriverNameにセットされているドライバ名であり、FAX名のデフォルト値としてセットされる名前である。例えばOSがWindows(登録商標) Vistaの場合、INFファイルと呼ばれるセットアップファイルにこのドライバ名が記載されており、ドライバのインストール時にそのドライバ名が図17のpDriverNameにセットされてOS内に登録される。図5(b)で後述するように、ユーザはプリンタ名やFAX名を任意の名前に変更することができる。98はプリンタ7用のプリンタアイコンである。96はデフォルトデバイスマークであり、プリンタとFAXフォルダ93内に表示されているプリンタ(プリンタドライバ)またはFAX(FAXドライバ)の中で通常使うデバイスとして設定されているデフォルトデバイスであることを表す印である。尚、ユーザはプリンタとFAXフォルダ93内の任意のプリンタ(プリンタドライバ)またはFAX(FAXドライバ)に対して、手動操作により、通常使うデフォルトデバイスとして設定することができる。同図では、プリンタアイコン94がデフォルトデバイスとして設定されている状態を表す。
図5(b)はプリンタとFAXフォルダを表す図である。同図において、図5(a)と同じ内容を表す部分に関しては同じ番号を記しており、その説明を省略する。97はMFP3用のFAXアイコンであり、MFP3のFAXであることを特定できる「Koichi’s Fax」というFAX名が表示されている。このFAX名は、FAXドライバ150がインストールされた時にOS内に登録された、図17のpDriverNameにセットされているドライバ名からデフォルト値としてセットされた名前ではなく、ユーザが適当に変更してセットした名前である。このようにプリンタ名やFAX名をユーザは任意の名前に変更することができるので、プリンタとFAXフォルダに表示されるプリンタ名やFAX名はフレンドリ名とも呼ばれている。例えば、プリンタアイコン94のプリンタのフレンドリ名は「ABC Kmmn (Printer)」であり、FAXアイコン97のFAXのフレンドリ名は「Koichi’s Fax」である。
図18はプリンタ情報構造体にセットされている情報を表す図である。同図において、(A)は図5(a)のプリンタとFAXフォルダのプリンタアイコン94の状態を、(B)は図5(a)のプリンタとFAXフォルダのFAXアイコン95の状態をそれぞれ表している。
同図の(A)において、pPrinterName(フレンドリ名)にはプリンタ名「ABC Kmmn (Printer)」がセットされている。このセットされる情報はドライバがインストールされる際にINFファイルから取得した情報である。pPortNameにはMFP3のプリンタ機能の仮想ポート名「USB001」がセットされている。また、pDriverNameにはプリンタドライバ50のドライバ名「ABC Kmmn (Printer)」がセットされている。このセットされる情報はドライバがインストールされる際にINFファイルから取得した情報である。Statusにはオンライン状態を表す「0」がそれぞれセットされている。
同図の(B)において、pPrinterNameにはFAX名「ABC Kmmn (FAX)」がセットされている。このセットされる情報はドライバがインストールされる際にINFファイルから取得した情報である。pPortNameにはMFP3のファクシミリ機能の仮想ポート名「USB002」がセットされている。また、pDriverNameにはFAXドライバ150のドライバ名「ABC Kmmn (FAX)」がセットされている。このセットされる情報はドライバがインストールされる際にINFファイルから取得した情報である。Statusにはオンライン状態を表す「0」がそれぞれセットされている。
図18はプリンタ情報構造体にセットされている情報を表す図である。同図において、(C)は図5(b)のプリンタとFAXフォルダのプリンタアイコン94の状態を、(D)は図5(b)のプリンタとFAXフォルダのFAXアイコン97の状態をそれぞれ表している。
同図の(C)において、pPrinterNameにはプリンタ名「ABC Kmmn(Printer)」がセットされている。このセットされている情報はドライバがインストールされる際にINFファイルから取得した情報である。pPortNameにはMFP3のプリンタ機能の仮想ポート名「USB001」がセットされている。また、pDriverNameにはプリンタドライバ50のドライバ名「ABC Kmmn (Printer)」が、Statusにはオンライン状態を表す「0」がそれぞれセットされている。
同図の(D)において、pPrinterNameにはFAX名「Koichi’s Fax」がセットされている。このセットされている情報は図18(B)のpPrinterNameの状態からプリンタフォルダ上でユーザにより変更されたフレンドリ名である。pPortNameにはMFP3のファクシミリ機能の仮想ポート名「USB002」がセットされている。また、pDriverNameにはFAXドライバ150のドライバ名「ABC Kmmn (FAX)」が、Statusにはオンライン状態を表す「0」がそれぞれセットされている。
図6(a)はプリンタドライバ50の印刷設定ダイアログを表す図である。同図において、104は印刷設定ダイアログであり、このダイアログ上で各操作部を選択することで、MFP3における印刷に必要な各設定を行うことができる。
図6(b)はFAXドライバ150の印刷設定ダイアログを表す図である。図14に示したように、FAXドライバはプリンタクラスのドライバに相当するので、ファクシミリの送信設定のユーザインタフェースは、印刷設定ダイアログと呼ばれるのが一般的である。同図において、105は印刷設定ダイアログであり、このダイアログ上で各操作部を選択することで、MFP3におけるファクシミリ送信に必要な各設定を行うことができる。106はアドレス帳であり、ファクシミリの送信相手に関する情報を登録・管理することができる。
図15(a)はプリンタキューフォルダを表す図である。同図において、107はプリンタキューフォルダであり、プリンタドライバ50で処理される印刷ジョブがこの中に表示され、印刷ジョブの一時停止、再開、キャンセル等の操作を行うことができる。
図15(b)はプリンタキューフォルダを表す図である。同図において、108はプリンタキューフォルダであり、FAXドライバ150で処理される印刷ジョブ(ファクシミリの送信ジョブ)がこの中に表示され、印刷ジョブの一時停止、再開、キャンセル等の操作を行うことができる。
図7(a)はデバイス管理を表す図である。同図において、80はデバイス管理であり、このアプリケーションを使ってMFP3の管理を行うことができる。72はデバイス名表示部であり、同図の例では、図8に示す<dm:defaultName>要素にセットされているデフォルト名が表示されている。42はプリンタキューボタンであり、このボタンを押下すると、図19(a)に示すプリンタキューフォルダの表示の処理が実行され、図15(a)に示すプリンタキューフォルダ107、または、図15(b)に示すプリンタキューフォルダ108が表示される。どちらのプリンタキューフォルダが表示されるかに関しては、図16に示す処理で決定される。43は印刷設定ボタンである。このボタンを押下すると、図19(b)に示す印刷設定ダイアログの表示の処理が実行され、MFP3における印刷に必要な各設定を行うことができる図6(a)に示す印刷設定ダイアログ104が表示される。または、MFP3におけるファクシミリ送信に必要な各設定を行うことができる図6(b)に示す印刷設定ダイアログ105が表示される。どちらの印刷設定ダイアログが表示されるかに関しては、図16に示す処理で決定される。
尚、同図ではデバイス管理80上から実行できる、デバイスに関連付けられている各機能(プログラム)の例としてプリンタキューフォルダを開いて表示する例と、印刷設定ダイアログを開いて表示する例を挙げて説明した。しかしながら、これらの例に限られることなく、同様な機能やプログラムに対して本発明を適用することができる。
例えば、写真やドキュメントを開いて表示し、その写真やドキュメントを印刷するようなアプリケーションにおいて、印刷する際にプリンタを選択するプリンタ選択画面が表示される。そして、このプリンタ選択画面において最初に選択されているプリンタとして、図16に示す処理で決定されるターゲットデバイスをセットしてプリンタ選択画面に表示する、というような機能(プログラム)が挙げられる。これにより、ユーザの操作性を大幅に向上することができる。
また、例えば、デバイス管理80上から実行できる機能(プログラム)として、デバイスに関連付けられているWebサイトにリンクするような機能(プログラム)を実装する場合、そのURLにデバイスに関する情報をパラメータとして付加する必要がある。ここで指定するパラメータとして、図16に示す処理で決定されるターゲットデバイスをセットして、そのターゲットデバイスに関連付けられているWebサイトにリンクすることで、ユーザの操作性を大幅に向上することもできる。
図7(b)はデバイス管理を表す図である。同図において、図7(a)と同じ内容を表す部分に関しては同じ番号を記しており、その説明を省略する。73はデバイス名表示部であり、同図の例では、図5(b)のFAXアイコン97に示すFAX名としてユーザが適当に変更してセットしたフレンドリ名が表示されている。
図8はデバイス管理制御用ファイルの内容を表す図である。同図に示す情報が、デバイス管理制御用ファイル11またはデバイス管理制御用ファイル12に格納されている。同図において、<dm:manufacturer>要素にはデバイス(MFP3)の製造元であるABC社の名前がセットされている。<dm:model>要素にはデバイス(MFP3)のモデル名であるKmmnがセットされている。<dm:deviceNameControl>要素にはデバイス名表示部72にセットされるデバイス名を制御する為に必要な情報がセットされている。<dm:defaultName>要素にはデバイス名表示部72にセットされるデフォルト名がセットされている。1つ目の<dm:priorityOrder>要素には、プリンタドライバ50に関する情報とその優先順位が定義されている。この<dm:priorityOrder>要素内の<dm:driverName>要素にはプリンタドライバ50のドライバ名がセットされていて、<dm:order>要素には優先順位として1(最優先)がセットされている。2つ目の<dm:priorityOrder>要素には、FAXドライバ150に関する情報とその優先順位が定義されている。この<dm:priorityOrder>要素内の<dm:driverName>要素にはFAXドライバ150のドライバ名がセットされていて、<dm:order>要素には優先順位として2(2番目)がセットされている。
MFP3がPC1に接続されている時に起動されるデバイス管理80上に、図7(a)、図7(b)に示すプリンタキューボタン42、印刷設定ボタン43が表示される。図7(a)、図7(b)のように表示されるように、それぞれのボタン及び機能を表す2つの<dm:function>要素が<dm:functions>要素の中にセットされている。
まず、1つ目の<dm:function>要素を説明する。<dm:name xml:lang=“en−US”>OpenPrinterQueue</dm:name>要素には、プリンタキューボタン42上に表示される「Open Printer Queue」という文字列がセットされている。<dm:execute>openPrinterQueue</dm:execute>要素には、プリンタキューフォルダ107、108を表示する機能(プログラム)を表すopenPrinterQueueというコードがセットされている。このopenPrinterQueueというコードに、図19(a)に示すプリンタキューフォルダの表示の処理が関連付けられている。
次に、2つ目の<dm:function>要素を説明する。<dm:name xml:lang=“en−US”>Printing Preferences</dm:name>要素には、印刷設定ボタン43上に表示される「Printing Preferences」という文字列がセットされている。<dm:execute>printingPreferences</dm:execute>要素には、印刷設定ダイアログ104、105を表示する機能(プログラム)を表すprintingPreferencesというコードがセットされている。このprintingPreferencesというコードに図19(b)に示す印刷設定ダイアログの表示の処理が関連付けられている。
「MFG:ABC;MDL:Kmmn;CLS:PRINTER;CMD:K4;DES:ABC Kmmn;」はデバイスIDを表す。PC1がネットワーク4を介してMFP3から取得することができるMFP3のプリンタ機能のデバイスIDであり、次の情報を表す。
製造元(MFG:):ABC
モデル(MDL:):Kmmn
クラス(CLS:):PRINTER
コマンド(CMD:):K4(ABC社プライベートの印刷制御用コマンド)
ディスクリプション(DES:):ABC Kmmn
図9はデバイス接続時の処理を表すフローチャートである。図9のフローに係るプログラムは、HDD1202に記憶されており、RAM1201に読み出され、CPU1204により実行される。
同図において、PC(PC1)にデバイス(MFP3)がネットワーク4を介して接続されると(S1301)、デバイスIDを取得する(S1302)。次に、ドライバ(プリンタドライバ50及びFAXドライバ150)が未だインストールされていないか判別する(S1303)。S1303でインストールされていないと判別された場合、ドライバ(プリンタドライバ50及びFAXドライバ150)をインストールする(S1304)。
その後、ドライバ(プリンタドライバ50及びFAXドライバ150)をロードする(S1305)。そして、デバイス管理(デバイス管理80)が未だインストールされていないか判別する(S1306)。S1306でインストールされていないと判別された場合、図10で後述するデバイス管理のインストールの処理を実行する(S1307)。デバイス管理制御用ファイル(図8)が存在するか判別する(S1308)。S1308で存在すると判別された場合、図11で後述するデバイス管理の起動の処理を実行し(S1309)、デバイス接続時の処理を完了する(S1310)。ステップS1308において、デバイス管理制御用ファイル(図8)が存在しない場合、ステップS1310へ進み、デバイス接続時の処理を完了する。ステップS1306において、デバイス管理(デバイス管理80)が既にインストールされている場合、ステップS1309へ進む。ステップS1303において、ドライバ(プリンタドライバ50及びFAXドライバ150)が既にインストールされている場合、ステップS1305へ進む。
図10はデバイス管理のインストールの処理を表すフローチャートである。図10のフローに係るプログラムは、HDD1202に記憶されており、RAM1201に読み出され、CPU1204により実行される。
図9のステップS1307において、デバイス管理のインストールの処理が実行されると、同図において、デバイス管理のインストールの処理が開始される(S1401)。
ネットワーク4を介して接続されているデバイス(MFP3)のデバイスIDを確認する(S1402)。
このデバイスIDに含まれている製造元(MFG:)、モデル(MDL:)情報をもとにWebサーバ9上またはPC1に挿入されたCD−ROM10に格納されているデバイス管理制御用ファイルから、PC1に接続されているデバイス(MFP3)用のデバイス管理制御用ファイル11またはデバイス管理制御用ファイル12を検索する(S1403)。デバイス管理制御用ファイル11またはデバイス管理制御用ファイル12が見つかった場合(S1404)、そのデバイス管理制御用ファイルをPC1のHDD1202内に保存し(S1405)、デバイス管理をインストールする(S1406)。インストールが完了すると、デバイス管理のインストールの処理を終了する(S1407)。ステップS1404において、デバイス管理制御用ファイル11やデバイス管理制御用ファイル12が見つからなかった場合、デバイス管理をインストールせずに、デバイス管理のインストールの処理を終了する(S1407)。
図11はデバイス管理の起動の処理を表すフローチャートである。図11のフローに係るプログラムは、HDD1202に記憶されており、RAM1201に読み出され、CPU1204により実行される。
図9のステップS1309において、デバイス管理の起動の処理が実行されると、同図において、デバイス管理の起動の処理が開始される(S1501)。図10のステップS1405で保存されたデバイス管理制御用ファイルをロードし(S1502)、図12で後述する、デバイス名の決定の処理を実行して、デバイス名表示部72、73に表示するデバイス名を決定する(S1503)。このデバイス名とデバイス管理制御用ファイルから、デバイス管理の表示内容を決定し(S1504)、デバイス管理80を起動し(S1505)、デバイス管理の起動の処理を完了する(S1506)。
図12、図13はデバイス名の決定の処理を表すフローチャートである。図12、図13のフローに係るプログラムは、HDD1202に記憶されており、RAM1201に読み出され、CPU1204により実行される。
図11のステップS1503において、デバイス名の決定処理が実行されると、同図において、デバイス名の決定の処理が開始される(S1601)。図10のステップS1405で保存されたデバイス管理制御用ファイルをロードし(1602)、デバイス管理80に関連付けられているデバイス(ドライバ)数を確認する(S1603)。デバイス(ドライバ)数が1つの場合(S1604)、確認された1つのデバイス(ドライバ)のフレンドリ名(図18のpPrinterName)とドライバ名(図18のpDriverName)を比較する(S1605)。
確認された1つのデバイス(ドライバ)のフレンドリ名がドライバ名と同一であるか判定する(S1606)。S1606で同一であると判定された場合、確認された1つのデバイス(ドライバ)の<dm:defaultName>要素を確認する(S1607)。図8に示すように<dm:defaultName>ABC Kmmn</dm:defaultName>要素としてデフォルト名(図8の例では「ABC Kmmn」)が定義されているか判別する(S1608)。S1608で定義されていると判別された場合、確認された1つのデバイス(ドライバ)の<dm:defaultName>要素に定義されているデフォルト名をデバイス名にセットする(S1609)。そして、デバイス名の決定の処理を終了する(S1611)。
このように、デバイス(ドライバ)数が1つの場合で、かつ、フレンドリ名がドライバ名と同一の場合、図7(a)のデバイス名表示部72に示すように<dm:defaultName>要素に定義されているデフォルト名をデバイス名として表示する。そうすることで、ユーザに対して最適な情報を表示してユーザの操作性を向上することができる。
ステップS1608において、デフォルト名が定義されていない場合、確認された1つのデバイス(ドライバ)のフレンドリ名をデバイス名にセットし(S1610)、ステップS1611へ進みデバイス名の決定の処理を終了する。なお、S1604でYESと判別された場合に、S1605からS1609の処理を省略して、S1610の処理を行うこともできる。
ステップS1606において、フレンドリ名がドライバ名と異なると判別された場合、ステップS1610へ進む。
例えば、ネットワーク4上に同一モデルのMFPが複数存在する場合、プリンタとFAXフォルダ93内には
ABC Kmmn (Printer)
ABC Kmmn (Printer) (Copy 1)
ABC Kmmn (FAX)
ABC Kmmn (FAX) (Copy 1)
というような複数のプリンタアイコンまたはFAXアイコンが表示される。
このようなケースにおいて、仮に、<dm:defaultName>要素に定義されているデフォルト名をデバイス名としてデバイス管理上のデバイス名表示部に表示すると、物理的に異なるデバイス用のデバイス管理が複数表示される。そして、それぞれのデバイス管理のデバイス名表示部に同一のデバイス名(デフォルト名)が表示されてしまうので、どちらのMFP用のデバイス管理なのかの区別がつかず、ユーザが誤操作する可能性が考えられ、問題となっている。本発明では、以下に記す処理によってこの問題を解決する。ステップS1604でデバイス管理80に関連付けられているデバイス(ドライバ)数が2つ以上である判別された場合、図13のステップS1701へ進む。そして、デバイス管理80に関連付けられているデバイス(ドライバ)の中にデフォルトデバイスが存在するかを検索する(S1701)。デバイス管理80に関連付けられているデバイス(ドライバ)の中からデフォルトデバイスが見つかった否かを判別する(S1702)。見つかったと判別された場合、そのデバイス(ドライバ)のフレンドリ名をデバイス名にセットする(S1708)。そして、図12のステップS1611へ進みデバイス名の決定の処理を終了する。今、FAXアイコン97のFAX(FAXドライバ)にデフォルトデバイスマークが付加されていて、通常使うデバイスとして設定されているものとする。この場合、通常使うデフォルトデバイスのフレンドリ名が図7(b)のデバイス名表示部73に表示される。このように、通常使うデフォルトデバイスを優先し、しかも、そのデバイスのフレンドリ名をデバイス管理80のデバイス名表示部73にデバイス名として表示することで、ユーザの操作性を向上することができる。
ステップS1702において、デバイス管理80に関連付けられているデバイス(ドライバ)の中からデフォルトデバイスが見つからなかった場合、S1703に進む。
例えば、プリンタアイコン98(他社製ドライバ)がデフォルトデバイスとして設定されている場合もこのケースに相当する。この場合、図8に示す<dm:priorityOrder>要素内の<dm:driverName>要素と<dm:order>要素を確認する。そして、デバイス管理80に関連付けられているデバイス(ドライバ)の中で最も優先順位の高いドライバ名を検索する(S1703)。その優先順位を持つドライバ名が見つかった場合(S1704)、デバイス管理80に関連付けられているデバイス(ドライバ)の中にその優先順位のドライバ名を持つフレンドリ名が存在するかを検索する(S1705)。
デバイス管理80に関連付けられているデバイス(ドライバ)の中から前記優先順位のドライバ名を持つフレンドリ名が見つかったか判別する(S1706)。見つかったと判別された場合、そのフレンドリ名をデバイス名にセットする(S1707)。そして、図12のステップS1611へ進みデバイス名の決定の処理を終了する。
ステップS1706において、デバイス管理80に関連付けられているデバイス(ドライバ)の中から前記優先順位のドライバ名を持つフレンドリ名が見つからなかった場合、ステップS1703へ戻る。そして、次に優先順位の高いドライバ名を検索する。
ステップS1704において、その優先順位を持つドライバ名が見つからなかった場合、デバイス管理80に関連付けられているデバイス(ドライバ)の中から適当なデバイス(ドライバ)を選択する。そして、そのデバイス(ドライバ)のフレンドリ名をデバイス名にセットする(S1709)。そして、図12のステップS1611へ進みデバイス名の決定の処理を終了する。このように、優先順位の高いデバイス(ドライバ)のフレンドリ名をデバイス管理のデバイス名表示部にデバイス名として表示することで、ユーザの操作性を向上することができる。なお、S1702でNOと判別された場合に、S1703からS1707の処理を省略して、S1709の処理を行うこともできる。
図16はターゲットデバイスの決定の処理を表すフローチャートである。図16のフローに係るプログラムは、HDD1202に記憶されており、RAM1201に読み出され、CPU1204により実行される。
図7(a)に示すプリンタキューボタン42または印刷設定ボタン43が押下されると、同図において、ターゲットデバイスの決定処理が開始される(S2201)。図10のステップS1405で保存されたデバイス管理制御用ファイルをロードし(2202)、デバイス管理80に関連付けられているデバイス(ドライバ)数を確認する(S2203)。デバイス(ドライバ)数が1つの場合(S2204)、そのデバイス(ドライバ)をターゲットデバイスとしてセットし(S2205)、ターゲットデバイスの決定の処理を終了する(S2215)。ステップS2204において、デバイス管理80に関連付けられているデバイス(ドライバ)数が2つ以上の場合、デバイス管理80に関連付けられているデバイス(ドライバ)の中にデフォルトデバイスが存在するかを検索する(S2206)。
デバイス管理80に関連付けられているデバイス(ドライバ)の中からデフォルトデバイスが見つかったか判別する(S2207)。見つかったと判別された場合、そのデバイス(ドライバ)をターゲットデバイスとしてセットする(S2213)。そして、ステップS2215へ進みターゲットデバイスの決定の処理を終了する。今、FAXアイコン95のFAX(FAXドライバ)にデフォルトデバイスマークが付加されていて、通常使うデバイスとして設定されているものとする。このケースにおいて、プリンタキューボタン42が押下された場合、通常使うデフォルトデバイスと設定されているFAX(FAXドライバ)の図15(b)に示すプリンタキューフォルダ108が表示される。また、このケースにおいて、印刷設定ボタン43が押下された場合、通常使うデフォルトデバイスと設定されているFAX(FAXドライバ)の図6(b)に示す印刷設定ダイアログ105が表示される。このように、通常使うデフォルトデバイスを優先することで、ユーザの操作性を向上することができる。
ステップS2207において、デバイス管理80に関連付けられているデバイス(ドライバ)の中からデフォルトデバイスが発見できなかった場合、プリンタアイコン98(他社製ドライバ)がデフォルトデバイスとして設定されている場合もこのケースに相当する。この場合、図8に示す<dm:priorityOrder>要素内の<dm:driverName>要素と<dm:order>要素を確認する。そして、デバイス管理80に関連付けられているデバイス(ドライバ)の中で最も優先順位の高いドライバ名を検索する(S2208)。その優先順位を持つドライバ名が見つかった場合(S2209)、デバイス管理80に関連付けられているデバイス(ドライバ)の中にその優先順位のドライバ名を持つフレンドリ名が存在するかを検索する(S2210)。
デバイス管理80に関連付けられているデバイス(ドライバ)の中から前記優先順位のドライバ名を持つフレンドリ名が見つかったか判別する(S2211)。そして見つかったと判別された場合、そのフレンドリ名のデバイス(ドライバ)をターゲットデバイスとしてセットし(S2212)ステップS2215へ進みターゲットデバイスの決定の処理を終了する。ステップS2211において、デバイス管理80に関連付けられているデバイス(ドライバ)の中から前記優先順位のドライバ名を持つフレンドリ名が見つからなかった場合、ステップS2208へ戻り、次に優先順位の高いドライバ名を検索する。
ステップS2209において、その優先順位を持つドライバ名が見つからなかった場合、デバイス管理80に関連付けられているデバイス(ドライバ)の中から選択した適当なデバイス(ドライバ)をターゲットデバイスとしてセットする(S2214)。そして、ステップS2215へ進みターゲットデバイスの決定の処理を終了する。
このように、優先順位の高いデバイス(ドライバ)をターゲットデバイスとしてセットする。そして、プリンタキューボタン42が押下された時にそのデバイス(ドライバ)のプリンタキューフォルダを表示したり、印刷設定ボタン43が押下された時にそのデバイス(ドライバ)の印刷設定ダイアログを表示したりする。そのようにすることで、ユーザの操作性を向上することができる。
尚、ターゲットデバイスとしてセットする情報としては、例えば、フレンドリ名を利用することができるが、この例に限られることなく、デバイスを特定できる任意の情報を利用することが可能である。
図19(a)はプリンタキューフォルダの表示の処理を表すフローチャートである。図19(a)のフローに係るプログラムは、HDD1202に記憶されており、RAM1201に読み出され、CPU1204により実行される。デバイス管理80上のプリンタキューボタン42が押下されると、同図において、プリンタキューフォルダの表示の処理が開始される(S2701)。図16に示すターゲットデバイスの決定の処理を実行し(S2702)、セットされたターゲットデバイス用として割り当てられているプリンタキューフォルダを開いて表示し(S2703)、プリンタキューフォルダの表示の処理を完了する(S2704)。
図19(b)は印刷設定ダイアログの表示の処理を表すフローチャートである。図19(b)のフローに係るプログラムは、HDD1202に記憶されており、RAM1201に読み出され、CPU1204により実行される。デバイス管理80上の印刷設定ボタン43が押下されると、同図において、印刷設定ダイアログの表示の処理が開始される(S2801)。図16に示すターゲットデバイスの決定の処理を実行し(S2802)、セットされたターゲットデバイス用として割り当てられている印刷設定ダイアログを開いて表示し(S2803)、印刷設定ダイアログの表示の処理を完了する(S2804)。
<第2の実施の形態>
本発明の第2の実施の形態の例を説明する。
プラグ アンド プレイでデバイスドライバが組み込まれて、PCにデバイスがインストールされる場合において、デバイスがインストールされる順序に応じてデフォルトデバイスが決定されるケースがある。例えば、Windows(登録商標) Vista OSにおいて、プリンタまたはFAXがプラグ アンド プレイでインストールされた場合、最後にインストールされたデバイスがデフォルトデバイスとして設定される。
例えば、MFP3の場合、プリンタ機能、ファクシミリ機能、スキャナ機能の3つの機能を備えており、OSはこれらの機能をそれぞれ1つのデバイスとして処理し、各機能のインストールを制御する。従って、この例では、プリンタ機能、ファクシミリ機能、スキャナ機能の順でプラグ アンド プレイが発生し、この順で各機能のインストールが完了するので、FAX(FAXドライバ)が通常使うデフォルトデバイスとして設定されてしまう。その結果、プリンタとFAXフォルダ93において、FAXアイコン95にデフォルトデバイスマークが付加されてしまう。このように、メイン機能であるプリンタ機能がデフォルトデバイスとして設定されずに、サブ機能であるファクシミリ機能がデフォルトデバイスとして設定されてしまう、という問題がある。このような問題を解決する為の手段を図20、図21に記す。
図20はプリンタドライバ50のインストール時の初期化イベントの処理を表すフローチャートである。図20のフローに係るプログラムは、HDD1202に記憶されており、RAM1201に読み出され、CPU1204により実行される。MFP3がネットワーク4を介してPC1に接続されると、プリンタ機能、ファクシミリ機能、スキャナ機能の順でプラグ アンド プレイが発生する。各機能のプラグ アンド プレイでは図9のステップS1304が実行され、各機能用のドライバがPC1にそれぞれインストールされる。プリンタ機能に対してステップS1304によりプリンタドライバ50のインストールが開始される。開始されると、インストール処理の過程でUIモジュール35において、インストール時の初期化イベントPRINTER_EVENT_INITIALIZEが発生し、図20に示す処理が開始される。同図において、インストール時の初期化イベントの処理が開始されると(S2901)、60秒間のウエイトを行い(S2902)、インストール時の初期化イベントの処理を終了する(S2903)。この一定のウエイト(待ち時間)の間にFAXドライバ150のインストールが完了する。尚、FAXドライバ150のUIモジュール135では、インストール時の初期化イベントPRINTER_EVENT_INITIALIZEを処理するインタフェースを実装していない為、このイベントがFAXドライバ150に対して発生することはない。このように、メイン機能であるプリンタ機能をデフォルトデバイス(デフォルト機能)として設定することができ、前記問題を解決することができる。尚、上記例ではウエイト時間を60秒としたが、この例に限られること無く、デバイスやドライバの種類に応じて、任意の適当な時間を設定することで、様々なケースにおいて実現することができる。
尚、前述したWindows(登録商標) Vista OSの例のでは、最後にインストールされたデバイス(機能)がデフォルトデバイスとして設定されるが、これはOSの仕様に依存している。従って、Windows(登録商標) Vista以外のOSでは、この仕様とは異なるケースが考えられる。例えば、最初にインストールされたデバイス(機能)がデフォルトデバイスとして設定される。そして、それ以降に他のデバイス(機能)がインストールされても、最初にインストールされたデバイス(機能)がデフォルトデバイスとして設定されたままの状態を維持する、というような仕様のOSが存在することも考えられる。このようなOS(以降、OS「B」と呼ぶ)の場合、ユーザが手動でデフォルトデバイスの設定を変更しない限り、最初にインストールされたデバイス(機能)がデフォルトデバイスとして設定されていることになる。このようなOSに対しては、図20で記したウエイト時間による制御を、プリンタドライバ50のUIモジュール35ではなく、FAXドライバ150のUIモジュール135に実装する。そのようにして、メイン機能であるプリンタ機能をデフォルトデバイスとして設定することができ、前記問題を解決することができる。また、プリンタドライバ50とFAXドライバ150が「Windows(登録商標) Vista」と「B」というような複数のOSをサポートする場合も考えられる。その場合、UIモジュール35とUIモジュール135にOSの種類を判別する処理を実装し、各OSの種類に応じて適切な処理を行うことができる。そのようにして、メイン機能であるプリンタ機能をデフォルトデバイスとして設定する、というような実装方法も考えられる。この例を図21に記す。
図21はプリンタドライバ50とFAXドライバ150のインストール時の初期化イベントの処理を表すフローチャートである。図21のフローに係るプログラムは、HDD1202に記憶されており、RAM1201に読み出され、CPU1204により実行される。MFP3がネットワーク4を介してPC1に接続されると、プリンタ機能、ファクシミリ機能、スキャナ機能の順でプラグ アンド プレイが発生する。各機能のプラグ アンド プレイでは図9のステップS1304が実行され、各機能用のドライバがPC1にそれぞれインストールされる。
Windows(登録商標) Vistaでは、後からインストールされたドライバがデフォルトプリンタになり、OS「B」では、先にインストールされたドライバがデフォルトプリンタになる。このようにOSによって、デフォルトプリンタになるケースが異なるので、OSの種類を判断してインストールのウエイト処理を行うことにより、メインで使われると想定されるプリンタドライバをデフォルトにするための処理を説明する。
プリンタ機能に対してステップS1304によりプリンタドライバ50のインストールが開始される。インストールが開始されると、インストール処理の過程でUIモジュール35において、インストール時の初期化イベントPRINTER_EVENT_INITIALIZEが発生し、図21の(A)に示す処理が開始される。同図の(A)において、ドライバのインストール時の初期化イベントの処理が開始されると(S3001a)、OSの種類を確認する(S3002a)。OSが「Windows(登録商標) Vista」の場合(S3003a)、60秒間のウエイトを行い(S3004a)、インストール時の初期化イベントの処理を終了する(S3005a)。このプリンタドライバ50に対するウエイトの間にFAXドライバ150のインストールが完了する。この場合、デフォルトプリンタは、プリンタドライバ50になる。ステップS3003aにおいて、OSが「Windows(登録商標) Vista」以外の場合(OSが「B」の場合はこのケースに含まれる)、ステップS3005aに進み、インストール時の初期化イベントの処理を終了する。
ファクシミリ機能に対してステップS1304によりFAXドライバ150のインストールが開始される。開始されると、インストール処理の過程でUIモジュール135において、インストール時の初期化イベントPRINTER_EVENT_INITIALIZEが発生し、図21の(B)に示す処理が開始される。同図の(B)において、インストール時の初期化イベントの処理が開始されると(S3001b)、OSの種類を確認する(S3002b)。OSが「B」の場合(S3003b)、60秒間のウエイトを行い(S3004b)、インストール時の初期化イベントの処理を終了する(S3005b)。このFAXドライバ150のウエイトの間にプリンタドライバ50のインストールが完了する。この場合、デフォルトプリンタは、プリンタドライバ50になる。ステップS3003bにおいて、OSが「B」以外の場合(OSが「Windows(登録商標) Vista」の場合はこのケースに含まれる)、ステップS3005bに進み、インストール時の初期化イベントの処理を終了する。
このように、プリンタドライバ50とFAXドライバ150が「Windows(登録商標) Vista」と「B」というような複数のOSをサポートする場合において、主機能であるプリンタ機能をデフォルトデバイスとして設定することができ、問題を解決することができる。尚、上記例ではウエイト時間を60秒としたが、この例に限られること無く、デバイスやドライバの種類に応じて、任意の適当な時間を設定することで、様々なケースにおいて実現することができる。
図20、図21では、ウエイトを利用して前記問題を解決する手段の例を説明したが、もう一つ別の解決手段を図22に記す。
図22はプリンタドライバ50のインストール時の初期化イベントの処理を表すフローチャートである。図22のフローに係るプログラムは、HDD1202に記憶されており、RAM1201に読み出され、CPU1204により実行される。MFP3がネットワーク4を介してPC1に接続されると、プリンタ機能、ファクシミリ機能、スキャナ機能の順でプラグ アンド プレイが発生する。各機能のプラグ アンド プレイでは図9のステップS1304が実行され、各機能用のドライバがPC1にそれぞれインストールされる。プリンタ機能に対してステップS1304によりプリンタドライバ50のインストールが開始される。開始されると、インストール処理の過程でUIモジュール35において、インストール時の初期化イベントPRINTER_EVENT_INITIALIZEが発生し、図22に示す処理が開始される。同図において、インストール時の初期化イベントの処理が開始される(S3101)。開始されると、OSのコンポーネントの内の1つであるライブラリsetupapi.dllでエクスポートされているCMP_WaitNoPendingInstallEventsを使って、他のデバイスまたは機能(この例ではファクシミリ機能とスキャナ機能)のプラグ アンド プレイの終了状況を確認する(S3102)。他の全てのデバイスまたは機能のプラグ アンド プレイが終了している場合(S3103)、OSのSetDefaultPrinter APIをコールして、プリンタ機能、すなわち、プリンタドライバ50をデフォルトデバイスとして設定する(S3104)。そしてインストール時の初期化イベントの処理を終了する(S3106)。ステップS3103で、他の全てのデバイスまたは機能のプラグ アンドプレイが終了していることを確認しているので、この時点においてFAXドライバ150のインストールが既に完了していることがわかる。ステップS3103において、他の全てのデバイスまたは機能のプラグ アンド プレイが終了していない場合で、このインストール時の初期化イベントの処理が開始されてから3分が経過している場合、ステップS3104へ進む。ステップS3105において、このインストール時の初期化イベントの処理が開始されてから3分以内の場合、ステップS3102へ進む。ステップS3105における3分という時間は、エラー等の何らかの理由によりプラグ アンド プレイによるデバイス(ドライバ)のインストールに想定以上の時間を要した場合の判断基準である。また、それは、デバイスやドライバの種類に応じて、任意の適当な時間を設定することができる。尚、FAXドライバ150のUIモジュール135では、インストール時の初期化イベントPRINTER_EVENT_INITIALIZEを処理するインタフェースを実装していない為、このイベントがFAXドライバ150に対して発生することはない。このように、メイン機能であるプリンタ機能をデフォルトデバイスとして設定することができ、前記問題を解決することができる。
尚、上記図20〜図22の例ではインストール時の初期化イベントとしてPRINTER_EVENT_INITIALIZEを利用した。しかしながら、この例に限られることなく、他の方法、例えば、Co−installerのDIF_FINISHINSTALL_ACTIONの機能等を使って実現することも可能である。
ユーザはプリンタとFAXフォルダ93内の任意のプリンタ(プリンタドライバ)またはFAX(FAXドライバ)に対して、手動操作により、通常使うデフォルトデバイスとして設定することができる。従って、デバイスのインストール時以外のケースにおいては、このようなユーザの手動操作によって、通常使うデフォルトデバイスの設定が変更されることが考えられる。このようなケースにおいても、図12、図13に示すデバイス名の決定処理により、デバイス管理80上デバイス名表示部に表示されるデバイス名が決定されて、表示される。また、このようなケースにおいても、図16に示すターゲットデバイスの決定処理により、図19(a)に示すフローに従って表示されるプリンタキューフォルダや、図19(b)に示すフローに従って表示される印刷設定ダイアログが決定されて、表示される。
図20〜図22に示すような、デバイス(デバイスドライバ)のインストール時にメイン機能であるプリンタ機能をデフォルトデバイスとして設定するようなケースが考えられる。その場合、例えば、インストール後もインストール時に設定されたデフォルトデバイスの設定が維持されているような場合は、デバイス管理80上のデバイス名表示部にプリンタドライバ50のフレンドリ名が表示される。例えば、インストール後に、ユーザの手動操作により、サブ機能であるファクシミリ機能を表すFAXドライバ150がデフォルトデバイスとして設定された場合は、デバイス管理80上のデバイス名表示部にFAXドライバ150のフレンドリ名が表示される。このように、様々な状況に応じて、デバイスのメイン機能の名前をデバイス管理80上のデバイス名表示部に表示したり、ユーザの意図により設定されたデフォルトデバイスの名前をデバイス管理80上のデバイス名表示部に表示したりすることができる。その結果、操作性に優れた周辺装置制御システムを実現することができる。また、デバイス管理80上のプリンタキューボタンや印刷設定ボタンが押下された場合も考えられる。その場合も同様に、様々な状況に応じて、デバイスのメイン機能のプリンタキューフォルダや印刷設定ダイアログを表示したり、ユーザの意図により設定されたデフォルトデバイスのプリンタキューフォルダや印刷設定ダイアログを表示したりすることもできる。その結果、さらに操作性に優れた周辺装置制御システムを実現することができる。
<第3の実施の形態>
第2の実施の形態では、プリンタ機能、ファクシミリ機能、及びスキャナ機能を備えるMFP3において、プリンタ機能(プリンタドライバ50)乃至ファクシミリ機能(FAXドライバ150)の何れか一方がデフォルトデバイスとして設定される例を挙げた。そしてその問題点とその解決方法に関して説明した。MFP3におけるこれ以外のケースの例として、プリンタ機能(プリンタドライバ50)及びファクシミリ機能(FAXドライバ150)の何れもがデフォルトデバイスとして設定されていないケースが存在する。
「MFG:ABC;MDL:Kmmn;CLS:PRINTER;CMD:K4;DES:ABC Kmmn;ATRB:Main」はデバイスIDを表す図である。このデバイスIDはPC1がネットワーク4を介してMFP3から取得することができるMFP3のプリンタ機能のデバイスIDであり、次の情報を表す。
製造元(MFG:):ABC
モデル(MDL:):Kmmn
クラス(CLS:):PRINTER
コマンド(CMD:):K4(ABC社プライベートの印刷制御用コマンド)
ディスクリプション(DES:):ABC Kmmn
属性(ATRB:):Main
属性(ATRB:)はMFP3のプリンタ機能の属性を表し、セットされている「Main」は、この機能、すなわち、プリンタ機能がメイン機能であることを表す。尚、本実施例では詳細説明を省略しているが、MFP3のファクシミリ機能のデバイスIDには、「ATRB:Sub」という情報が含まれており、属性(ATRB:)に「Sub」がセットされている。ここでセットされている「Sub」は、この機能、すなわち、ファクシミリ機能がサブ機能であることを表す。
図23はデバイス名の決定の処理を表すフローチャートである。図23のフローに係るプログラムは、HDD1202に記憶されており、RAM1201に読み出され、CPU1204により実行される。図12のステップS1604でデバイス管理80に関連付けられているデバイス(ドライバ)数が2つ以上である判別された場合、図23のステップS3201へ進む。そして、デバイス管理80に関連付けられているデバイス(ドライバ)の中にデフォルトデバイスが存在するかを検索する(S3201)。デバイス管理80に関連付けられているデバイス(ドライバ)の中からデフォルトデバイスが見つかった否かを判別する(S3202)。見つかったと判別された場合、そのデバイス(ドライバ)のフレンドリ名をデバイス名にセットする(S3208)。そして、図12のステップS1611へ進みデバイス名の決定の処理を終了する。ステップS3202において、デバイス管理80に関連付けられているデバイス(ドライバ)の中からデフォルトデバイスが見つからなかった場合、ステップS3210へ進む。例えば、プリンタアイコン98(他社製ドライバ)がデフォルトデバイスとして設定されている場合もこのケースに相当する。ステップS3210において、前述したデバイスIDを取得し、属性を確認する(S3211)。属性がメイン機能である場合(S3212)、そのデバイス(ドライバ)のフレンドリ名をデバイス名にセットする(S3213)。そして、図12のステップS1611へ進みデバイス名の決定の処理を終了する。ステップS3212において、属性がメイン機能でない場合、図8に示す<dm:priorityOrder>要素内の<dm:driverName>要素と<dm:order>要素を確認する。そして、デバイス管理80に関連付けられているデバイス(ドライバ)の中で最も優先順位の高いドライバ名を検索する(S3203)。その優先順位を持つドライバ名が見つかった場合(S3204)、デバイス管理80に関連付けられているデバイス(ドライバ)の中にその優先順位のドライバ名を持つフレンドリ名が存在するかを検索する(S3205)。デバイス管理80に関連付けられているデバイス(ドライバ)の中から前記優先順位のドライバ名を持つフレンドリ名が見つかったか判別する(S3206)。見つかったと判別された場合、そのフレンドリ名をデバイス名にセットする(S3207)。そして、図12のステップS1611へ進みデバイス名の決定の処理を終了する。ステップS3206において、デバイス管理80に関連付けられているデバイス(ドライバ)の中から前記優先順位のドライバ名を持つフレンドリ名が見つからなかった場合、ステップS3203へ戻る。そして、次に優先順位の高いドライバ名を検索する。ステップS3204において、その優先順位を持つドライバ名が見つからなかった場合、デバイス管理80に関連付けられているデバイス(ドライバ)の中から適当なデバイス(ドライバ)を選択する。そして、そのデバイス(ドライバ)のフレンドリ名をデバイス名にセットする(S3209)。そして、図12のステップS1611へ進みデバイス名の決定の処理を終了する。このように、デバイスIDの属性を確認し、主機能(この例ではMFP3のプリンタ機能を表すプリンタドライバ50)のフレンドリ名をデバイス管理80のデバイス名表示部にデバイス名として表示する。そのようにすることで、第2の実施の形態で説明した問題を解決し、ユーザの操作性を向上することができる。
図24はターゲットデバイスの決定の処理を表すフローチャートである。図24のフローに係るプログラムは、HDD1202に記憶されており、RAM1201に読み出され、CPU1204により実行される。図7(a)に示すプリンタキューボタン42または印刷設定ボタン43が押下されると、同図において、ターゲットデバイスの決定処理が開始される(S3301)。図10のステップS1405で保存されたデバイス管理制御用ファイルをロードし(3302)、デバイス管理80に関連付けられているデバイス(ドライバ)数を確認する(S3303)。デバイス(ドライバ)数が1つの場合(S3304)、そのデバイス(ドライバ)をターゲットデバイスとしてセットし(S3305)、ターゲットデバイスの決定の処理を終了する(S3315)。ステップS3304において、デバイス管理80に関連付けられているデバイス(ドライバ)数が2つ以上の場合、デバイス管理80に関連付けられているデバイス(ドライバ)の中にデフォルトデバイスが存在するかを検索する(S3306)。デバイス管理80に関連付けられているデバイス(ドライバ)の中からデフォルトデバイスが見つかったか判別する(S3307)。見つかったと判別された場合、そのデバイス(ドライバ)をターゲットデバイスとしてセットする(S3313)。そして、ステップS3315へ進みターゲットデバイスの決定の処理を終了する。ステップS3307において、デバイス管理80に関連付けられているデバイス(ドライバ)の中からデフォルトデバイスが見つからなかった場合、ステップ3316へ進む。例えば、プリンタアイコン98(他社製ドライバ)がデフォルトデバイスとして設定されている場合もこのケースに相当する。ステップS3316において、前述したデバイスIDを取得し、属性を確認する(S3317)。属性がメイン機能である場合(S3318)、そのデバイス(ドライバ)をターゲットデバイスとしてセットする(S3319)。そして、ステップS3315へ進みターゲットデバイスの決定の処理を終了する。ステップS3318において、属性がメイン機能でない場合、図8に示す<dm:priorityOrder>要素内の<dm:driverName>要素と<dm:order>要素を確認する。そして、デバイス管理80に関連付けられているデバイス(ドライバ)の中で最も優先順位の高いドライバ名を検索する(S3308)。その優先順位を持つドライバ名が見つかった場合(S3309)、デバイス管理80に関連付けられているデバイス(ドライバ)の中にその優先順位のドライバ名を持つフレンドリ名が存在するかを検索する(S3310)。デバイス管理80に関連付けられているデバイス(ドライバ)の中から前記優先順位のドライバ名を持つフレンドリ名が見つかったか判別する(S3311)。そして見つかったと判別された場合、そのフレンドリ名のデバイス(ドライバ)をターゲットデバイスとしてセットし(S3312)。ステップS3315へ進みターゲットデバイスの決定の処理を終了する。ステップS3311において、デバイス管理80に関連付けられているデバイス(ドライバ)の中から前記優先順位のドライバ名を持つフレンドリ名が見つからなかった場合、ステップS3308へ戻り、次に優先順位の高いドライバ名を検索する。ステップS3309において、その優先順位を持つドライバ名が見つからなかった場合、デバイス管理80に関連付けられているデバイス(ドライバ)の中から選択した適当なデバイス(ドライバ)をターゲットデバイスとしてセットする(S3314)。そして、ステップS3315へ進みターゲットデバイスの決定の処理を終了する。このように、デバイスIDの属性を確認し、メイン機能(この例ではMFP3のプリンタ機能を表すプリンタドライバ50)のデバイス(ドライバ)をターゲットデバイスとしてセットする。そして、プリンタキューボタン42が押下された時にそのデバイス(ドライバ)のプリンタキューフォルダを表示したり、印刷設定ボタン43が押下された時にそのデバイス(ドライバ)の印刷設定ダイアログを表示したりする。そのようにすることで、第2の実施の形態で説明した問題を解決し、ユーザの操作性を向上することができる。尚、ターゲットデバイスとしてセットする情報としては、例えば、フレンドリ名を利用することができるが、この例に限られることなく、デバイスを特定できる任意の情報を利用することが可能である。
また、本発明は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明の実施の形態では、アプリケーション80の例として図7(a)、図7(b)に示すようなデバイス管理(Device Management)を挙げた。しかしながら、これらの例に限られることなく、同様な機能を備える任意のアプリケーションで実現可能であり、有効である。
本発明の実施の形態では、プリンタの例としてカラーインクジェットプリンタを使用したが、この例に限られることなく、例えば、モノクロLBP等の任意のプリンタを使用することができる。
本発明の実施の形態では情報処理装置としてパーソナルコンピュータを想定したが、この例に限られることない。例えばDVDプレーヤー、ゲーム、セットトップボックス、インターネット家電等、同様な使用方法が可能な任意の情報処理装置(端末)に対して実現することができ、有効である。
本発明の実施の形態では、周辺装置としてプリンタを例示しているが、周辺装置として他に、複写機、ファクシミリ、スキャナ、デジタルカメラ、及びこれらの複合機能を備える装置等のいずれかが、本発明の適用対象となり得る。
本発明の実施の形態では、OSに例としてWindows(登録商標) Vistaと同等のOSを使用したが、これらのOSに限られることなく、任意のOSを使用することができる。
本発明の実施の形態では、ネットワーク4の構成例としてEthernet(登録商標)を用いたが、この例に限られることなく、他の任意のネットワーク構成であってもよい。
本発明の実施の形態では、PC1とMFP3、プリンタ7との間のインタフェースとして、Ethernet(登録商標)を用いたが、このインタフェースに限られることない。例えば、無線LAN、IEEE1394、Bluetooth(登録商標)、USB等の任意のインタフェースを用いるようにしてもよい。
本発明の実施の形態では、Webサービスのプロトコルの例としてWSDを挙げたが、この例に限られることない。例えばIHVの独自プロトコル等の任意のプロトコルを用いるようにしてもよい。
本発明の実施の形態では、デバイス管理上のデバイス名表示部に表示されるデバイス名や、プリンタキューボタンまたは印刷設定ボタンが押下された時のターゲットデバイスの自動選択の例を挙げた。これらの例に限られることなく、例えば、デバイス管理上からアプリケーションを起動したり、Webサイトへリンクしたり、サービスを提供したりという場合に、デバイス名やターゲットデバイスを自動的に選択してセットすることができる。