JP3817499B2 - 情報処理装置、制御方法、制御プログラム - Google Patents

情報処理装置、制御方法、制御プログラム Download PDF

Info

Publication number
JP3817499B2
JP3817499B2 JP2002218130A JP2002218130A JP3817499B2 JP 3817499 B2 JP3817499 B2 JP 3817499B2 JP 2002218130 A JP2002218130 A JP 2002218130A JP 2002218130 A JP2002218130 A JP 2002218130A JP 3817499 B2 JP3817499 B2 JP 3817499B2
Authority
JP
Japan
Prior art keywords
identification information
common module
driver
control program
processing apparatus
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.)
Expired - Fee Related
Application number
JP2002218130A
Other languages
English (en)
Other versions
JP2004062397A (ja
Inventor
進一 山村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002218130A priority Critical patent/JP3817499B2/ja
Priority to EP03254575.8A priority patent/EP1398694B1/en
Priority to US10/626,588 priority patent/US7287253B2/en
Priority to CNB031461751A priority patent/CN1324468C/zh
Publication of JP2004062397A publication Critical patent/JP2004062397A/ja
Application granted granted Critical
Publication of JP3817499B2 publication Critical patent/JP3817499B2/ja
Priority to US11/779,268 priority patent/US7779168B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、周辺装置、該周辺装置を制御するための制御プログラムが搭載された情報処理装置、並びに、これらの装置を制御するための方法、制御プログラムに関するものである。
【0002】
【従来の技術】
周辺装置を制御するための制御プログラムであるデバイスドライバ(以下、ドライバ)をインストールするためにはインストールセットと呼ばれるプログラム群が必要となる。インストールセットには、インストール対象であるドライバ、ドライバをインストールする制御プログラムであるインストーラなどが含まれる。ドライバは、通常機種毎や、バージョンごとに異なる。インストールセットとして、複数の対応機種を1つのインストールセットに組み込んだ形式と、対応機種毎にインストールセットを作成する2つの形式がある。具体的には、前者の形式の場合、インストーラと呼ばれるインストールプログラムにインストール開始を指示すると、複数の機種がインストール対象として列挙され、これを選択可能であるのに対して、後者の形式の場合、インストール時には、1機種だけがインストール対象として選択され、ユーザの指示に応答してインストールを行うことができる。
【0003】
【発明が解決しようとしている課題】
しかしながら、前者の、複数の対応機種のドライバを1つのインストールセットに組み込むと、次のような不具合が生ずる。例えばAAAという名前のドライバであって、バージョン1.00のドライバがインストールされているパーソナルコンピュータに、BBBという名前のドライバであって、バージョン2.00に対応するドライバをインストールすると、AAAに対応するドライバまで自動的にv2.00にバージョンアップされるという問題が発生した。特に、AAAとBBBが、同じドライバモジュール群を含む場合には上述のような問題が生ずる。
【0004】
この方式は、常にコンピュータにインストールされているプリンタドライバのバージョンを最新の状態にしたいというユーザには非常に大きなメリットになるが、ユーザの知らないところで、知らないうちに、プリンタドライバのバージョンを勝手に上げてしまうという事になる。
【0005】
しかし前述の方式では、システム導入時に、プリンタドライバの動作確認のテストを長い時間をかけて行ない、動作確認がとれたものだけを、ユーザ環境で使用させるといった昨今のユーザにとっては、デメリットになる。例えば、プリンタドライバに大きく依存する印刷アプリケーション等をプリンタドライバと組合わせて使用する大規模なオフィスでは、ドライバのバージョン管理は非常に厳しいものが要求されており、ユーザの指定したドライバのみをバージョンアップさせたいという要求が強い。バージョンアップ対象のドライバを、選択的に、適切にバージョンアップしたいという要望が強い。これは、他のプリンタ以外の周辺装置のデバイスドライバの管理においても同様である。
【0006】
また、例えば、上述の場合においてプリンタドライバを構成しているモジュールセットに同じものである場合、新規であるBBBというプリンタドライバを新規インストールしているにも関わらず、AAAのモジュールが上書きされる場合がある。この上書き処理に起因して、インストール後にシステムの再起動が余儀なくされるというデメリットもある。
【0007】
システムの再起動は、大規模オフィスにおけるサーバ系コンピュータにおいては、可能な限り避けるべきであるとの要求が大きい。このような再起動を避けたいユーザにとっては、上述のようなあるモジュールの新規インストールに起因する、必須ではないモジュールの更新に伴う再起動は避けたいという要求がある。
【0008】
また、対応機種毎にインストールセットを作成すると、プリンタドライバを構成しているモジュールセットが機種毎に異なることから、上記のような新規プリンタドライバのインストール後のシステム再起動や、ユーザーの意図しないバージョンアップは防ぐことが可能になるが、プリンタドライバを機種毎に作成する必要があるため、開発工数が非常に大きくなるというデメリットがある。特に新規OS(オペレーティングシステム)対応時などは、全機種分のプリンタドライバの作成が必要になったり、ある機種で修正した障害内容を、他の機種でも反映させようとした場合には、その機種のプリンタドライバを、別途作成する必要が生じる。また、バージョンアップしたい機種が多い場合には、必要な機種のインストールセットを用意し、それぞれを別々に実行させる必要があり、インストール操作が煩雑になる。
【0009】
本発明は、このような状況を打破するもので、デバイスドライバをインストールする際に、インストールするモジュールセットの名称を、ある一定のルールに従って変更することで、適切なインストールを行う仕組みを提供することを一つの目的とする。
【0010】
さらに、バージョンアップ対象となるドライバを適切に選択でき、選択したドライバを適切にバージョンアップすることができる仕組みを提供することをさらに別の目的とする。
【0011】
さらに、あるドライバの新規インストールを行う場合であっても、該インストールに起因して別のドライバが上書きされることがない仕組みを設けることにより、再起動をする回数を低減することをさらに別の目的とする。
【0012】
【課題を解決するための手段】
第一の周辺装置に対応する第一の制御プログラムと、第二の周辺装置に対応する第二の制御プログラムと、当該第一の制御プログラム及び当該第二の制御プログラムの一部として共有される共通モジュールを含むインストールセットのインストール処理を実行する情報処理装置を制御する制御方法において、前記インストールセットに含まれる共有モジュールの複製を情報処理装置へインストールする処理を実行する際に、既に情報処理装置の特定のディレクトリにインストールされている、第一の周辺装置を制御している共通モジュールの識別情報とは異なる、インストール時の時刻情報又は第二の周辺装置に依存する識別情報となるよう、共通モジュールの複製を決定する決定ステップと、前記決定ステップが決定した識別情報を用いて、前記インストールセットに含まれる共通モジュールの複製を、前記特定のディレクトリに対して、前記第二の周辺装置を制御するためにインストールするインストールステップと、備えたことを特徴とする制御方法、該方法を適用可能な装置、制御プログラムが開示される。
【0018】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。なお、下記の各実施形態は、本発明の様々な側面を説明するための例であり、本発明の主旨を逸脱しない範囲においては、下記の各実施形態に限定されるものではないことは言うまでもない。
【0019】
(第一実施形態)
図1は本発明の実施形態の一例を示すプリンタ制御システムの構成を示す図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できることは言うまでも無い。同図において、ホストコンピュータ3000は、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理を実行するCPU1を備え、システムバス4に接続される各デバイスをCPU1が総括的に制御する。また、このROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステムプログラム(以下OS)等を記憶し、ROM3のフォント用ROMあるいは外部メモリ11には上記文書処理の際に使用するフォントデータ等を記憶し、ROM3のデータ用ROMあるいは外部メモリ11には上記文書処理等を行う際に使用する各種データを記憶する。RAM2は、CPU1の主メモリ、ワークエリア等として機能する。HDD11には、プリンタドライバをインストールするための制御プログラムであるインストーラも記憶されており、RAM2にロードされ、HDD11からドライバを読み出して取得し、或いは、ネットワーク(図示省略)を介してドライバを取得し、インストーラが取得したドライバを、OSのAPIを介して、プリンタドライバを所定の格納領域に格納するようOSを制御する。さらに、インストーラは、OSのAPIを介して、OSが新たにインストールしたドライバを認識可能なように、レジストリと呼ばれる領域に登録する。
【0020】
キーボードコントローラ(KBC)5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)6は、CRTディスプレイ(CRT)10の表示を制御する。7はディスクコントローラ(DKC)で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等を記憶するハードディスク(HD)、フロッピー(登録商標)ディスク(FD)等の外部メモリ11とのアクセスを制御する。プリンタコントローラ(PRTC)8は、双方向性インターフェース(インターフェース)21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。なお、本実施形態においては、周辺装置を制御する制御プログラムとしてプリンタドライバを挙げているが、デジタルカメラ、複写機、ファクシミリ、インクジェットプリンタ、レーザビームプリンタ、若しくはこれらの複合機を制御する制御プログラムであってもよい。
【0021】
なお、CPU1は、例えばRAM2上に設定された表示情報RAMへのアウトラインフォントの展開(ラスタライズ)処理を実行し、CRT10上でのWYSIWYGを可能としている。また、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。プリンタ1500は、CPU12により制御される。プリンタCPU12は、ROM13のプログラム用ROMに記憶された制御プログラム等あるいは外部メモリ14に記憶された制御プログラム等に基づいてシステムバス15に接続される印刷部(プリンタエンジン)17に出力情報としての画像信号を出力する。また、このROM13のプログラムROMには、CPU12の制御プログラム等を記憶する。ROM13のフォント用ROMには上記出力情報を生成する際に使用するフォントデータ等が記憶され、ROM13のデータ用ROMには、ハードディスク等の外部メモリ14がないプリンタの場合には、ホストコンピュータ上で利用される情報等が記憶されている。CPU12は入力部18を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ3000に通知できる。RAM19は、CPU12の主メモリや、ワークエリア等として機能するRAMで、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。前述したハードディスク(HD)、ICカード等の外部メモリ14は、メモリコントローラ(MC)20によりアクセスを制御される。外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶したり、展開した印刷データのスプール用として使われる。また、18は前述した操作パネルで操作のためのスイッチおよびLED表示器等が配されている。
【0022】
また、前述した外部メモリ14は1個に限らず、複数個備えられ、内蔵フォントを加えたオプションカード、展開した印刷データのスプール用メモリ、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないNVRAMを有し、操作パネル1501からのプリンタモード設定情報を記憶するようにしてもよい。
【0023】
図2は、プリンタ等の印刷装置が直接接続されているか、あるいはネットワーク経由で接続されているホストコンピュータにおける典型的な印刷処理の構成図である。アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ11に保存されたファイルとして存在し、実行される場合にOSやそのモジュールを利用するモジュールによってRAM2にロードされ実行されるプログラムモジュールである。また、アプリケーション201およびプリンタドライバ203は、外部メモリ11のFDや不図示のCD−ROM、あるいは不図示のネットワークを経由して外部ディスク11のHDに追加することが可能となっている。外部メモリ11に保存されているアプリケーション201はRAM2にロードされて実行されるが、このアプリケーション201からプリンタ1500に対して印刷を行う際には、同様にRAM2にロードされ実行可能となっているグラフィックエンジン202を利用して出力(描画)を行う。
【0024】
グラフィックエンジン202は、印刷装置ごとに用意されたプリンタドライバ203を同様に外部メモリ11からRAM2にロードし、アプリケーション201の出力をプリンタドライバ203に設定する。そして、アプリケーション201から受け取るGDI(Graphic Device Interface)関数からDDI(Device Driver Interface)関数に変換して、プリンタドライバ203へDDI関数を出力する。プリンタドライバ203は、グラフィックエンジン202から受け取ったDDI関数に基づいて、プリンタが認識可能な制御コマンド、例えばPDL(Page Description Language)に変換する。変換されたプリンタ制御コマンドは、OSによってRAM2にロードされたシステムスプーラ204を経てインタフェース21経由でプリンタ1500へ印刷データとして出力される仕組みとなっている。
【0025】
本実施形態の印刷システムは、図2で示すプリンタとホストコンピュータからなる印刷システムに加えて、更に第3図に示すように、アプリケーションからの印刷データを一旦中間コードデータでスプールする構成を有する。
【0026】
図3は、図2のシステムを拡張したもので、グラフィックエンジン202からプリンタドライバ203へ印刷命令を送る際に、一旦中間コードからなるスプールファイル303を生成する構成をとる。図2のシステムでは、アプリケーション201が印刷処理から開放されるのはプリンタドライバ203がグラフィックエンジン202からのすべての印刷命令をプリンタの制御コマンドへ変換し終った時点である。これに対して、図3のシステムでは、スプーラ302がすべての印刷命令を中間コードデータに変換し、スプールファイル303に出力した時点である。通常、後者の方が短時間で済む。また、図3で示すシステムにおいては、スプールファイル303の内容に対して加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを1ページに縮小して印刷する等、アプリケーションの持たない機能を実現する事ができる。
【0027】
これらの目的のために、図2のシステムに対し、図3の様に中間コードデータでスプールする様、システムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常プリンタドライバ203が提供するウインドウから設定を行い、プリンタドライバ203がその設定内容をRAM2上あるいは外部メモリ11上に保管する。
【0028】
以下、図3の詳細を説明する。図に示す通り、この拡張された処理方式では、グラフィックエンジン202からの印刷命令をディスパッチャ301が受け取る。ディスパッチャ301がグラフィックエンジン202から受け取った印刷命令が、アプリケーション201からグラフィックエンジン202へ発行された印刷命令の場合には、ディスパッチャ301は外部メモリ11に格納されているスプーラ302をRAM2にロードし、プリンタドライバ203ではなくスプーラ302へ印刷命令を送付する。
【0029】
スプーラ302は受け取った印刷命令を中間コードに変換してスプールファイル303に出力する。また、スプーラ302は、プリンタドライバ203に対して設定されている印刷データに関する加工設定をプリンタドライバ203から取得してスプールファイル303に保存する。なお、スプールファイル303は外部メモリ11上にファイルとして生成するが、RAM2上に生成されても構わない。更にスプーラ302は、外部メモリ11に格納されているスプールファイルマネージャ304をRAM2にロードし、スプールファイルマネージャ304に対してスプールファイル303の生成状況を通知する。その後、スプールファイルマネージャ304は、スプールファイル303に保存された印刷データに関する加工設定の内容に従って印刷を行えるか判断する。
【0030】
スプールファイルマネージャ304がグラフィックエンジン202を利用して印刷を行えると判断した際には、外部メモリ11に格納されているデスプーラ305をRAM2にロードし、デスプーラ305に対して、スプールファイル303に記述された中間コードの印刷処理を行うように指示する。
【0031】
デスプーラ305はスプールファイル303に含まれる中間コードをスプールファイル303に含まれる加工設定の内容に従って加工し、もう一度グラフィックエンジン202経由で出力する。
【0032】
ディスパッチャ301がグラフィックエンジン202から受け取った印刷命令がデスプーラ305からグラフィックエンジン202へ発行された印刷命令の場合には、ディスパッチャ301はスプーラ302ではなく、プリンタドライバ203に印刷命令を送る。
【0033】
プリンタドライバ203はプリンタ制御コマンドを生成し、システムスプーラ204経由でプリンタ1500に出力する。
【0034】
図5は、プリンタドライバのフレンドリ名と、CRC.exeで作成される16進数の相関図を示したものである。
【0035】
図6は、本実施例で使用するWindows(登録商標)2000におけるINFファイルの例を示したものである。
【0036】
図7は、本実施例で使用するWindows(登録商標)NT40におけるINFファイルの例を示したものである。
【0037】
図8は、インストール後のシステム再起動の必要性を示したものである。以下、図4、図5、図6、図7、図8を用いて、本実施例に好適なOSのプリンタフォルダから、プリンタドライバをインストールする方法を詳細に説明する。
【0038】
図4は、本実施例の全体像を説明するプリンタドライバインストール方法の概略図を示したものである。ここでは、図4に従い、本実施例の全体像である、インストールするプリンタドライバのモジュールセットを、ある一定のルールに従ってインストール時に名称を変更する方法を説明する。ここで、ドライバモジュールセットとは、インストールセットに含まれるものであり、一定の関係に従って組をなすドライバモジュールの組をいう。
【0039】
以下、本実施形態において様々なところで出てくる要素技術であるドライバのリネーム処理について先に説明しておく。本実施形態においては、インストール時には、一定の法則にしたがって、ドライバモジュールの名前を変更する。なお、「名前を変更」することを、「リネームする」ということもある。このリネーム処理は、図1のホストコンピュータ3000にドライバをインストールする際に、ホストコンピュータ3000内のHD11に記憶されているインストーラが、RAM2にロードされ、同じくRAM2にロードされるOSのAPI(図示省略)を制御することにより、ドライバモジュール名をリネームするように制御することにより実現する。もちろん、アプリケーションであるインストーラが直接リネームを許すシステムである場合には、直接リネームをしてもよい。
【0040】
次に、リネーム処理の一例を示す。例えば、ドライバのモジュールセットであるAAA.dll、BBB.dll、CCC.dllは機種毎インストール時のリネーム対象とすると、例えば111という機種のプリンタドライバをインストールするときには、Windows(登録商標)のシステムディレクトリにAAA_111.dll、BBB_111.dll、CCC_111.dllといった名称でコピーされる。また、222という機種のプリンタドライバをインストールする時には、AAA_222.dll、BBB_222.dll、CCC_222.dllといった名称で、333という機種のプリンタドライバをインストールする時には、AAA_333.dll、BBB_333.dll、CCC_333.dllといった名称で、OSのシステムディレクトリにコピーされる。
【0041】
この時、DDD.dllとEEE.dllが機種毎インストール時のリネーム非対象のモジュールとすると、111という機種のプリンタドライバをインストールする時でも、222という機種のプリンタドライバをインストールする時でも、OSのシステムディレクトリには、DDD.dllとEEE.dllとしてコピーされる。
【0042】
ここで、リネーム対象のプリンタドライバモジュールと、リネーム非対象のプリンタドライバモジュールの定義を説明する。リネーム対象のプリンタドライバモジュールとは、ドライバの基本機能を提供するモジュールで、印刷が一旦実行されると、OSのシステムにロードされ続けるモジュールのことである。例えば、グラフィックスドライバ(本実施例では、CNP5EE.DLL)ユーザーインターフェイスドライバ(本実施例では、CNP5EEUI.DLLが、これに該当)、リソースファイル(本実施例では、CNP5E809.DLLが、これに該当)といったモジュールがこれに該当する。一方、リネーム非対象のプリンタドライバモジュールとは、カラープロファイル、ヘルプファイルといった機種共通ファイルのことで、印刷が終了した後には、OSのシステムからアンロードされるモジュールのことである。
【0043】
図5は、リネーム対象プリンタドライバモジュールを、どのような名称でOSのシステムディレクトリにコピーするかを示した表である。具体的には、ここに書かれている4桁の16進数が、ドライバセットに組み込まれているモジュール名の後に付加される。
【0044】
ここでは、ドライバ名「PrinterMakerA iR1600−2000 PCL5e」のモジュールには、F0E5が、「PrinterMakerA iR2200−3300 PCL5e」には、「617E」が、「PrinterMakerA iR400 PCL5e」には、「CA5C」が、「PrinterMakerA iR5000−6000 PCL5e」には、「9926」が、「PrinterMakerA iR5000−6000−L1 PCL5e」には、「1579」が、「PrinterMakerA iR7200 PCL5e」には、「FAEA」が、「PrinterMakerA iR7200−M1 PCL5e」には、「D6F1」がそれぞれ各モジュールに付加されることになる。
【0045】
例えば、PrinterMakerA iR1600−200 PCL5eドライバの場合には、 グラフィックスドライバは、CNP5EE_F0E5.DLL、ユーザーインターフェイスドライバは、CNP5EEUI_F0E5.DLL、リソースファイルは、CNP5E809_F0E5.DLLとなる。PrinterMakerA iR7200 PCL5eドライバの場合には、グラフィックスドライバは、CNP5EE_FAEA.DLL、ユーザーインターフェイスドライバは、CNP5EEUI_FAEA.DLL、については、リソースファイルは、CNP5E809_FAEA.DLLとなる。
【0046】
PrinterMakerA iR5000−6000−L1 PCL5eドライバの場合には、グラフィックスドライバは、CNP5EE_1579.DLL、ユーザーインターフェイスドライバは、CNP5EEUI_1579.DLL、リソースファイルは、CNP5E809_1579.DLLと決定される。
【0047】
この下4桁(2進数では4ビットで表現できる)の数字であるが、CRC.exeと呼ばれるプログラムツールで作成されたものである。このツールを用いると、プリンタドライバのフレンドリ名から、任意の4桁の16進数を作成することが可能となる。ここで、例えば、PrinterMakerA iR1600−2000 PCL5eの末尾を「111」、PrinterMakerA iR7200 PCL5eの末尾を「222」と最初から決めうちにしないのは、もし、決めうちにしてしまうと、プログラム内に機種名とモジュール変更名のテーブルを持つリネームルーチン等のハードコーディングが必要となり、機種を追加するたびに、プログラム修正(追加)を行わなくてはいけなくなるためである。これに比べ、ツールを用いてプリンタドライバのフレンドリ名からドライバモジュール名を生成すると、後述する外部ファイルであるINFファイルの修正だけで、機種追加が可能となる効果があるからである。
【0048】
図19は、図1のホストコンピュータ3000のHD1に記憶され、RAMに読み出されて実行されるドライバインストーラ及びOSのモジュールの一例を示す図である。1901は、ドライバモジュールセットであり、複数の機種や名前のドライバが格納されている。ドライバインストーラは、ドライバをインストールするための制御プログラムであり、ドライバインストーラを制御するための設定ファイルであるINFファイル1907を読み出し、これに従ってシステムインストーラ1905及びOSのリネーム部1906を制御する。リネーム部と書いたが、ここでは、OSの一般的なファイルのハンドリング機能、例えば、OSのファイルシステムにおける、ファイル生成、ファイル名変更、ファイル移動などの機能をリネーム部1906と名づけている。ドライバインストーラ1902は、システムインストーラ1905のAPIを呼び出すことにより、システムインストーラ1905を制御し、ドライバモジュールセットをOSが管理するシステムディレクトリ1904にコピーし、併せてレジストリ1903インストールされるモジュールの情報を登録する。レジストリは、OSが管理するデータ構造である。OSは、この領域を読み出すことにより、どのようなドライバがインストールされ、どのように設定されているかを認識することができる。
【0049】
次に、プリンタドライバのモジュールセットを、インストール時に名称変更するINFファイルの記述方法を説明する。ここでは、CRC.exeという、所定の文字列を入力すると所定の文字列に一対一に対応する16進数を生成するツールを用いて機種名に対応する16進数を作成する。フレンドリ名は、ここでは、プリンタメーカ名、機種名、プリンタ言語(プリンタ言語バージョン名)で表されるものとする。図6と図7のINFファイルは特定のOS向けに記述されたものである。INFファイルは、図1のHD1に記憶されており、図19の1907に該当する。ドライバインストーラ1902の実行に応答して、ドライバインストーラに読み出される。INF Fileのサンプルは、図6と図7になるが、必要な箇所を抜粋すると下記の通りとなる。
; Identfication # PCL5e UK
; IR8500 : E287
; LBP−2000 : 441B
[IR8500]
CNP5EE_E287.DLL CNP5EE.DLL
CNP5EEUI_E287.DLL CNP5EEUI.DLL
CNP5E409_E287.DLL CNP5E409.DLL
[IR8500_DATA]
DriverFile=CNP5EE_E287.DLL
ConfigFile=CNP5EEUI_E287.DLL
[LB2000]
CNP5EE_441B.DLL CNP5EE.DLL
CNP5EEUI_441B.DLL CNP5EEUI.DLL
CNP5E409_441B.DLL CNP5E409.DLL
[LB2000_DATA]
DriverFile=CNP5EE_441B.DLL
ConfigFile=CNP5EEUI_441B.DLL
上述のINFファイルについて説明を加える。IR8500(iR8500)、LB2000は、あるプリンタの機種名である。ここでは、IR8500には、番号E287が、LBP−2000には、番号441Bが対応つけられる様子が示されている。これらの番号は、CRC.EXEを用いて生成される。
【0050】
次の大括弧[]で括られている文字列をラベルという。機種IR8500について説明するため、ラベル[IR8500]の内容をみていく。[IR8500]の設定内容の一行目を見ると、右側に書かれているモジュールつまり、CNP5EE.DLLが、ドライバセットに組み込まれているオリジナルなドライバモジュール名称であり、左側に書かれている名称、つまり、CNP5EEUI_E287.DLLが、OSのシステムディレクトリにコピーされるリネーム後の名称である。つまり、現在インストールセットに格納されているモジュールCNP5EE.DLLを、インストールするディレクトリにCNP5EEUI_E287.DLLという名前でコピーしてインストールせよという意味である。[IR8500]の設定内容の、2行目、3行目に記載されているモジュール(CNP5EEUI.DLL、CNP5E409.DLL)ついても同様である。
【0051】
次に、機種LB2000について考えるため、ラベル[LB2000]の設定内容についてみていく。CNP5EE.DLLは、CNP5EE_441B.DLLとしてコピーされるよう記載されている。[LB2000]の設定内容の2行目、3行目に記載されているモジュール(CNP5EEUI.DLL、CNP5E409.DLL)ついても同様である。
【0052】
このように、対応している機種分だけ上記の記述を行えば、ドライバモジュールセットに入っているモジュールセット一つのモジュールについて、共通モジュールであっても、OSのシステムディレクトリにコピーされるモジュールは、リネームされ、機種分だけコピーされることになる(CNP5EE_441B.DLL)。つまり、CNP5EE.DLLについて説明すれば、IR8500では、CNP5EEUI_E287.DLLというモジュール名に、LB2000ではCNP5EE_441B.DLLというモジュール名にリネームされてから、OSのシステムディレクトリにコピーされる。従来複数機種で共通モジュールとして管理されていたモジュールであっても、機種ごとに異なるモジュール名にリネームされてインストールされるため、特定機種のドライバをバージョンアップしたとしても、バージョンアップに関係しない別の機種のドライバは、上書きされたりするなど、ユーザの意図しない影響を受けなくなる。
【0053】
図8は、インストール時にリネーム対象モジュールの名称を変更した結果、プリンタドライバを構成しているモジュールセットが機種毎にインストールされ、お互いが干渉しなくなるので、インストール後のシステム再起動の必要性が少なくなることを示した図である。これは、本実施形態の目的の一つであり、複数の対応機種を1つのインストールセットに組み込んだ形式のデメリットの1つを解消することになる。複数の対応機種を1つのインストールセットに組み込むと、新規のプリンタドライバをインストールしているにも関わらず、PCにインストール済みの既存のモジュールまで上書きされるため、インストール後にはシステムの再起動が必要である。しかし、本願実施形態の発明を提供することにより、以下のようになる。
【0054】
図8の表に書かれている通り、PrinterMakerA iR8500 PCL5e v5.30ドライバがインストールしてあるパーソナルコンピュータに、同バージョンであるPrinterMakerA iR7200 PCL5e v5.30ドライバをインストールした場合、本実施形態の適用により、ドライバの基本機能であり、印刷が一旦実行されると、OSのシステムにロードされ続けるモジュールは、PrinterMakerA iR8500 PCL5e v5.30ドライバとPrinterMakerA iR7200 PCL5e v5.30ドライバでは異なるようになったため、PrinterMakerA iR7200 PCL5e v5.30ドライバインストール後の再起動は必要なくなる。
【0055】
また、上記と同じ環境に、異なるバージョンであるPrinterMakerA iR7200 PCL5e v5.40ドライバをインストールしても、ドライバの基本機能であり、印刷が一旦実行されると、OSのシステムにロードされ続けるモジュールは、PrinterMakerA iR8500 PCL5e v5.30ドライバとPrinterMakerA iR7200 PCL5e v5.40ドライバでは異なるようになったため、PrinterMakerA iR7200 PCL5e v5.40ドライバインストール後の再起動も必要ない。
【0056】
以上のように、インストールするプリンタドライバのモジュールセットを、ある一定のルールに従ってインストール時に名称を変更することによって、開発効率の高い機種別ドライバを作成出来るようになるだけでなく、望まれていないシステムの再起動を、最小限にとどめることが可能となる。
【0057】
以下、第一実施形態の変形例について述べる。以下の各実施形態においては、インストールの前提は、特に図1乃至図4については、第一実施形態で述べたとおりである。第一実施形態と異なる部分を中心に説明する。
【0058】
(第二実施形態)
以下、インストールシステムの前提は、図1乃至図4の第一実施形態で述べた通りであり、記載を省略する。以下の実施形態では、別のリネームの一例を記載する。図9は、リネーム対象プリンタドライバモジュールを、どのような名称でWindows(登録商標)のシステムディレクトリにコピーするかを示した表である。なお、表中において、ドライバ対象ファイルはグラフィックスドライバのみ載せている。図9において、リネーム形式は、「リネーム後名称=リネーム前名称+”_”+モデル名」となっている。
【0059】
例えば、PrinterMakerA iR1600−200 PCL5eドライバの場合には、次のようになる。まず、グラフィックスドライバは「CNP5EE_PrinterMakerA iR1600−200 PCL5e.DLL」であり、
ユーザーインターフェイスドライバは、「CNP5EEUI_PrinterMakerA iR1600−200 PCL5e.DLL」であり、リソースファイルは、「CNP5E809_PrinterMakerA iR1600−200 PCL5e.DLL」となる。
【0060】
また、PrinterMakerA iR7200 PCL5eドライバの場合には、次のようになる。まず、グラフィックスドドライバは、「CNP5EE_PrinterMakerA iR7200 PCL5e.DLL」、ユーザーインターフェイスドライバは、「CNP5EEUI_PrinterMakerA iR7200 PCL5e.DLL」、リソースファイルは、「CNP5E809_PrinterMakerA iR7200 PCL5e.DLL」となる。
【0061】
PrinterMakerA iR5000−6000−L1 PCL5eドライバの場合には、グラフィックスドライバ は、「CNP5EE_PrinterMakerA iR5000−6000−L1 PCL5e.DLL」ユーザーインターフェイスドライバは、「CNP5EEUI_PrinterMakerA iR5000−6000−L1 PCL5e.DLL」、リソースファイルは、「CNP5E809_PrinterMakerA iR5000−6000−L1 PCL5e.DLL」となる。
【0062】
なお、モデル名を加える位置やリネーム前名称とモデル名をつなぐ文字列などは重要ではなく、モデル名を加えることこそが重要である。例えば、「リネーム後名称=リネーム前名称+”@”+モデル名」という方法や「リネーム後名称=モデル名+”_”+リネーム前名称」といった方法であってもかまわない。
【0063】
ここで、リネーム後の名称を、最初から決めうちで決定しないのは、もし、決めうちにしてしまうと、プログラム内にハードコーディングが必要となり、機種を追加するたびに、プログラム修正(追加)を行わなくてはならなくなるためである。これに比べ、プリンタドライバのモデル名からドライバモジュール名を生成すると、外部ファイルであるINFファイルの修正だけで、機種追加が可能となる。プログラムの修正は必要ない。
【0064】
次に、プリンタドライバのモジュールセットを、インストール時に名称変更するINF Fileの記述方法を説明する。INF Fileのサンプルは、図10と図11になるが、必要な箇所を抜粋すると下記の通りとなる。
【0065】
[PrinterMakerA]
”PrinterMakerA iR8500 PCL5e”=IR8500,PRINTERMAKERAIR8500059D
[IR8500]
CopyFiles=IR8500_FILES PCL5E_FILES
DataFile=IR8500PU.XPD
DataSection=IR8500_DATA
[IR8500_DATA]
DriverFile=”CNP5EE_PrinterMakerA iR8500 PCL5e.DLL”
ConfigFile=”CNP5EEUI_PrinterMakerA iR8500 PCL5e.DLL”
HelpFile=CNL4J.HLP
[IR8500_FILES]
”CNP5EE_PrinterMakerA iR8500 PCL5e.DLL” CNP5EE.DLL
”CNP5EEUI_PrinterMakerA iR8500 PCL5e.DLL” CNP5EEUI.DLL
”CNP5E409_PrinterMakerA iR8500 PCL5e.DLL” CNP5E409.DLL
上記[IR8500_FILES]において、右側に書かれているものが、ドライバセットに組み込まれているオリジナルなドライバモジュール名称であり、左側に書かれている名称が、Windows(登録商標)のシステムディレクトリにコピーされるリネーム後の名称である。このように、対応している機種分だけ上記の記述を行えば、ドライバセットに入っているモジュールセットは一種類でも、OSのシステムディレクトリにコピーされるモジュールは、機種分だけ存在することになる。
【0066】
(第三実施形態)
図12は、リネーム対象プリンタドライバモジュールを、どのような名称でWindows(登録商標)のシステムディレクトリにコピーするかを示した表である。リネーム対象モジュールは、GUID(Global Unique ID)が付加されて、名称変更を行う。GUIDはインストール毎に生成されるので、インストール毎に一意になる。よって、毎回、図12で示されたリネーム後のファイル名通りにリネームされるわけではない。リネーム形式の一例を示したものである。図12において、リネーム形式は、「リネーム後名称=リネーム前名称+”_”+GUID」
となっている。
【0067】
例えば、PrinterMakerA iR1600−2000 PCL5eドライバの場合には、
グラフィックスドライバは、「CNP5EE_1B3ADB36−3C65−4f8d−AFC9−AFB020463D5D.DLL」、ユーザーインターフェイスドライバは、「CNP5EEUI_1B3ADB36−3C65−4f8d−AFC9−AFB020463D5D.DLL」リソースファイルは、「CNP5E809_1B3ADB36−3C65−4f8d−AFC9−AFB020463D5D.DLL」となる。
【0068】
PrinterMakerA iR7200 PCL5eドライバの場合には、グラフィックスドライバは、「CNP5EE_D06A99AC−4BB7−44ed−AEC3−BEF2DBCB5BBC.DLL」、ユーザーインターフェイスドライバは、「CNP5EEUI_D06A99AC−4BB7−44ed−AEC3−BEF2DBCB5BBC.DLL」リソースファイルは、「CNP5E809_D06A99AC−4BB7−44ed−AEC3−BEF2DBCB5BBC.DLL」となる。
【0069】
PrinterMakerA iR5000−6000−L1 PCL5eドライバの場合には、グラフィックスドライバは、
「CNP5EE_590C71FD−D88A−4e90−B72A−C40CBB73D28D.DLL」ユーザーインターフェイスドライバは、「CNP5EEUI_590C71FD−D88A−4e90−B72A−C40CBB73D28D.DLL」、リソースファイルは、「CNP5E809_590C71FD−D88A−4e90−B72A−C40CBB73D28D.DLL」となる。
【0070】
なお、リネーム前名称とGUIDをつなぐ文字列などより、モデル名とバージョン数を加えることが重要なポイントの一つとなる。例えば、「リネーム後名称=リネーム前名称+”@”+GUID」という方法や「リネーム後名称=GUID+”_”+リネーム前名称」といった方法であってもかまわない。
【0071】
GUIDは、インストール毎に生成されるので、リネーム後の名称は、一意であることが保証される。インストーラはGUIDを生成し、上記法則によって各モジュールをリネームインストールする際、リネームに使用したGUIDをレジストリに書き込んでおく。また、プリンタドライバは、リネーム後の名称が動的に一意に決定されるため、最初から決めうちで決定できない。そこでインストールの際にインストーラによってレジストリに書き込まれたGUIDを参照することによって、リネームされた各モジュールの名称を得ることが可能となる。よって、機種追加のためのプログラムの修正は必要なくなる。
【0072】
(第四実施形態)
図13は、リネーム対象プリンタドライバモジュールを、どのような名称でOSのシステムディレクトリにコピーするかを示した表である。なお、表中において、ドライバ対象ファイルはバージョン5.30のグラフィックスドライバのみ載せている。
【0073】
図13において、リネーム形式は、「リネーム後名称=リネーム前名称+”_”+モデル名+“_”+バージョン数」となっている。
【0074】
例えば、PrinterMakerA iR1600−200 PCL5eドライバの場合には、グラフィックスドライバ(バージョン5.30)は、「CNP5EE_PrinterMakerA iR1600−200 PCL5e_530.DLL」ユーザーインターフェイスドライバ(バージョン5.30)は、「CNP5EEUI_PrinterMakerA iR1600−200 PCL5e_530.DLL」、リソースファイル(バージョン5.30)は、CNP5E809_PrinterMakerA iR1600−200 PCL5e_530.DLL、とリネームされる。
【0075】
PrinterMakerA iR7200 PCL5eドライバの場合には、グラフィックスドライバは、「CNP5EE_PrinterMakerA iR7200 PCL5e_530.DLL」、ユーザーインターフェイスドライバは、「CNP5EEUI_PrinterMakerA iR7200 PCL5e_530.DLL」、リソースファイルは、CNP5E809_PrinterMakerA iR7200 PCL5e_530.DLLとリネームされる。
【0076】
「PrinterMakerA iR5000−6000−L1 PCL5e」ドライバの場合には、グラフィックスドライバ(バージョン5.40)は、CNP5EE_PrinterMakerA iR5000−6000−L1 PCL5e_540.DLL、ユーザーインターフェイスドライ(バージョン5.40)は、CNP5EEUI_PrinterMakerA iR5000−6000−L1 PCL5e_540.DLL、リソースファイル(バージョン5.40)は、CNP5E809_PrinterMakerA iR5000−6000−L1 PCL5e_540.DLLとリネームされる。
【0077】
なお、モデル名を加える位置やバージョン数を加える位置やリネーム前名称とモデル名をつなぐ文字列などは重要ではなく、モデル名とバージョン数を加えることがポイントの一つである。例えば、「リネーム後名称=リネーム前名称+”@”+モデル名+”@”+バージョン数」という方法や「リネーム後名称=モデル名+”_”+バージョン数+”_”+リネーム前名称」といった方法であってもかまわない。
【0078】
ここで、リネーム後の名称をモデル名とバージョン数を使用せずに最初から決めうちで決定しないのは、もし、決めうちにしてしまうと、プログラム内にハードコーディングが必要となり、機種を追加するたびに、プログラム修正(追加)を行わなくてはならなくなるためである。これに比べ、プリンタドライバのモデル名とバージョン数からドライバモジュール名を生成すると、外部ファイルであるINFファイルの修正だけで、機種追加が可能となる。プログラムの修正は必要ない。
【0079】
次に、プリンタドライバのモジュールセットを、インストール時に名称変更するINF Fileの記述方法を説明する。INF ファイルのサンプルは、図14と図15になるが、必要な箇所を抜粋すると下記の通りとなる。
【0080】
[PrinterMakerA]
”PrinterMakerA iR8500 PCL5e”=IR8500,PrinterMakerAIR8500059D
[IR8500]
CopyFiles=IR8500_FILES PCL5E_FILES
DataFile=IR8500PU.XPD
DataSection=IR8500_DATA
[IR8500_DATA]
DriverFile=”CNP5EE_PrinterMakerA iR8500 PCL5e_530.DLL”
ConfigFile=”CNP5EEUI_PrinterMakerA iR8500 PCL5e_530.DLL”
HelpFile=CNL4J.HLP
[IR8500_FILES]
”CNP5EE_PrinterMakerA iR8500 PCL5e_530.DLL”CNP5EE.DLL
”CNP5EEUI_PrinterMakerA iR8500 PCL5e_530.DLL”CNP5EEUI.DLL
”CNP5E409_PrinterMakerA iR8500 PCL5e_530.DLL”CNP5E409.DLL
上記[IR8500_FILES]において、右側に書かれているものが、ドライバセットに組み込まれているオリジナルなドライバモジュール名称であり、左側に書かれている名称が、OSのシステムディレクトリにコピーされるリネーム後の名称である。このように、対応している機種分だけ上記の記述を行えば、ドライバセットに入っているモジュールセットは一種類でも、OSのシステムディレクトリにコピーされるモジュールは、機種分だけ存在することになる。
【0081】
図8は、インストール時にリネーム対象モジュールの名称を変更した結果、プリンタドライバを構成しているモジュールセットが機種毎にインストールされ、お互いが干渉しなくなるので、インストール後のシステム再起動の必要性が少なくなることを示した図である。これは、複数の対応機種を1つのインストールセットに組み込んだ形式のデメリットの1つを解消できることを示す。複数の対応機種を1つのインストールセットに組み込むと、新規のプリンタドライバをインストールしているにも関わらず、PCにインストール済みの既存のモジュールまで上書きされるため、インストール後にはシステムの再起動が必要となるがこれを解消したのである。
【0082】
図8の表に書かれている通り、PrinterMakerA iR8500 PCL5e v5.30ドライバがインストールしてあるパーソナルコンピュータに、同バージョンであるPrinterMakerA iR7200 PCL5e v5.30ドライバをインストールしても、ドライバの基本機能であり、印刷が一旦実行されると、Windows(登録商標)システムにロードされ続けるモジュールは、PrinterMakerA iR8500 PCL5e v5.30ドライバとPrinterMakerA iR7200 PCL5ev5.30ドライバでは異なるため、PrinterMakerA iR7200 PCL5e v5.30ドライバインストール後の再起動は必要ない。また、上記と同じ環境に、異なるバージョンであるPrinterMakerA iR7200 PCL5e v5.40ドライバをインストールしても、ドライバの基本機能であり、印刷が一旦実行されると、Windows(登録商標)システムにロードされ続けるモジュールは、PrinterMakerA iR8500 PCL5e v5.30ドライバとPrinterMakerA iR7200 PCL5e v5.40ドライバでは異なるため、PrinterMakerA iR7200 PCL5e v5.40ドライバインストール後の再起動も必要ない。
【0083】
以上のように、インストールするプリンタドライバのモジュールセットを、プリンタドライバのモデル名及びドライババージョン数に従ってインストール時に名称を変更することによって、開発効率の高い機種別ドライバを作成出来るようになるだけでなく、望まれていないシステムの再起動を、最小限にとどめることが可能となる。
【0084】
以上説明したように、第四実施形態のプリンタドライバのインストール装置によれば、プリンタドライバをパーソナルコンピュータ等の情報処理装置にインストールする際に、インストールするモジュールセットの名称を、ドライバのモデル名及びバージョン数に従ってインストール時に変更することによって、対応する全機種共通のドライバモジュールセットを、機種別かつバージョン別にの名称でインストールすることが可能になるので、極めて開発効率の高い機種別でかつバージョン別なドライバを作成出来るようになるだけでなく、望まれていないシステムの再起動を、ほぼ完全にとどめることが可能となる。
【0085】
(第五実施形態)
図5は、リネーム対象プリンタドライバモジュールを、どのような名称でWindows(登録商標)のシステムディレクトリにコピーするかを示した表である。図5において、リネーム形式は、「リネーム後名称=リネーム前名称+”_”+プリンタドライバデータファイルに記述された数値」となっている。
【0086】
例えば、PrinterMakerA iR1600−2000 PCL5eドライバの場合には、グラフィックスドライバは、CNP5EE_0.DLL、ユーザーインターフェイスドライバは、CNP5EEUI_0.DLL、リソースファイルは、NP5E809_0.DLLとなる。
【0087】
PrinterMakerA iR7200 PCL5eドライバの場合には、グラフィックスドライバは、CNP5EE_5.DLL、ユーザーインターフェイスドライバは、CNP5EEUI_5.DLL、リソースファイルは、CNP5E809_5.DLLとリネームされる。
【0088】
PrinterMakerA iR5000−6000−L1 PCL5eドライバの場合には、グラフィックスドライバは、CNP5EE_4.DLL、ユーザーインターフェイスドライバは、CNP5EEUI_4.DLL、リソースファイルは、CNP5E809_4.DLLとなる。
【0089】
これら名称変更後の名称はドライバデータファイルにも記述される。プリンタドライバデータファイルに記述される名称変更後の名称と、INFファイル記述される名称変更後の名称は、必ず一致させなければならない。これより、プリンタドライバは、ドライバデータファイルから名称変更後の名称を読み取ることが可能となるので、プログラム内に名称変更後の名称をハードコーディングする必要が無くなる。即ち、機種を追加するたびに、プログラム修正(追加)を行う必要がない。外部ファイルであるINFファイルとドライバデータファイルの修正だけで、機種追加が可能となる。
【0090】
次に、プリンタドライバのモジュールセットを、インストール時に名称変更するINF Fileの記述方法を説明する。INF Fileのサンプルは、図17と図18になるが、必要な箇所を抜粋すると下記の通りとなる。
【0091】
[IR8500]
IR8500PK.XPD
CNP5EE_8.DLL, CNP5EE.DLL
CNP5EEUI_8.DLL, CNP5EEUI.DLL
CNP5E809_8, CNP5E809.DLL
[LB2000]
LB2000PK.XPD
CNP5EE_15.DLL, CNP5EE.DLL
CNP5EEUI_15.DLL, CNP5EEUI.DLL
CNP5E809_15.DLL, CNP5E809.DLL
右側に書かれているものが、ドライバセットに組み込まれているオリジナルなドライバモジュール名称であり、左側に書かれている名称が、OSのシステムディレクトリにコピーされるリネーム後の名称である。前述のプリンタドライバデータファイルというのは、IR8500PK.XPDやLB2000PK.XPDである。このように、対応している機種分だけ上記の記述を行えば、ドライバセットに入っているモジュールセットは一種類でも、OSのシステムディレクトリにコピーされるモジュールは、機種分だけ存在することになる。
【0092】
(他の実施形態)
前述の各実施形態では、OSのプリンタフォルダからプリンタドライバをインストールする場合について述べたが、これを独自で提供するインストーラで行うことも可能である。具体的には、独自で提供するインストーラの中で、ドライバモジュール名を、ドライバINFをもとに変更し、名称変更されたドライバモジュールをOのAPIでインストールすれば、本実施例で述べた機種別のインストールが可能となり、OSのプリンタフォルダからのインストールと、全く同じ機能を提供することが可能となる。
【0093】
本実施形態における各処理が、外部からインストールされるプログラムによって、クライアントデバイス1000やプリンタ1001など、それぞれの装置により遂行されてもよい。また、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群をホストコンピュータに供給される場合でも本発明は適用されるものである。
【0094】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、又は、外部サーバ(図示省略)からダウンロードすることで、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0095】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、たとえば、フロッピィーディスク、ハードディスク、光ディスク、光磁気ディスク、DVD、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM等を用いることができる。
【0096】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0097】
本実施例では、OSのプリンタフォルダからプリンタドライバをインストールする場合について述べたが、これを独自で提供するインストーラで行うことも可能である。具体的には、独自で提供するインストーラの中で、ドライバモジュール名を、ドライバINFをもとに変更し、名称変更されたドライバモジュールをOのAPIでインストールすれば、本実施例で述べた機種別のインストールが可能となり、Windows(登録商標)のプリンタフォルダからのインストールと、全く同じ機能を提供することが可能となる。
【0098】
なお、上述の各実施形態を用いれば、図8のように、再起動の必要性が低減することは言うまでも無い。例えば、本発明各実施形態のプリンタドライバのインストール装置によれば、プリンタドライバをパーソナルコンピュータ等の情報処理装置にインストールする際に、インストールするモジュールセットの名称を、ある一定のルールに従ってインストール時に変更することによって、対応する全機種共通のドライバモジュールセットを、機種別の名称でインストールすることが可能とし、開発効率の高い機種別ドライバを作成出来るようになるだけでなく、望まれていないシステムの再起動を、最小限にとどめることが可能となる。
【0099】
【発明の効果】
以上説明したように、本発明のによれば、インストールするモジュールセットの名称を、ある一定のルールに従って変更することによって、対応する共通モジュールを、適切にインストールすることが可能となり、開発効率の高い機種別ドライバを作成出来るようになるだけでなく、望まれていないシステムの再起動を、最小限にとどめることが可能となる。
【図面の簡単な説明】
【図1】本発明の1実施例を示す印刷制御装置の構成を説明するブロック図である。
【図2】ホストコンピュータにおける典型的な印刷データ生成方法を説明するブロック図である。
【図3】中間コードを生成する図2を拡張した印刷データ生成方法を説明する簿ロック図である。
【図4】本実施例の全体像を説明するプリンタドライバインストール方法の概略図を示したものである。
【図5】プリンタドライバのフレンドリ名と、CRC.exeで作成される16進数の相関図を示したものである。
【図6】本実施例で使用するあるOS用のINFファイルの例を示したものである。
【図7】本実施例で使用する図6とは別のOS用のINFファイルの例を示したものである。
【図8】インストール後のシステム再起動の必要性を示したものである。
【図9】共通モジュールのリネームの一例を示した図である。
【図10】あるOSにて利用可能なINFファイルの記述例を示した図である。
【図11】図10とは別のOSに適用可能なINFファイルの一例を示した図である。
【図12】共通モジュールのリネームの一例を示した図である。
【図13】共通モジュールのリネームの一例を示した図である。
【図14】あるOSにて利用可能なINFファイルの記述例を示した図である。
【図15】図10とは別のOSに適用可能なINFファイルの一例を示した図である。
【図16】共通モジュールのリネームの一例を示した図である。
【図17】あるOSにて利用可能なINFファイルの記述例を示した図である。
【図18】図10とは別のOSに適用可能なINFファイルの一例を示した図である。
【図19】ホストコンピュータ3000内のモジュールのブロック図の一例を示す図である。

Claims (15)

  1. 第一の周辺装置に対応する第一の制御プログラムと、第二の周辺装置に対応する第二の制御プログラムと、当該第一の制御プログラム及び当該第二の制御プログラムの一部として共有される共通モジュールを含むインストールセットのインストール処理を実行する情報処理装置において、
    前記インストールセットに含まれる共有モジュールの複製を情報処理装置へインストールする処理を実行する際に、既に情報処理装置の特定のディレクトリにインストールされている、第一の周辺装置を制御している共通モジュールの識別情報とは異なる、インストール時の時刻情報又は第二の周辺装置に依存する識別情報となるよう、共通モジュールの複製を決定する決定手段と、
    前記決定手段が決定した識別情報を用いて、前記インストールセットに含まれる共通モジュールの複製を、前記特定のディレクトリに対して、前記第二の周辺装置を制御するために前記第二の制御プログラムの一部としてインストールするインストール手段と、
    備えたことを特徴とする情報処理装置。
  2. 前記決定手段において決定された識別情報に基づいて、
    第一の制御プログラム、並びに、第二の制御プログラムの共通モジュールを、互いに異なる識別情報を有するモジュールとして前記特定のディレクトリに前記インストール手段はインストールすることを特徴とする請求項1に記載の情報処理装置。
  3. 前記決定手段は、前記共通モジュールの複製の識別情報を、前記第二の周辺装置を示す情報に基づいて決定することを特徴とする請求項1または2に記載の情報処理装置。
  4. インストール時刻又は第二の周辺装置に依存する特定の識別情報を生成する生成手段をさらに備え、前記決定手段は、前記生成手段が生成した特定の情報に基づいて、共通モジュールの複製の識別情報を決定することを特徴とする請求項1乃至3のいずれかに記載の情報処理装置。
  5. 前記共通モジュールの識別情報とは、前記情報処理装置に搭載されるオペレーティングシステムによって管理される前記共通モジュールの名称であり、
    前記決定手段によって決定されたそれぞれの識別情報に基づいて、それぞれ周辺装置に対応する共通モジュールの名称を変更するようオペレーティングシステムを制御する制御手段をさらに備えることを特徴とする請求項1乃至4のいずれかに記載の情報処理装置。
  6. 前記共通モジュールのうち、グラフィックドライバモジュール又はユーザインタフェースドライバモジュールを認識する認識手段と、
    前記決定手段は、前記認識手段により認識された共通モジュールの識別情報を変更すべく、変更後の該共通モジュールの識別情報を決定することを特徴とする請求項1乃至5のいずれかに記載の情報処理装置。
  7. 前記決定手段は、予め記憶された、前記第一の制御プログラムに含まれる、情報処理装置の特定のディレクトリにインストールされる共通モジュールの識別情報とは異なる識別情報を取得して、前記第二の制御プログラムとしてインストールすべき共通モジュールの識別情報を決定することを特徴とする請求項1乃至6のいずれかに記載の情報処理装置。
  8. 第一の周辺装置に対応する第一の制御プログラムと、第二の周辺装置に対応する第二の制御プログラムと、当該第一の制御プログラム及び当該第二の制御プログラムの一部として共有される共通モジュールを含むインストールセットのインストール処理を実行する情報処理装置を制御する制御方法において、
    前記インストールセットに含まれる共有モジュールの複製を情報処理装置へインストールする処理を実行する際に、既に情報処理装置の特定のディレクトリにインストールされている、第一の周辺装置を制御している共通モジュールの識別情報とは異なる、インストール時の時刻情報又は第二の周辺装置に依存する識別情報となるよう、共通モジュールの複製を決定する決定ステップと、
    前記決定ステップが決定した識別情報を用いて、前記インストールセットに含まれる共通モジュールの複製を、前記特定のディレクトリに対して、前記第二の周辺装置を制御するためにインストールするインストールステップと、
    備えたことを特徴とする制御方法。
  9. 前記決定工程において決定されたそれぞれの識別情報に基づいて、
    第一の制御プログラム、並びに、第二の制御プログラムの共通モジュールを、互いに異なる識別情報を有するモジュールとして前記特定のディレクトリに前記インストール工程はインストールすることを特徴とする請求項8に記載の制御方法。
  10. 前記決定工程は、前記共通モジュールの複製の識別情報を、前記第二の周辺装置を示す情報に基づいて決定することを特徴とする請求項8又は9に記載の制御方法。
  11. インストール時刻又は第二の周辺装置に依存する特定の識別情報を生成する生成工程をさらに備え、前記決定工程は、前記生成工程で生成した特定の情報に基づいて、共通モジュールの複製の識別情報を決定することを特徴とする請求項8乃至10のいずれかに記載の制御方法。
  12. 前記共通モジュールの識別情報とは、前記情報処理装置に搭載されるオペレーティングシステムによって管理される前記共通モジュールの名称であり、
    前記決定工程によって決定されたそれぞれの識別情報に基づいて、それぞれ周辺装置に対応する共通モジュールの名称を変更するようオペレーティングシステムを制御する制御工程をさらに備えることを特徴とする請求項8乃至11のいずれかに記載の制御方法。
  13. 前記共通モジュールのうち、グラフィックドライバモジュール又はユーザインタフェースドライバモジュールを認識する認識工程と、
    前記決定工程は、前記認識工程により認識された共通モジュールの識別情報を変更すべく、変更後の該共通モジュールの識別情報を決定することを特徴とする請求項8乃至12のいずれかに記載の制御方法。
  14. 前記決定工程では、予め記憶された、前記第一の制御プログラムに含まれる、情報処理装置の特定のディレクトリにインストールされる共通モジュールの識別情報とは異なる識別情報を取得して、前記第二の制御プログラムとしてインストールすべき共通モジュールの識別情報を決定することを特徴とする請求項8乃至13のいずれかに記載の制御方法。
  15. 第一の周辺装置に対応する第一の制御プログラムと、第二の周辺装置に対応する第二の制御プログラムと、当該第一の制御プログラム及び当該第二の制御プログラムの一部として共有される共通モジュールを含むインストールセットのインストール処理を実行する情報処理装置を制御する制御方法をコンピュータに実行させる制御プログラムにおいて、
    前記インストールセットに含まれる共有モジュールの複製を情報処理装置へインストールする処理を実行する際に、既に情報処理装置の特定のディレクトリにインストールされている、第一の周辺装置を制御している共通モジュールの識別情報とは異なる、インストール時の時刻情報又は第二の周辺装置に依存する識別情報となるよう、共通モジュールの複製を決定する決定ステップと、
    前記決定ステップが決定した識別情報を用いて、前記インストールセットに含まれる共通モジュールの複製を、前記特定のディレクトリに対して、前記第二の周辺装置を制御するためにインストールするインストールステップと、
    備えたことを特徴とする制御方法をコンピュータに実行させる制御プログラム。
JP2002218130A 2002-07-26 2002-07-26 情報処理装置、制御方法、制御プログラム Expired - Fee Related JP3817499B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2002218130A JP3817499B2 (ja) 2002-07-26 2002-07-26 情報処理装置、制御方法、制御プログラム
EP03254575.8A EP1398694B1 (en) 2002-07-26 2003-07-22 Information processing method
US10/626,588 US7287253B2 (en) 2002-07-26 2003-07-25 Installation of device software and formulation of unique identification information based on time information
CNB031461751A CN1324468C (zh) 2002-07-26 2003-07-25 信息处理装置、信息处理方法
US11/779,268 US7779168B2 (en) 2002-07-26 2007-07-17 Information processing apparatus, information processing method, and computer-readable memory medium storing program for realizing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002218130A JP3817499B2 (ja) 2002-07-26 2002-07-26 情報処理装置、制御方法、制御プログラム

Publications (2)

Publication Number Publication Date
JP2004062397A JP2004062397A (ja) 2004-02-26
JP3817499B2 true JP3817499B2 (ja) 2006-09-06

Family

ID=31939411

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002218130A Expired - Fee Related JP3817499B2 (ja) 2002-07-26 2002-07-26 情報処理装置、制御方法、制御プログラム

Country Status (1)

Country Link
JP (1) JP3817499B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3966179B2 (ja) 2003-01-06 2007-08-29 ブラザー工業株式会社 ドライバソフト設定システム、コンピュータ、ドライバソフト設定方法、及びプログラム
US7802022B2 (en) * 2004-04-29 2010-09-21 Microsoft Corporation Generic USB drivers
JP5062499B2 (ja) * 2010-05-07 2012-10-31 横河電機株式会社 フィールド機器管理装置

Also Published As

Publication number Publication date
JP2004062397A (ja) 2004-02-26

Similar Documents

Publication Publication Date Title
US7779168B2 (en) Information processing apparatus, information processing method, and computer-readable memory medium storing program for realizing the method
KR100531063B1 (ko) 정보 처리 장치, 정보 처리 장치를 제어하는 방법, 및상기 방법을 구현하기 위한 프로그램을 저장한 기억 매체
JP4182094B2 (ja) 情報処理装置及びその制御方法、プログラム
JP4371693B2 (ja) 印刷制御装置、印刷制御方法及びコンピュータプログラム
US7218976B2 (en) User interface control apparatus and method
US7791745B2 (en) Information processing apparatus on which printer driver can be installed, information processing apparatus, control method, program, and storage medium
US20110242565A1 (en) Printer control system, printing method, and storage medium
US20060232810A1 (en) Information processing apparatus and information processing method
JP4481800B2 (ja) 情報処理装置、情報処理方法及びプログラム
US9086938B2 (en) Information processing apparatus, control method thereof, and storage medium
JP5522952B2 (ja) 印刷制御装置、印刷制御方法、およびプログラム
JP2006139675A (ja) データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
JP2006164253A (ja) データ処理装置および設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体および制御プログラム
JP2005173701A (ja) 情報処理装置、情報処理方法及びそのプログラム
US20130258377A1 (en) Printer control system, printing method, and storage medium
JP3817499B2 (ja) 情報処理装置、制御方法、制御プログラム
JP3817500B2 (ja) 情報処理装置、制御方法、制御プログラム
JPH10283129A (ja) 印刷制御装置及び印刷制御プログラムのインストール方法及び記憶媒体
JP4693911B2 (ja) 情報処理システム及びその制御方法及びサーバ装置とその制御プログラム
JP2007207003A (ja) 情報処理装置、ドライバ設定方法、記憶媒体、プログラム
JP2002328757A (ja) ユーザインタフェース制御装置および方法
JP4313998B2 (ja) ホストコンピュータ及びその制御方法、プログラム並びに記憶媒体
JP4560330B2 (ja) 印刷制御装置及びその方法とインストーラ
JP2007072994A (ja) 情報処理装置、ui制御方法、記憶媒体およびプログラム
JP2009265980A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050909

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060214

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060515

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060612

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3817499

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090616

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100616

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130616

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees