JP3817500B2 - Information processing apparatus, control method, and control program - Google Patents
Information processing apparatus, control method, and control program Download PDFInfo
- Publication number
- JP3817500B2 JP3817500B2 JP2002218134A JP2002218134A JP3817500B2 JP 3817500 B2 JP3817500 B2 JP 3817500B2 JP 2002218134 A JP2002218134 A JP 2002218134A JP 2002218134 A JP2002218134 A JP 2002218134A JP 3817500 B2 JP3817500 B2 JP 3817500B2
- Authority
- JP
- Japan
- Prior art keywords
- identification information
- installation
- driver
- peripheral device
- common module
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
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】
さらに、バージョンアップ対象となるドライバを適切に選択でき、選択したドライバを適切にバージョンアップすることができる仕組みを提供することをさらに別の目的とする。
【0013】
さらに、あるドライバの新規インストールを行う場合であっても、該インストールに起因して別のドライバが上書きされることがない仕組みを設けることにより、再起動をする回数を低減することをさらに別の目的とする。
【0014】
【課題を解決するための手段】
第一の周辺装置に対応する第一の制御プログラムと、第二の周辺装置に対応する第二の制御プログラムと、当該第一の制御プログラム及び当該第二の制御プログラムの一部として共有される共通モジュールとを含むインストールセットをインストールする情報処理装置の制御方法において、インストール時に、インストール時刻を示す時刻情報に依存する特定の識別情報、又は、第二の周辺装置に依存する特定の識別情報を生成する生成工程と、前記インストールセットに含まれる共通モジュールの複製をインストールする処理を実行する際に、既に情報処理装置の特定のディレクトリにインストールされている、前記インストールセットに含まれる共通モジュールの識別情報とは異なる識別情報となるよう、前記生成工程が生成した前記特定の識別情報を用いて共通モジュールの複製の識別情報を決定する決定工程と、前記決定工程が決定した識別情報を用いて、前記インストールセットに含まれる共通モジュールの複製を、前記特定のディレクトリに対して前記第二の周辺装置を制御するためにインストールするインストール工程と、を備える制御方法、該方法を適用した装置、制御プログラムが開示される。
【0019】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。なお、下記の各実施形態は、本発明の様々な側面を説明するための例であり、本発明の主旨を逸脱しない範囲においては、下記の各実施形態に限定されるものではないことは言うまでもない。
【0020】
(第一実施形態)
図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が新たにインストールしたドライバを認識可能なように、レジストリと呼ばれる領域に登録する。
【0021】
キーボードコントローラ(KBC)5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)6は、CRTディスプレイ(CRT)10の表示を制御する。7はディスクコントローラ(DKC)で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等を記憶するハードディスク(HD)、フロッピー(R)ディスク(FD)等の外部メモリ11とのアクセスを制御する。プリンタコントローラ(PRTC)8は、双方向性インターフェース(インターフェース)21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。なお、本実施形態においては、周辺装置を制御する制御プログラムとしてプリンタドライバを挙げているが、デジタルカメラ、複写機、ファクシミリ、インクジェットプリンタ、レーザビームプリンタ、若しくはこれらの複合機を制御する制御プログラムであってもよい。
【0022】
なお、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表示器等が配されている。また、上述のHDには、後述する図19に記載の各モジュールが記憶されている。
【0023】
また、前述した外部メモリ14は1個に限らず、複数個備えられ、内蔵フォントを加えたオプションカード、展開した印刷データのスプール用メモリ、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、図示しないNVRAMを有し、操作パネル1501からのプリンタモード設定情報を記憶するようにしてもよい。
【0024】
図2は、プリンタ等の印刷装置が直接接続されているか、あるいはネットワーク経由で接続されているホストコンピュータにおける典型的な印刷処理の構成図である。アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ11に保存されたファイルとして存在し、実行される場合にOSやそのモジュールを利用するモジュールによってRAM2にロードされ実行されるプログラムモジュールである。また、アプリケーション201およびプリンタドライバ203は、外部メモリ11のFDや不図示のCD−ROM、あるいは不図示のネットワークを経由して外部ディスク11のHDに追加することが可能となっている。外部メモリ11に保存されているアプリケーション201はRAM2にロードされて実行されるが、このアプリケーション201からプリンタ1500に対して印刷を行う際には、同様にRAM2にロードされ実行可能となっているグラフィックエンジン202を利用して出力(描画)を行う。
【0025】
グラフィックエンジン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へ印刷データとして出力される仕組みとなっている。
【0026】
本実施形態の印刷システムは、図2で示すプリンタとホストコンピュータからなる印刷システムに加えて、更に図3に示すように、アプリケーションからの印刷データを一旦中間コードデータでスプールする構成を有する。
【0027】
図3は、図2のシステムを拡張したもので、グラフィックエンジン202からプリンタドライバ203へ印刷命令を送る際に、一旦中間コードからなるスプールファイル303を生成する構成をとる。図2のシステムでは、アプリケーション201が印刷処理から開放されるのはプリンタドライバ203がグラフィックエンジン202からのすべての印刷命令をプリンタの制御コマンドへ変換し終った時点である。これに対して、図3のシステムでは、スプーラ302がすべての印刷命令を中間コードデータに変換し、スプールファイル303に出力した時点である。通常、後者の方が短時間で済む。また、図3で示すシステムにおいては、スプールファイル303の内容に対して加工することができる。これによりアプリケーションからの印刷データに対して、拡大縮小や、複数ページを1ページに縮小して印刷する等、アプリケーションの持たない機能を実現する事ができる。
【0028】
これらの目的のために、図2のシステムに対し、図3の様に中間コードデータでスプールする様、システムの拡張がなされてきている。なお、印刷データの加工を行うためには、通常プリンタドライバ203が提供するウインドウから設定を行い、プリンタドライバ203がその設定内容をRAM2上あるいは外部メモリ11上に保管する。
【0029】
以下、図3の詳細を説明する。図に示す通り、この拡張された処理方式では、グラフィックエンジン202からの印刷命令をディスパッチャ301が受け取る。ディスパッチャ301がグラフィックエンジン202から受け取った印刷命令が、アプリケーション201からグラフィックエンジン202へ発行された印刷命令の場合には、ディスパッチャ301は外部メモリ11に格納されているスプーラ302をRAM2にロードし、プリンタドライバ203ではなくスプーラ302へ印刷命令を送付する。
【0030】
スプーラ302は受け取った印刷命令を中間コードに変換してスプールファイル303に出力する。また、スプーラ302は、プリンタドライバ203に対して設定されている印刷データに関する加工設定をプリンタドライバ203から取得してスプールファイル303に保存する。なお、スプールファイル303は外部メモリ11上にファイルとして生成するが、RAM2上に生成されても構わない。更にスプーラ302は、外部メモリ11に格納されているスプールファイルマネージャ304をRAM2にロードし、スプールファイルマネージャ304に対してスプールファイル303の生成状況を通知する。その後、スプールファイルマネージャ304は、スプールファイル303に保存された印刷データに関する加工設定の内容に従って印刷を行えるか判断する。
【0031】
スプールファイルマネージャ304がグラフィックエンジン202を利用して印刷を行えると判断した際には、外部メモリ11に格納されているデスプーラ305をRAM2にロードし、デスプーラ305に対して、スプールファイル303に記述された中間コードの印刷処理を行うように指示する。
【0032】
デスプーラ305はスプールファイル303に含まれる中間コードをスプールファイル303に含まれる加工設定の内容に従って加工し、もう一度グラフィックエンジン202経由で出力する。
【0033】
ディスパッチャ301がグラフィックエンジン202から受け取った印刷命令がデスプーラ305からグラフィックエンジン202へ発行された印刷命令の場合には、ディスパッチャ301はスプーラ302ではなく、プリンタドライバ203に印刷命令を送る。
プリンタドライバ203はプリンタ制御コマンドを生成し、システムスプーラ204経由でプリンタ1500に出力する。
【0034】
図5は、プリンタドライバのフレンドリ名と、CRC.exeで作成される16進数の相関図を示したものである。図6は、本実施例で使用するWindows(R)2000におけるINFファイルの例を示したものである。図7は、本実施例で使用するWindows(R)NT40(登録商標)におけるINFファイルの例を示したものである。図8は、インストール後のシステム再起動の必要性を示したものである。以下、図4、図5、図6、図7、図8を用いて、本実施例に好適なOSのプリンタフォルダから、プリンタドライバをインストールする方法を詳細に説明する。
【0035】
図4は、本実施例の全体像を説明するプリンタドライバインストール方法の概略図を示したものである。ここでは、図4に従い、本実施例の全体像である、インストールするプリンタドライバのモジュールセットを、ある一定のルールに従ってインストール時に名称を変更する方法を説明する。ここで、ドライバモジュールセットとは、インストールセットに含まれるものであり、一定の関係に従って組をなすドライバモジュールの組をいう。
【0036】
以下、本実施形態において様々なところで出てくる要素技術であるドライバのリネーム処理について先に説明しておく。本実施形態においては、インストール時には、一定の法則にしたがって、ドライバモジュールの名前を変更する。以後、「名前を変更」することを、「リネームする」ということがある。このリネーム処理は、図1のホストコンピュータ3000にドライバをインストールする際に、ホストコンピュータ3000内のHD11に記憶されているインストーラが、RAM2にロードされ、同じくRAM2にロードされるOSのAPI(図示省略)を制御することにより、ドライバモジュール名をリネームするように制御することにより実現する。もちろん、アプリケーションであるインストーラが直接リネームを許すシステムである場合には、直接リネームをしてもよい。
【0037】
次に、リネーム処理の一例を示す。例えば、ドライバのモジュールセットであるAAA.dll、BBB.dll、CCC.dllは機種毎インストール時のリネーム対象とすると、例えば111という機種のプリンタドライバをインストールするときには、Windows(R)のシステムディレクトリに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のシステムディレクトリにコピーされる。
【0038】
この時、DDD.dllとEEE.dllが機種毎インストール時のリネーム非対象のモジュールとすると、111という機種のプリンタドライバをインストールする時でも、222という機種のプリンタドライバをインストールする時でも、OSのシステムディレクトリには、DDD.dllとEEE.dllとしてコピーされる。
【0039】
ここで、リネーム対象のプリンタドライバモジュールと、リネーム非対象のプリンタドライバモジュールの定義を説明する。リネーム対象のプリンタドライバモジュールとは、ドライバの基本機能を提供するモジュールで、印刷が一旦実行されると、OSのシステムにロードされ続けるモジュールのことである。例えば、グラフィックスドライバ(本実施例では、CNP5EE.DLL)ユーザーインターフェイスドライバ(本実施例では、CNP5EEUI.DLLが、これに該当)、リソースファイル(本実施例では、CNP5E809.DLLが、これに該当)といったモジュールがこれに該当する。一方、リネーム非対象のプリンタドライバモジュールとは、カラープロファイル、ヘルプファイルといった機種共通ファイルのことで、印刷が終了した後には、OSのシステムからアンロードされるモジュールのことである。
【0040】
図5は、リネーム対象プリンタドライバモジュールを、どのような名称でOSのシステムディレクトリにコピーするかを示した表である。具体的には、ここに書かれている4桁の16進数が、ドライバセットに組み込まれているモジュール名の後に付加される。
ここでは、ドライバ名「PrinterMakerA iR1600−2000PCL5e」のモジュールには、F0E5が、「PrinterMakerAiR2200−3300 PCL5e」には、「617E」が、「PrinterMakerA iR400 PCL5e」には、「CA5C」が、「PrinterMakerA iR5000−6000 PCL5e」には、「9926」が、「PrinterMakerA iR5000−6000−L1 PCL5e」には、「1579」が、「PrinterMakerA iR7200PCL5e」には、「FAEA」が、「PrinterMakerA iR7200−M1 PCL5e」には、「D6F1」がそれぞれ各モジュールに付加されることになる。ここで、PrinterMakerAはプリンタメーカ名であり、iR1600−2000というのは、プリンタの機種名であり、PCLとはプリンタ言語である。ドライバ名はこの順で並んでいるものとする。
【0041】
例えば、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となる。
【0042】
PrinterMakerA iR5000−6000−L1 PCL5eドライバの場合には、グラフィックスドライバは、CNP5EE_1579.DLL、ユーザーインターフェイスドライバは、CNP5EEUI_1579.DLL、リソースファイルは、CNP5E809_1579.DLLと決定される。
【0043】
この下4桁(2進数では4ビットで表現できる)の数字であるが、CRC.exeと呼ばれるプログラムツールで作成されたものである。このツールを用いると、プリンタドライバのフレンドリ名から、任意の4桁の16進数を作成することが可能となる。ここで、例えば、PrinterMakerA iR1600−2000 PCL5eの末尾を「111」、PrinterMakerA iR7200 PCL5eの末尾を「222」と最初から決めうちにしないのは、もし、決めうちにしてしまうと、プログラム内に機種名とモジュール変更名のテーブルを持つリネームルーチン等のハードコーディングが必要となり、機種を追加するたびに、プログラム修正(追加)を行わなくてはいけなくなるためである。これに比べ、ツールを用いてプリンタドライバのフレンドリ名からドライバモジュール名を生成すると、後述する外部ファイルであるINFファイルの修正だけで、機種追加が可能となる効果があるからである。
【0044】
図19は、図1のホストコンピュータ3000のHD1に記憶され、RAMに読み出されて実行されるドライバインストーラ及びOSのモジュールの一例を示す図である。1901は、ドライバモジュールセットであり、複数の機種や名前のドライバが格納されている。ドライバインストーラは、ドライバをインストールするための制御プログラムであり、ドライバインストーラを制御するための設定ファイルであるINFファイル1907を読み出し、これに従ってシステムインストーラ1905及びOSのリネーム部1906を制御する。リネーム部と書いたが、ここでは、OSの一般的なファイルのハンドリング機能、例えば、OSのファイルシステムにおける、ファイル生成、ファイル名変更、ファイル移動などの機能をリネーム部1906と名づけている。ドライバインストーラ1902は、システムインストーラ1905のAPIを呼び出すことにより、システムインストーラ1905を制御し、ドライバモジュールセットをOSが管理するシステムディレクトリ1904にコピーし、併せてレジストリ1903インストールされるモジュールの情報を登録する。レジストリは、OSが管理するデータ構造である。OSは、この領域を読み出すことにより、どのようなドライバがインストールされ、どのように設定されているかを認識することができる。
【0045】
次に、プリンタドライバのモジュールセットを、インストール時に名称変更する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を用いて生成される。
【0046】
次の大括弧[]で括られている文字列をラベルという。機種IR8500について説明するため、ラベル[IR8500]の内容をみていく。[IR8500]の設定内容の一行目を見ると、右側に書かれているモジュールつまり、CNP5EE.DLLが、ドライバセットに組み込まれているオリジナルなドライバモジュール名称であり、左側に書かれている名称、つまり、CNP5EEUI_E287.DLLが、OSのシステムディレクトリにコピーされるリネーム後の名称である。つまり、現在インストールセットに格納されているモジュールCNP5EE.DLLを、インストールするディレクトリにCNP5EEUI_E287.DLLという名前でコピーしてインストールせよという意味である。[IR8500]の設定内容の、2行目、3行目に記載されているモジュール(CNP5EEUI.DLL、CNP5E409.DLL)ついても同様である。
【0047】
次に、機種LB2000について考えるため、ラベル[LB2000]の設定内容についてみていく。CNP5EE.DLLは、CNP5EE_441B.DLLとしてコピーされるよう記載されている。[LB2000]の設定内容の2行目、3行目に記載されているモジュール(CNP5EEUI.DLL、CNP5E409.DLL)ついても同様である。
【0048】
このように、対応している機種分だけ上記の記述を行えば、ドライバモジュールセットに入っているモジュールセット一つのモジュールについて、共通モジュールであっても、OSのシステムディレクトリにコピーされるモジュールは、リネームされ、機種分だけコピーされることになる(CNP5EE_441B.DLL)。つまり、CNP5EE.DLLについて説明すれば、IR8500では、CNP5EEUI_E287.DLLというモジュール名に、LB2000ではCNP5EE_441B.DLLというモジュール名にリネームされてから、OSのシステムディレクトリにコピーされる。従来複数機種で共通モジュールとして管理されていたモジュールであっても、機種ごとに異なるモジュール名にリネームされてインストールされるため、特定機種のドライバをバージョンアップしたとしても、バージョンアップに関係しない別の機種のドライバは、上書きされたりするなど、ユーザの意図しない影響を受けなくなる。
【0049】
図8は、インストール時にリネーム対象モジュールの名称を変更した結果、プリンタドライバを構成しているモジュールセットが機種毎にインストールされ、お互いが干渉しなくなるので、インストール後のシステム再起動の必要性が少なくなることを示した図である。これは、本実施形態の目的の一つであり、複数の対応機種を1つのインストールセットに組み込んだ形式のデメリットの1つを解消することになる。複数の対応機種を1つのインストールセットに組み込むと、新規のプリンタドライバをインストールしているにも関わらず、PCにインストール済みの既存のモジュールまで上書きされるため、インストール後にはシステムの再起動が必要である。しかし、本願実施形態の発明を提供することにより、以下のようになる。
【0050】
図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ドライバインストール後の再起動は必要なくなる。
【0051】
また、本発明の実施形態の適用によって、上記と同じ環境に、異なるバージョンであるPrinterMakerA iR7200 PCL5e v5.40ドライバをインストールしても、ドライバの基本機能であり、印刷が一旦実行されると、OSのシステムにロードされ続けるモジュールは、PrinterMakerA iR8500 PCL5e v5.30ドライバとPrinterMakerA iR7200 PCL5e v5.40ドライバでは異なるようになったため、PrinterMakerA iR7200 PCL5e v5.40ドライバインストール後の再起動も必要ない。
【0052】
以上のように、インストールするプリンタドライバのモジュールセットを、ある一定のルールに従ってインストール時に名称を変更することによって、開発効率の高い機種別ドライバを作成出来るようになるだけでなく、望まれていないシステムの再起動を、最小限にとどめることが可能となる。
【0053】
以下、第一実施形態の変形例について述べる。以下の各実施形態においては、インストールの前提は、特に図1乃至図4、図19については、第一実施形態で述べたとおりである。第一実施形態と異なる部分を中心に説明する。
【0054】
(第二実施形態)
以下、インストールシステムの前提は、図1乃至図4、図19の第一実施形態で述べた通りであり、記載を省略する。以下の実施形態では、別のリネームの一例を記載する。図9は、リネーム対象プリンタドライバモジュールを、どのような名称でOSのシステムディレクトリにコピーするかを示した表である。なお、表中において、ドライバ対象ファイルはグラフィックスドライバのみ載せている。図9において、リネーム形式は、「リネーム後名称=リネーム前名称+”_”+モデル名」となっている。
例えば、PrinterMakerA iR1600−200 PCL5eドライバの場合には、次のようになる。まず、グラフィックスドライバは「CNP5EE_PrinterMakerA iR1600−200 PCL5e.DLL」であり、
ユーザーインターフェイスドライバは、「CNP5EEUI_PrinterMakerA iR1600−200 PCL5e.DLL」であり、リソースファイルは、「CNP5E809_PrinterMakerA iR1600−200 PCL5e.DLL」となる。
【0055】
また、PrinterMakerA iR7200 PCL5eドライバの場合には、次のようになる。まず、グラフィックスドドライバは、「CNP5EE_PrinterMakerA iR7200 PCL5e.DLL」、 ユーザーインターフェイスドライバは、「CNP5EEUI_PrinterMakerA iR7200 PCL5e.DLL」、 リソースファイルは、「CNP5E809_PrinterMakerA iR7200 PCL5e.DLL」となる。
【0056】
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」となる。
【0057】
なお、モデル名を加える位置やリネーム前名称とモデル名をつなぐ文字列などは重要ではなく、モデル名を加えることこそが重要である。例えば、「リネーム後名称=リネーム前名称+”@”+モデル名」という方法や「リネーム後名称=モデル名+”_”+リネーム前名称」といった方法であってもかまわない。
【0058】
ここで、リネーム後の名称を、最初から決めうちで決定しないのは、もし、決めうちにしてしまうと、プログラム内にハードコーディングが必要となり、機種を追加するたびに、プログラム修正(追加)を行わなくてはならなくなるためである。これに比べ、プリンタドライバのモデル名からドライバモジュール名を生成すると、外部ファイルであるINFファイルの修正だけで、機種追加が可能となる。プログラムの修正は必要ない。
【0059】
次に、プリンタドライバのモジュールセットを、インストール時に名称変更するINF Fileの記述方法を説明する。INF Fileのサンプルは、図10と図11になるが、必要な箇所を抜粋すると下記の通りとなる。
【0060】
[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(R)のシステムディレクトリにコピーされるリネーム後の名称である。このように、対応している機種分だけ上記の記述を行えば、ドライバセットに入っているモジュールセットは一種類でも、OSのシステムディレクトリにコピーされるモジュールは、機種分だけ存在することになる。
【0061】
(第三実施形態)
図12は、リネーム対象プリンタドライバモジュールを、どのような名称でWindows(R)のシステムディレクトリにコピーするかを示した表である。リネーム対象モジュールは、GUID (Global Unique ID)が付加されて、名称変更を行う。GUIDはインストール毎に生成されるので、インストール毎に一意になる。よって、毎回、図12で示されたリネーム後のファイル名通りにリネームされるわけではない。リネーム形式の一例を示したものである。図12において、リネーム形式は、「リネーム後名称=リネーム前名称+”_”+GUID」
となっている。例えば、唯一性のある情報の好適な一例であるGUIDは、ホストコンピュータのネットワークカードのMACアドレスをエンコーディングしたものと、インストールの実行開始時刻などを組合わせて作ることができる。
【0062】
例えば、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」となる。
【0063】
PrinterMakerA iR7200 PCL5eドライバの場合には、グラフィックスドライバは、「CNP5EE_D06A99AC−4BB7−44ed−AEC3−BEF2DBCB5BBC.DLL」、ユーザーインターフェイスドライバは、「CNP5EEUI_D06A99AC−4BB7−44ed−AEC3−BEF2DBCB5BBC.DLL」リソースファイルは、「CNP5E809_D06A99AC−4BB7−44ed−AEC3−BEF2DBCB5BBC.DLL」となる。
【0064】
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」となる。
【0065】
なお、リネーム前名称とGUIDをつなぐ文字列などより、モデル名とバージョン数を加えることが重要なポイントの一つとなる。例えば、「リネーム後名称=リネーム前名称+”@”+GUID」という方法や「リネーム後名称=GUID+”_”+リネーム前名称」といった方法であってもかまわない。
【0066】
GUIDは、インストール毎に生成されるので、リネーム後の名称は、一意であることが保証される。インストーラはGUIDを生成し、上記法則によって各モジュールをリネームインストールする際、リネームに使用したGUIDをレジストリに書き込んでおく。また、プリンタドライバは、リネーム後の名称が動的に一意に決定されるため、最初から決めうちで決定できない。そこでインストールの際にインストーラによってレジストリに書き込まれたGUIDを参照することによって、リネームされた各モジュールの名称を得ることが可能となる。よって、機種追加のためのプログラムの修正は必要なくなる。
【0067】
(第四実施形態)
図13は、リネーム対象プリンタドライバモジュールを、どのような名称でOSのシステムディレクトリにコピーするかを示した表である。なお、表中において、ドライバ対象ファイルはバージョン5.30のグラフィックスドライバのみ載せている。
【0068】
図13において、リネーム形式は、「リネーム後名称=リネーム前名称+”_”+モデル名+“_”+バージョン数」となっている。
【0069】
例えば、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、とリネームされる。
【0070】
PrinterMakerA iR7200 PCL5eドライバの場合には、グラフィックスドライバは、「CNP5EE_PrinterMakerA iR7200 PCL5e_530.DLL」、ユーザーインターフェイスドライバは、「CNP5EEUI_PrinterMakerA iR7200 PCL5e_530.DLL」、リソースファイルは、CNP5E809_PrinterMakerA iR7200 PCL5e_530.DLLとリネームされる。
【0071】
「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とリネームされる。
【0072】
なお、モデル名を加える位置やバージョン数を加える位置やリネーム前名称とモデル名をつなぐ文字列などは重要ではなく、モデル名とバージョン数を加えることがポイントの一つである。例えば、「リネーム後名称=リネーム前名称+”@”+モデル名+”@”+バージョン数」という方法や「リネーム後名称=モデル名+”_”+バージョン数+”_”+リネーム前名称」といった方法であってもかまわない。
【0073】
ここで、リネーム後の名称をモデル名とバージョン数を使用せずに最初から決めうちで決定しないのは、もし、決めうちにしてしまうと、プログラム内にハードコーディングが必要となり、機種を追加するたびに、プログラム修正(追加)を行わなくてはならなくなるためである。これに比べ、プリンタドライバのモデル名とバージョン数からドライバモジュール名を生成すると、外部ファイルであるINFファイルの修正だけで、機種追加が可能となる。プログラムの修正は必要ない。
【0074】
次に、プリンタドライバのモジュールセットを、インストール時に名称変更するINF Fileの記述方法を説明する。INF ファイルのサンプルは、図14と図15になるが、必要な箇所を抜粋すると下記の通りとなる。
【0075】
[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のシステムディレクトリにコピーされるモジュールは、機種分だけ存在することになる。
【0076】
図8は、インストール時にリネーム対象モジュールの名称を変更した結果、プリンタドライバを構成しているモジュールセットが機種毎にインストールされ、お互いが干渉しなくなるので、インストール後のシステム再起動の必要性が少なくなることを示した図である。これは、複数の対応機種を1つのインストールセットに組み込んだ形式のデメリットの1つを解消できることを示す。複数の対応機種を1つのインストールセットに組み込むと、新規のプリンタドライバをインストールしているにも関わらず、PCにインストール済みの既存のモジュールまで上書きされるため、インストール後にはシステムの再起動が必要となるがこれを解消したのである。
【0077】
図8の表に書かれている通り、PrinterMakerA iR8500 PCL5e v5.30ドライバがインストールしてあるパーソナルコンピュータに、同バージョンであるPrinterMakerA iR7200 PCL5e v5.30ドライバをインストールしても、ドライバの基本機能であり、印刷が一旦実行されると、Windows(R)システムにロードされ続けるモジュールは、PrinterMakerA iR8500 PCL5e v5.30ドライバとPrinterMakerA iR7200 PCL5e v5.30ドライバでは異なるため、PrinterMakerA iR7200 PCL5e v5.30ドライバインストール後の再起動は必要ない。また、上記と同じ環境に、異なるバージョンであるPrinterMakerA iR7200 PCL5e v5.40ドライバをインストールしても、ドライバの基本機能であり、印刷が一旦実行されると、Windows(R)システムにロードされ続けるモジュールは、PrinterMakerA iR8500 PCL5e v5.30ドライバとPrinterMakerA iR7200 PCL5e v5.40ドライバでは異なるため、PrinterMakerA iR7200 PCL5e v5.40ドライバインストール後の再起動も必要ない。
【0078】
以上のように、インストールするプリンタドライバのモジュールセットを、プリンタドライバのモデル名及びドライババージョン数に従ってインストール時に名称を変更することによって、開発効率の高い機種別ドライバを作成出来るようになるだけでなく、望まれていないシステムの再起動を、最小限にとどめることが可能となる。
【0079】
以上説明したように、第四実施形態のプリンタドライバのインストール装置によれば、プリンタドライバをパーソナルコンピュータ等の情報処理装置にインストールする際に、インストールするモジュールセットの名称を、ドライバのモデル名及びバージョン数に従ってインストール時に変更することによって、対応する全機種共通のドライバモジュールセットを、機種別かつバージョン別にの名称でインストールすることが可能になるので、極めて開発効率の高い機種別でかつバージョン別なドライバを作成出来るようになるだけでなく、望まれていないシステムの再起動を、ほぼ完全にとどめることが可能となる。
【0080】
(第五実施形態)
図16は、リネーム対象プリンタドライバモジュールを、どのような名称でWindows(R)のシステムディレクトリにコピーするかを示した表である。図16において、リネーム形式は、「リネーム後名称=リネーム前名称+”_”+プリンタドライバデータファイルに記述された数値」となっている。プリンタドライバデータファイルには、プリンタドライバを設定するための情報が入っているファイルであるが、ここでは、上述のリネーム用の各ドライバモジュール名に対応するテーブルが格納されている。
【0081】
例えば、PrinterMakerA iR1600−2000 PCL5eドライバの場合には、グラフィックスドライバは、CNP5EE_0.DLL、ユーザーインターフェイスドライバは、CNP5EEUI_0.DLL、リソースファイルは、NP5E809_0.DLLとなる。
【0082】
PrinterMakerA iR7200 PCL5eドライバの場合には、グラフィックスドライバは、CNP5EE_5.DLL、ユーザーインターフェイスドライバは、CNP5EEUI_5.DLL、リソースファイルは、CNP5E809_5.DLLとリネームされる。
【0083】
PrinterMakerA iR5000−6000−L1 PCL5eドライバの場合には、グラフィックスドライバは、CNP5EE_4.DLL、ユーザーインターフェイスドライバは、CNP5EEUI_4.DLL、リソースファイルは、CNP5E809_4.DLLとなる。
【0084】
これら名称変更後の名称はドライバデータファイルにも記述される。プリンタドライバデータファイルに記述される名称変更後の名称と、INFファイル記述される名称変更後の名称は、必ず一致させなければならない。これより、プリンタドライバは、ドライバデータファイルから名称変更後の名称を読み取ることが可能となるので、プログラム内に名称変更後の名称をハードコーディングする必要が無くなる。即ち、機種を追加するたびに、プログラム修正(追加)を行う必要がない。外部ファイルであるINFファイルとドライバデータファイルの修正だけで、機種追加が可能となる。
【0085】
次に、プリンタドライバのモジュールセットを、インストール時に名称変更するINF Fileの記述方法を説明する。INF Fileのサンプルは、図17と図18になるが、必要な箇所を抜粋すると下記の通りとなる。
【0086】
[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のシステムディレクトリにコピーされるモジュールは、機種分だけ存在することになる。
【0087】
(他の実施形態)
前述の実施形態では、OSのプリンタフォルダからプリンタドライバをインストールする場合について述べたが、これを独自で提供するインストーラで行うことも可能である。具体的には、独自で提供するインストーラの中で、ドライバモジュール名を、ドライバINFをもとに変更し、名称変更されたドライバモジュールをOのAPIでインストールすれば、本実施例で述べた機種別のインストールが可能となり、OSのプリンタフォルダからのインストールと、全く同じ機能を提供することが可能となる。
【0088】
本実施形態における各処理が、外部からインストールされるプログラムによって、クライアントデバイス1000やプリンタ1001など、それぞれの装置により遂行されてもよい。また、その場合、CD−ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群をホストコンピュータに供給される場合でも本発明は適用されるものである。
【0089】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、又は、外部サーバ(図示省略)からダウンロードすることで、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0090】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。プログラムコードを供給するための記憶媒体としては、たとえば、フロッピィーディスク、ハードディスク、光ディスク、光磁気ディスク、DVD、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM等を用いることができる。
【0091】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0092】
なお、上述の第一乃至第五の各実施形態を用いれば、図8のように、再起動の必要性が低減することは言うまでも無い。例えば、本発明各実施形態のプリンタドライバのインストール装置によれば、プリンタドライバをパーソナルコンピュータ等の情報処理装置にインストールする際に、インストールするモジュールセットの名称を、ある一定のルールに従ってインストール時に変更することによって、対応する全機種共通のドライバモジュールセットを、機種別の名称でインストールすることが可能とし、開発効率の高い機種別ドライバを作成出来るようになるだけでなく、望まれていないシステムの再起動を、最小限にとどめることが可能となる。
【0093】
【発明の効果】
以上説明したように、本発明の一つの側面によれば、インストールする際に生成される、所定の識別情報を用いてドライバモジュールセットの識別情報を変更するので、ドライバの予期しない上書き更新処理を防いで再起動を減らすと共にメモリの活用が可能となる。
【図面の簡単な説明】
【図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】図14とは別のOSに適用可能なINFファイルの一例を示した図である。
【図16】共通モジュールのリネームの一例を示した図である。
【図17】あるOSにて利用可能なINFファイルの記述例を示した図である。
【図18】図17とは別のOSに適用可能なINFファイルの一例を示した図である。
【図19】ホストコンピュータ3000内で実行されるドライバインストーラ及びOSのモジュールの一例を示す図である。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a peripheral device, an information processing device equipped with a control program for controlling the peripheral device, a method for controlling these devices, and a control program.
[0002]
[Prior art]
In order to install a device driver (hereinafter referred to as a driver) which is a control program for controlling the peripheral device, a program group called an installation set is required. The installation set includes a driver to be installed, an installer that is a control program for installing the driver, and the like. The driver is different for each normal model and version. There are two types of install sets: a format in which a plurality of compatible models are incorporated into one install set, and a format in which an install set is created for each compatible model. Specifically, in the case of the former format, when an installation program called an installer is instructed to start installation, a plurality of models are listed as installation targets and can be selected, whereas in the latter format, At the time of installation, only one model is selected as an installation target, and installation can be performed in response to a user instruction.
[0003]
[Problems to be solved by the invention]
However, when the former drivers for a plurality of compatible models are incorporated into one installation set, the following problems occur. For example, when a driver named BBB and a driver corresponding to version 2.00 is installed in a personal computer having a driver named AAA and having a version 1.00 driver installed, it corresponds to AAA. There was a problem that the driver was automatically upgraded to v2.00. In particular, when AAA and BBB include the same driver module group, the above-described problem occurs.
[0004]
This method is a great advantage for users who want to keep the latest version of the printer driver installed on the computer. However, the printer driver version can be used without the user's knowledge. It will be raised to.
[0005]
However, the above-described method is disadvantageous for a recent user in that when a system is introduced, a test for checking the operation of the printer driver is performed over a long period of time, and only those for which the operation is confirmed are used in the user environment. For example, in large-scale offices that use printing applications that depend heavily on printer drivers in combination with printer drivers, driver version management is required to be very strict, and only the driver specified by the user is upgraded. There is a strong demand to make it happen. There is a strong demand to selectively and appropriately upgrade drivers to be upgraded. The same applies to the management of device drivers of peripheral devices other than other printers.
[0006]
In addition, for example, in the above case, when the module set constituting the printer driver is the same, the AAA module is overwritten even though a new printer driver called BBB is newly installed. There is. Due to this overwriting process, there is a demerit that the system must be restarted after installation.
[0007]
There is a strong demand that system restart should be avoided as much as possible in server computers in large offices. For users who want to avoid such restart, there is a demand to avoid restart associated with a non-essential module update caused by a new installation of a certain module as described above.
[0008]
In addition, if an installation set is created for each compatible model, the module set that makes up the printer driver will differ for each model, so the system restarts after installing the new printer driver as described above, or a version that is not intended by the user However, since it is necessary to create a printer driver for each model, there is a demerit that the development man-hour becomes very large. In particular, when a new OS (operating system) is supported, if it is necessary to create printer drivers for all models, or if you try to reflect the details of a problem corrected on one model on another model, that model. It is necessary to create a separate printer driver. Further, when there are many models to be upgraded, it is necessary to prepare an installation set of necessary models and execute them separately, which makes the installation operation complicated.
[0009]
Further, when a plurality of drivers of the same type, for example, the same model, are desired to be installed, a mechanism for managing the drivers differently for each installation is required.
[0010]
The present invention overcomes such a situation, and provides a mechanism for performing an appropriate installation by changing the name of a module set to be installed according to a certain rule when installing a device driver. For one purpose.
[0011]
Furthermore, another object of the present invention is to change the identification information of the driver module set using unique identification information generated at the time of installation to prevent an unexpected overwrite update process of the driver.
[0012]
Furthermore, another object is to provide a mechanism that can appropriately select a driver to be upgraded, and that can appropriately upgrade the selected driver.
[0013]
Furthermore, even when a new installation of a certain driver is performed, it is possible to reduce the number of restarts by providing a mechanism in which another driver is not overwritten due to the installation. Objective.
[0014]
[Means for Solving the Problems]
Shared as part of the first control program corresponding to the first peripheral device, the second control program corresponding to the second peripheral device, the first control program and the second control program Install sets containing common modulesinstallIn the control method of the information processing apparatus, at the time of installation,Specific identification information that depends on the time information indicating the installation time, or specific identification information that depends on the second peripheral deviceIncluded in the installation setCommonIncluded in the installation set that is already installed in a specific directory on the information processing device when executing the process of installing a duplicate of the moduleCommon moduleUsing the specific identification information generated by the generation step so that the identification information is different from the identification information ofDuplication of common modulesUsing the determination step of determining identification information and the identification information determined by the determination step, a copy of the common module included in the installation set is stored in the specific directory.To control the second peripheral deviceAn installation process for installing, a control method, an apparatus to which the method is applied, and a control program are disclosed.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. The following embodiments are examples for explaining various aspects of the present invention, and it is needless to say that the embodiments are not limited to the following embodiments without departing from the gist of the present invention. Yes.
[0020]
(First embodiment)
FIG. 1 is a diagram showing the configuration of a printer control system showing an example of an embodiment of the present invention. As long as the function of the present invention is executed, a connection is made through a network such as a LAN or a WAN, even if it is a single device or a system composed of a plurality of devices. It goes without saying that the present invention can be applied even to a system. In the figure, the
[0021]
A keyboard controller (KBC) 5 controls key input from a
[0022]
Note that the
[0023]
The
[0024]
FIG. 2 is a configuration diagram of typical print processing in a host computer to which a printing apparatus such as a printer is directly connected or connected via a network. The
[0025]
The
[0026]
In addition to the printing system comprising the printer and host computer shown in FIG. 2, the printing system of this embodiment has a configuration in which print data from an application is temporarily spooled with intermediate code data as shown in FIG.
[0027]
FIG. 3 is an extension of the system shown in FIG. 2 and has a configuration in which a spool file 303 including an intermediate code is temporarily generated when a print command is sent from the
[0028]
For these purposes, the system of FIG. 2 has been extended to spool with intermediate code data as shown in FIG. In order to process print data, settings are made from a window provided by the
[0029]
Details of FIG. 3 will be described below. As shown in the figure, in this expanded processing method, the
[0030]
The
[0031]
When the
[0032]
The despooler 305 processes the intermediate code included in the spool file 303 according to the contents of the processing setting included in the spool file 303 and outputs the processed code again via the
[0033]
If the print command received by the
The
[0034]
FIG. 5 shows a friendly name of the printer driver, CRC. FIG. 9 shows a hexadecimal correlation diagram created by exe. FIG. 6 shows an example of an INF file in Windows (R) 2000 used in this embodiment. FIG. 7 shows an example of an INF file in Windows® NT40 (registered trademark) used in this embodiment. FIG. 8 shows the necessity of restarting the system after installation. Hereinafter, a method for installing a printer driver from a printer folder of an OS suitable for this embodiment will be described in detail with reference to FIGS. 4, 5, 6, 7, and 8.
[0035]
FIG. 4 is a schematic diagram of a printer driver installation method for explaining the overall image of this embodiment. Here, according to FIG. 4, a method for changing the name of a module set of a printer driver to be installed at the time of installation according to a certain rule, which is an overall image of the present embodiment, will be described. Here, the driver module set is included in the installation set and refers to a set of driver modules that form a set according to a certain relationship.
[0036]
Hereinafter, the driver renaming process, which is an elemental technology that appears in various places in the present embodiment, will be described first. In this embodiment, at the time of installation, the name of the driver module is changed according to a certain rule. Hereinafter, “changing the name” may be referred to as “renaming”. In this renaming process, when the driver is installed in the
[0037]
Next, an example of the rename process is shown. For example, AAA. dll, BBB. dll, CCC. If dll is a renaming target at the time of installation for each model, for example, when a printer driver of model 111 is installed, AAA_111. dll, BBB_111. dll, CCC_111. It is copied with a name such as dll. When installing a printer driver of model 222, AAA_222. dll, BBB_222. dll, CCC_222. When installing a printer driver of the type 333 with a name such as dll, AAA_333. dll, BBB_333. dll, CCC_333. It is copied to the OS system directory under the name dll.
[0038]
At this time, DDD. dll and EEE. Assuming that dll is a module that is not subject to renaming at the time of installation for each model, whether the printer driver of model 111 or the printer driver of model 222 is installed, the DDD. dll and EEE. It is copied as dll.
[0039]
Here, the definition of the printer driver module to be renamed and the printer driver module not to be renamed will be described. The printer driver module to be renamed is a module that provides a basic function of the driver, and is a module that is continuously loaded into the OS system once printing is executed. For example, a graphics driver (in this embodiment, CNP5EE.DLL) user interface driver (in this embodiment, CNP5EEUI.DLL corresponds to this), a resource file (in this embodiment, CNP5E809.DLL corresponds to this) ) Corresponds to this. On the other hand, the printer driver module not to be renamed is a model-common file such as a color profile or a help file, and is a module that is unloaded from the OS system after printing is completed.
[0040]
FIG. 5 is a table showing under what names the rename target printer driver module is copied to the OS system directory. Specifically, a 4-digit hexadecimal number written here is added after the module name incorporated in the driver set.
In this example, the driver name “PrinterMakerA iR1600-2000PCL5e” includes F0E5, “PrinterMakerAiR2200-3300 PCL5e”, “617E”, “PrinterMakerA iR400 PCL5e”, “K5r” "6000 PCL5e" has "9926", "PrinterMakerA iR5000-6000-L1 PCL5e" has "1579", "PrinterMakerA iR7200PCL5e" has "FAEA", "PrinterMakerA iR7200-M" “D6F1” is added to each module. Here, PrinterMakerA is a printer manufacturer name, iR1600-2000 is a printer model name, and PCL is a printer language. It is assumed that the driver names are arranged in this order.
[0041]
For example, in the case of the PrinterMakerA iR1600-200 PCL5e driver, the graphics driver is CNP5EE_F0E5. DLL, user interface driver is CNP5EEUI_F0E5. DLL, resource file is CNP5E809_F0E5. It becomes DLL. In the case of the PrinterMakerA iR7200 PCL5e driver, the graphics driver is CNP5EE_FAEA. DLL, user interface driver is CNP5EEUI_FAEA. For DLL, the resource file is CNP5E809_FAEA. It becomes DLL.
[0042]
In the case of the PrinterMakerA iR5000-6000-L1 PCL5e driver, the graphics driver is CNP5EE — 1579. DLL, user interface driver is CNP5EEUI — 1579. DLL, resource file is CNP5E809_1579. Determined as DLL.
[0043]
This is the last 4 digits (which can be expressed in 4 bits in binary). It was created with a program tool called exe. Using this tool, it is possible to create an arbitrary 4-digit hexadecimal number from the friendly name of the printer driver. Here, for example, the end of PrinterMakerA iR1600-2000 PCL5e is “111” and the end of PrinterMakerA iR7200 PCL5e is “222”. If you do not decide from the beginning, the model name in the program This is because hard coding such as a renaming routine having a module change name table is necessary, and each time a model is added, the program must be corrected (added). Compared to this, when a driver module name is generated from a friendly name of a printer driver using a tool, there is an effect that a model can be added only by correcting an INF file which is an external file described later.
[0044]
FIG. 19 is a diagram illustrating an example of a driver installer and an OS module that are stored in the
[0045]
Next, a description will be given of an INF file description method for renaming a printer driver module set during installation. Here, CRC. When a predetermined character string called exe is input, a hexadecimal number corresponding to the model name is created using a tool that generates a hexadecimal number corresponding to the predetermined character string on a one-to-one basis. Here, the friendly name is represented by a printer manufacturer name, a model name, and a printer language (printer language version name). The INF files in FIGS. 6 and 7 are described for a specific OS. The INF file is stored in HD1 in FIG. 1 and corresponds to 1907 in FIG. In response to execution of the driver installer 1902, the data is read by the driver installer. Samples of the INF File are shown in FIGS. 6 and 7, but the necessary portions are extracted as follows.
; Identification # 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
A description will be added about the above-mentioned INF file. IR8500 (iR8500) and LB2000 are model names of certain printers. Here, a state in which number E287 is associated with IR8500 and number 441B is associated with LBP-2000 is shown. These numbers are CRC. Generated using EXE.
[0046]
The character string enclosed in the following brackets [] is called a label. In order to explain the model IR8500, the contents of the label [IR8500] will be examined. Looking at the first line of the setting contents of [IR8500], the module written on the right side, that is, CNP5EE. DLL is an original driver module name incorporated in the driver set, and the name written on the left side, that is, CNP5EEUI_E287. DLL is a name after renaming to be copied to the OS system directory. That is, the module CNP5EE. In the directory where DLL is installed, CNP5EEUI_E287. It means to copy and install with the name DLL. The same applies to the modules (CNP5EEUI.DLL, CNP5E409.DLL) described in the second and third lines of the setting contents of [IR8500].
[0047]
Next, in order to consider the model LB2000, the setting contents of the label [LB2000] will be examined. CNP5EE. DLL is CNP5EE_441B. It is described to be copied as a DLL. The same applies to the modules (CNP5EEUI.DLL, CNP5E409.DLL) described in the second and third lines of the setting contents of [LB2000].
[0048]
In this way, if the above description is performed for the corresponding models, even if the module set in the driver module set is a common module, the module copied to the OS system directory is It will be renamed and copied for the model (CNP5EE_441B.DLL). That is, CNP5EE. If the DLL is described, in IR8500, CNP5EEUI_E287. The module name of DLL is CNP5EE_441B. After being renamed to the module name DLL, it is copied to the OS system directory. Even if a module was previously managed as a common module for multiple models, it is renamed and installed with a different module name for each model, so even if you upgrade the driver for a specific model, The model driver is not affected by the user's unintentional effects such as being overwritten.
[0049]
FIG. 8 shows that the module set constituting the printer driver is installed for each model as a result of changing the name of the module to be renamed at the time of installation, so that there is no need to restart the system after the installation. FIG. This is one of the purposes of the present embodiment, and eliminates one of the disadvantages of a format in which a plurality of compatible models are incorporated into one installation set. If multiple compatible models are installed in one installation set, the existing module already installed on the PC will be overwritten even if a new printer driver is installed, so the system must be restarted after installation. It is. However, by providing the invention of the present embodiment, the following is achieved.
[0050]
As shown in the table of FIG. 8, when the same version of the PrinterMakerA iR7200 PCL5e v5.30 driver is installed in a personal computer in which the PrinterMakerA iR8500 PCL5e v5.30 driver is installed, The basic function of the driver, and once printing is executed, the modules that continue to be loaded into the OS system are different between the PrinterMakerA iR8500 PCL5e v5.30 driver and the PrinterMakerA iR7200 PCL5e v5.30 driver, so the PrinterMakerA iR7200 Rebooting after v5.30 driver installation is no longer necessary.
[0051]
In addition, by applying the embodiment of the present invention, even if a different version of the PrinterMakerA iR7200 PCL5e v5.40 driver is installed in the same environment as described above, it is a basic function of the driver, and once printing is executed, the OS The modules that continue to be loaded on the system are different between the PrinterMakerA iR8500 PCL5e v5.30 driver and the PrinterMakerA iR7200 PCL5e v5.40 driver, so the PrinterMakerA iR7200 PCL5e v5.40 driver does not need to be restarted after installation.
[0052]
As described above, it is possible not only to create a model-specific driver with high development efficiency by changing the name of the module set of the printer driver to be installed at the time of installation according to certain rules, but also an undesired system Can be minimized.
[0053]
Hereinafter, modifications of the first embodiment will be described. In each of the following embodiments, the premise of installation is as described in the first embodiment, particularly with respect to FIGS. 1 to 4 and FIG. A description will be given centering on differences from the first embodiment.
[0054]
(Second embodiment)
Hereinafter, the premise of the installation system is as described in the first embodiment of FIGS. 1 to 4 and 19, and description thereof is omitted. In the following embodiment, an example of another rename will be described. FIG. 9 is a table showing under what names the renaming target printer driver module is copied to the OS system directory. In the table, only the graphics driver is listed as the driver target file. In FIG. 9, the rename format is “name after rename = name before rename +“ _ ”+ model name”.
For example, in the case of the PrinterMakerA iR1600-200 PCL5e driver, it is as follows. First, the graphics driver is “CNP5EE_PrinterMakerA iR1600-200 PCL5e.DLL”.
The user interface driver is “CNP5EEUI_PrinterMakerA iR1600-200 PCL5e.DLL”, and the resource file is “CNP5E809_PrinterMakerA iR1600-200 PCL5e.DLL”.
[0055]
In the case of the PrinterMakerA iR7200 PCL5e driver, the operation is as follows. First, the graphics driver is “CNP5EE_PrinterMakerA iR7200 PCL5e.DLL”, the user interface driver is “CNP5EEUI_PrinterMakerA iR7200 PCL5e.DLL”, and the resource file is “CNP5E809RPrintR.
[0056]
In the case of the PrinterMakerA iR5000-6000-L1 PCL5e driver, the graphics driver is “CNP5EE_PrinterMakerA iR5000-6000-L1 PCL5e.DLL” The user interface driver is “CNP5EEUI_PrinterM1L000PC5LPC5L PCL5L5 PCL5 PC5. “CNP5E809_PrinterMakerA iR5000-6000-L1 PCL5e.DLL”.
[0057]
The position where the model name is added and the character string connecting the name before renaming and the model name are not important, and it is important to add the model name. For example, a method such as “name after rename = name before rename +” @ ”+ model name” or “name after rename = model name +” _ ”+ name before rename” may be used.
[0058]
Here, the name after renaming is not decided in the beginning. If it is decided, hard coding is required in the program, and every time a model is added, the program is corrected (added). This is because it must be done. In contrast, when a driver module name is generated from the model name of the printer driver, it is possible to add a model only by correcting the INF file that is an external file. No program modification is required.
[0059]
Next, a description will be given of an INF File description method for changing the name of a module set of a printer driver during installation. INF File samples are shown in FIG. 10 and FIG. 11, but the necessary portions are extracted as follows.
[0060]
[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
In [IR8500_FILES] above, what is written on the right side is the original driver module name incorporated in the driver set, and the name written on the left side is copied to the Windows (R) system directory. The name after renaming. In this way, if the above description is made only for the supported models, even if there is only one type of module set in the driver set, there will be as many modules copied to the OS system directory as there are models. .
[0061]
(Third embodiment)
FIG. 12 is a table showing under what names the printer driver module to be renamed is copied to the Windows (R) system directory. The module to be renamed is renamed by adding a GUID (Global Unique ID). Since the GUID is generated for each installation, it is unique for each installation. Therefore, it is not always renamed according to the renamed file name shown in FIG. An example of the rename format is shown. In FIG. 12, the rename format is “name after rename = name before rename +“ _ ”+ GUID”.
It has become. For example, the GUID, which is a preferred example of unique information, can be created by combining the MAC address of the host computer's network card and the installation execution start time.
[0062]
For example, in the case of the PrinterMakerA iR1600-2000 PCL5e driver,
The graphics driver is "CNP5EE_1B3ADB36-3C65-4f8d-AFC9-AFB020463D5D.DLL", the user interface driver is "CNP5EEUI_1B3ADB36-3C65-4f8d-AFC9-AFB020463D5D.DLL", AFB020463D5D.DLL ".
[0063]
In the case of the PrinterMakerA iR7200 PCL5e driver, the graphics driver is “CNP5EE_D06A99AC-4BB7-44ed-AEC3-BEF2DBCB5BBC.DLL”, and the user interface driver is “CNP5EEUI_D06A99B-4C7B4C4BDB4C4B7-44C4B7-44C4B7-44C4B744 “CNP5E809_D06A99AC-4BB7-44ed-AEC3-BEF2DBCB5BBC.DLL”.
[0064]
In the case of the PrinterMakerA iR5000-6000-L1 PCL5e driver, the graphics driver is
The “CNP5EE_590C71FD-D88A-4e90-B72A-C40CBB73D28D.DLL” user interface driver is “CNP5EEUI_590C71FD-D88A-4e90-B72A-C40CBB73D28D.DLL”, and the resource file is “CNP90B71C71D71C71D71C71D71. Become.
[0065]
Note that adding the model name and the number of versions is one of the important points from the character string connecting the name before rename and the GUID. For example, a method of “name after rename = name before rename +” @ ”+ GUID” or “name after rename = GUID +” _ ”+ name before rename” may be used.
[0066]
Since the GUID is generated for each installation, it is guaranteed that the name after renaming is unique. The installer generates a GUID, and writes the GUID used for the rename in the registry when renaming and installing each module according to the above rules. In addition, since the name after the rename is dynamically and uniquely determined, the printer driver cannot be determined from the beginning. Therefore, the name of each renamed module can be obtained by referring to the GUID written in the registry by the installer at the time of installation. Therefore, there is no need to modify the program for adding models.
[0067]
(Fourth embodiment)
FIG. 13 is a table showing under what names the rename-target printer driver module is copied to the OS system directory. In the table, only the graphics driver of version 5.30 is listed as the driver target file.
[0068]
In FIG. 13, the rename format is “name after rename = name before rename +“ _ ”+ model name +“ _ ”+ number of versions”.
[0069]
For example, in the case of the PrinterMakerA iR1600-200 PCL5e driver, the graphics driver (version 5.30) is “CNP5EE_PrinterMakerA iR1600-200 PCL5e_530.DLL” user interface driver (version 5.30) is “CNP5EEIr5EPC1600-200PCL5600R200600R200600L200600L200600R200600L200600L200600L200E200R1600-200 PCL5e driver. .DLL ", the resource file (version 5.30) is CNP5E809_PrinterMakerA iR1600-200 PCL5e_530. Renamed as DLL.
[0070]
In the case of the PrinterMakerA iR7200 PCL5e driver, the graphics driver is “CNP5EE_PrinterMakerA iR7200 PCL5e_530.DLL”, the user interface driver is “CNP5EEUI_PrinterM9P3P. Renamed as DLL.
[0071]
In the case of the “PrinterMakerA iR5000-6000-L1 PCL5e” driver, the graphics driver (version 5.40) is CNP5EE_PrinterMakerA iR5000-6000-L1 PCL5e_540. DLL, user interface dry (version 5.40) is CNP5EEUI_PrinterMakerA iR5000-6000-L1 PCL5e_540. DLL, resource file (version 5.40) is CNP5E809_PrinterMakerA iR5000-6000-L1 PCL5e_540. Renamed as DLL.
[0072]
The position where the model name is added, the position where the version number is added, the character string connecting the name before renaming and the model name, etc. are not important, and adding the model name and the version number is one of the points. For example, “name after rename = name before rename +” @ ”+ model name +“ @ ”+ number of versions” or “name after model = model name +” _ ”+ number of versions +“ _ ”+ name before rename It may be a method such as.
[0073]
Here, the name after renaming is not decided from the beginning without using the model name and version number. If it is decided, hard coding is required in the program, and the model is added. This is because the program must be corrected (added) every time. In contrast, when a driver module name is generated from the model name and version number of the printer driver, it is possible to add a model only by correcting the INF file that is an external file. No program modification is required.
[0074]
Next, a description will be given of an INF File description method for changing the name of a module set of a printer driver during installation. Samples of the INF file are shown in FIGS. 14 and 15, but the necessary portions are extracted as follows.
[0075]
[PrinterMakerA]
“PrinterMakerA iR8500 PCL5e” = IR8500, PrinterMakerAIR850850D
[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
In the above [IR8500_FILES], what is written on the right side is the original driver module name incorporated in the driver set, and the name written on the left side is copied to the OS system directory after renaming. It is a name. In this way, if the above description is made only for the supported models, even if there is only one type of module set in the driver set, there will be as many modules copied to the OS system directory as there are models. .
[0076]
FIG. 8 shows that the module set constituting the printer driver is installed for each model as a result of changing the name of the module to be renamed at the time of installation, so that there is no need to restart the system after the installation. FIG. This indicates that one of the disadvantages of a format in which a plurality of compatible models are incorporated into one installation set can be eliminated. If multiple compatible models are installed in one installation set, the existing module already installed on the PC will be overwritten even if a new printer driver is installed, so the system must be restarted after installation. However, this was solved.
[0077]
As shown in the table of FIG. 8, even if the same version of the PrinterMakerA iR7200 PCL5e v5.30 driver is installed on the personal computer on which the PrinterMakerA iR8500 PCL5e v5.30 driver is installed, it is a basic function of the driver. Once the printing is executed, the modules that continue to be loaded into the Windows (R) system are different between the PrinterMakerA iR8500 PCL5e v5.30 driver and the PrinterMakerA iR7200 PCL5e v5.30 driver, so the PrinterMakerA iR7200v. No restart is required. In addition, even if a different version of the PrinterMakerA iR7200 PCL5e v5.40 driver is installed in the same environment as described above, it is a basic function of the driver. Once printing is executed, a module that continues to be loaded into the Windows (R) system Since the PrinterMakerA iR8500 PCL5e v5.30 driver is different from the PrinterMakerA iR7200 PCL5e v5.40 driver, restarting after installing the PrinterMakerA iR7200 PCL5e v5.40 driver is not necessary.
[0078]
As described above, by changing the name of the module set of the printer driver to be installed at the time of installation according to the model name and driver version number of the printer driver, it becomes possible to create a model-specific driver with high development efficiency, Unwanted system restarts can be minimized.
[0079]
As described above, according to the printer driver installation apparatus of the fourth embodiment, when installing the printer driver in an information processing apparatus such as a personal computer, the name of the module set to be installed is changed to the model name and version of the driver. By changing according to the number at the time of installation, it becomes possible to install the driver module set common to all models under the name for each model and version, so the driver by model and version by version with extremely high development efficiency Can be created, and undesired system restarts can be almost completely stopped.
[0080]
(Fifth embodiment)
FIG. 16 is a table showing under what names the printer driver module to be renamed is copied to the Windows (R) system directory. In FIG. 16, the rename format is “name after rename = name before rename +“ _ ”+ numerical value described in the printer driver data file”. The printer driver data file is a file that contains information for setting the printer driver. Here, a table corresponding to the above-described driver module names for renaming is stored.
[0081]
For example, in the case of the PrinterMakerA iR1600-2000 PCL5e driver, the graphics driver is CNP5EE_0. DLL, user interface driver is CNP5EEUI_0. The DLL and resource file are NP5E809_0. It becomes DLL.
[0082]
In the case of the PrinterMakerA iR7200 PCL5e driver, the graphics driver is CNP5EE_5. DLL, user interface driver is CNP5EEUI_5. DLL, resource file is CNP5E809_5. Renamed as DLL.
[0083]
In the case of the PrinterMakerA iR5000-6000-L1 PCL5e driver, the graphics driver is CNP5EE_4. DLL, user interface driver is CNP5EEUI_4. DLL, resource file is CNP5E809_4. It becomes DLL.
[0084]
These changed names are also described in the driver data file. The name after the name change described in the printer driver data file must match the name after the name change described in the INF file. Thus, since the printer driver can read the name after the name change from the driver data file, it is not necessary to hard code the name after the name change in the program. That is, it is not necessary to modify (add) the program every time a model is added. A model can be added only by correcting the INF file and the driver data file which are external files.
[0085]
Next, a description will be given of an INF File description method for changing the name of a module set of a printer driver during installation. Samples of the INF file are shown in FIGS. 17 and 18, but the necessary portions are extracted as follows.
[0086]
[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
What is written on the right side is an original driver module name incorporated in the driver set, and the name written on the left side is a name after renaming copied to the OS system directory. The above-mentioned printer driver data file is IR8500PK. XPD and LB2000PK. XPD. As described above, if the above description is made only for the supported models, even if there is only one type of module set in the driver set, there are only the number of modules copied to the OS system directory. .
[0087]
(Other embodiments)
In the above-described embodiment, the case where the printer driver is installed from the printer folder of the OS has been described, but this can also be performed by an installer provided independently. Specifically, in the installer provided independently, if the driver module name is changed based on the driver INF and the renamed driver module is installed with O API, the model described in this embodiment Another installation is possible, and it is possible to provide the same function as the installation from the printer folder of the OS.
[0088]
Each processing in this embodiment may be performed by each device such as the
[0089]
As described above, the system or apparatus can be obtained by supplying the storage medium storing the program code of the software that implements the functions of the above-described embodiments to the system or apparatus, or downloading the storage medium from an external server (not shown). It goes without saying that the object of the present invention can also be achieved by the computer (or CPU or MPU) reading and executing the program code stored in the storage medium.
[0090]
In this case, the program code itself read from the storage medium realizes the novel function of the present invention, and the storage medium storing the program code constitutes the present invention. As a storage medium for supplying the program code, for example, a floppy disk, a hard disk, an optical disk, a magneto-optical disk, a DVD, a CD-ROM, a magnetic tape, a nonvolatile memory card, a ROM, an EEPROM, or the like can be used.
[0091]
Further, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an OS (operating system) or the like running on the computer based on the instruction of the program code. It goes without saying that a case where the function of the above-described embodiment is realized by performing part or all of the actual processing and the processing is included. Further, after the program code read from the storage medium is written to a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion is performed based on the instruction of the program code. It goes without saying that the case where the CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing.
[0092]
Needless to say, if the first to fifth embodiments described above are used, the necessity for restarting is reduced as shown in FIG. For example, according to the printer driver installation apparatus of each embodiment of the present invention, when installing the printer driver in an information processing apparatus such as a personal computer, the name of the module set to be installed is changed at the time of installation according to a certain rule. This makes it possible not only to be able to create a model-specific driver with a high development efficiency, but also to install a common driver module set for all models with model-specific names. Activation can be minimized.
[0093]
【The invention's effect】
As described above, according to one aspect of the present invention, since the identification information of the driver module set is changed using predetermined identification information generated at the time of installation, an unexpected overwrite update process of the driver is performed. This will prevent the restart and reduce memory usage.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a print control apparatus according to an embodiment of the present invention.
FIG. 2 is a block diagram illustrating a typical print data generation method in a host computer.
FIG. 3 is a book lock diagram for explaining a print data generation method that is an extension of FIG. 2 for generating an intermediate code.
FIG. 4 is a schematic diagram of a printer driver installation method for explaining the overall image of the embodiment.
FIG. 5 shows friendly names of printer drivers and CRC. FIG. 9 shows a hexadecimal correlation diagram created by exe.
FIG. 6 shows an example of an INF file for an OS used in this embodiment.
7 shows an example of an INF file for an OS different from FIG. 6 used in the present embodiment.
FIG. 8 is a diagram showing the necessity of system restart after installation.
FIG. 9 is a diagram illustrating an example of renaming a common module.
FIG. 10 is a diagram illustrating a description example of an INF file that can be used in a certain OS.
11 is a diagram showing an example of an INF file applicable to an OS different from FIG.
FIG. 12 is a diagram illustrating an example of renaming a common module.
FIG. 13 is a diagram showing an example of renaming a common module.
FIG. 14 is a diagram showing a description example of an INF file that can be used in a certain OS.
FIG. 15 is a diagram showing an example of an INF file applicable to an OS different from FIG.
FIG. 16 is a diagram illustrating an example of renaming of a common module.
FIG. 17 is a diagram illustrating a description example of an INF file that can be used in a certain OS.
FIG. 18 is a diagram showing an example of an INF file applicable to an OS different from FIG.
FIG. 19 is a diagram illustrating an example of a driver installer and an OS module that are executed in the
Claims (11)
インストール時に、インストール時刻を示す時刻情報に依存する特定の識別情報、又は、第二の周辺装置に依存する特定の識別情報を生成する生成手段と、
前記インストールセットに含まれる共通モジュールの複製を情報処理装置へインストールする処理を実行する際に、既に情報処理装置の特定のディレクトリにインストールされている、第一の周辺装置を制御している共通モジュールの識別情報とは異なる識別情報となるよう、前記生成手段が生成した前記特定の識別情報を用いて、共通モジュールの複製の識別情報を決定する決定手段と、
前記決定手段が決定した識別情報を用いて、前記共通モジュールの複製を、前記特定のディレクトリに対して、前記第二の周辺装置を制御するためにインストールするインストール手段と、
を備える情報処理装置。Shared as part of the first control program corresponding to the first peripheral device, the second control program corresponding to the second peripheral device, the first control program and the second control program In an information processing apparatus that executes installation processing of an installation set including a common module,
At the time of installation, generating means for generating specific identification information depending on time information indicating the installation time, or specific identification information depending on the second peripheral device ,
The common module that controls the first peripheral device that is already installed in a specific directory of the information processing device when executing a process of installing a copy of the common module included in the installation set in the information processing device so that different identification information from the identification information, by using the specific identification information the generating means has generated, determining means for determining the identity of replication of the common module,
Using the identification information determined by the determination means, an installation means for installing a copy of the common module for controlling the second peripheral device with respect to the specific directory ;
An information processing apparatus comprising:
インストール時に、インストール時刻を示す時刻情報に依存する特定の識別情報、又は、第二の周辺装置に依存する特定の識別情報を生成する生成工程と、
前記インストールセットに含まれる共通モジュールの複製をインストールする処理を実行する際に、既に情報処理装置の特定のディレクトリにインストールされている、第一の周辺装置を制御している共通モジュールの識別情報とは異なる識別情報となるよう、前記生成工程が生成した前記特定の識別情報を用いて、共通モジュールの複製の識別情報を決定する決定工程と、
前記決定工程が決定した識別情報を用いて、前記インストールセットに含まれる共通モジュールの複製を、前記特定のディレクトリに対して、前記第二の周辺装置を制御するためにインストールするインストール工程と、
を備える制御方法。Shared as part of the first control program corresponding to the first peripheral device, the second control program corresponding to the second peripheral device, the first control program and the second control program In a control method of an information processing apparatus that executes an installation process of an installation set including a common module,
At the time of installation, a generation step of generating specific identification information depending on time information indicating installation time, or specific identification information depending on the second peripheral device ,
Identification information of the common module that is already installed in a specific directory of the information processing apparatus and that controls the first peripheral device when executing the process of installing a copy of the common module included in the installation set Using the specific identification information generated by the generation step so as to be different identification information, a determination step of determining identification information of the duplicate of the common module;
Using the identification information determined in the determination step, an installation step of installing a copy of the common module included in the installation set in the specific directory to control the second peripheral device ;
A control method comprising:
インストール時に、インストール時刻を示す時刻情報に依存する特定の識別情報、又は、第二の周辺装置に依存する特定の識別情報を生成する生成工程と、
前記インストールセットに含まれる共通モジュールの複製をインストールする処理を実行する際に、既に情報処理装置の特定のディレクトリにインストールされている、前記第一の周辺装置を制御している共通モジュールの識別情報とは異なる識別情報となるよう、前記生成工程が生成した前記特定の識別情報を用いて、共通モジュールの複数の識別情報を決定する決定工程と、
前記決定工程が決定した識別情報を用いて、前記インストールセットに含まれる共通モジュールの複製を、前記特定のディレクトリに対して、前記第二の周辺装置を制御するためにインストールするインストール工程と、
を備える制御方法をコンピュータに実行させる制御プログラム。Shared as part of the first control program corresponding to the first peripheral device, the second control program corresponding to the second peripheral device, the first control program and the second control program In a control method of an information processing apparatus that executes an installation process of an installation set including a common module,
At the time of installation, a generation step of generating specific identification information depending on time information indicating installation time, or specific identification information depending on the second peripheral device ,
Identification information of the common module that controls the first peripheral device that is already installed in a specific directory of the information processing apparatus when executing the process of installing a copy of the common module included in the installation set A determination step for determining a plurality of identification information of the common module using the specific identification information generated by the generation step so as to be different from the identification information;
Using the identification information determined in the determination step, an installation step of installing a copy of the common module included in the installation set in the specific directory to control the second peripheral device ;
A control program for causing a computer to execute a control method comprising:
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002218134A JP3817500B2 (en) | 2002-07-26 | 2002-07-26 | Information processing apparatus, control method, and control program |
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 (en) | 2002-07-26 | 2003-07-25 | Information processor, information processing method, computer readble memory medium |
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 |
---|---|---|---|
JP2002218134A JP3817500B2 (en) | 2002-07-26 | 2002-07-26 | Information processing apparatus, control method, and control program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004062398A JP2004062398A (en) | 2004-02-26 |
JP3817500B2 true JP3817500B2 (en) | 2006-09-06 |
Family
ID=31939412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002218134A Expired - Fee Related JP3817500B2 (en) | 2002-07-26 | 2002-07-26 | Information processing apparatus, control method, and control program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3817500B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4863450B2 (en) | 2005-03-29 | 2012-01-25 | キヤノン株式会社 | Information processing apparatus for customizing device driver program and device driver program customization method |
JP4903064B2 (en) * | 2007-02-05 | 2012-03-21 | 株式会社リコー | Print control apparatus, print control method, and print control program |
BR112013029262B1 (en) * | 2010-12-20 | 2021-09-08 | Essity Hygiene And Health Aktiebolag | ABSORBENT PANTS-TYPE ARTICLE IN THE FORM OF BERMUDA AND METHOD FOR MAKING AN ABSORBENT PANTS-TYPE ARTICLE IN THE FORM OF BERMUDA |
-
2002
- 2002-07-26 JP JP2002218134A patent/JP3817500B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004062398A (en) | 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 | |
US6965953B2 (en) | Information processing apparatus, method for controlling information processing apparatus, and storage medium storing program for realizing the method | |
US7619758B2 (en) | Information processing apparatus and method of controlling same, print control apparatus, method and program, and storage medium with transmission of installation set including printer driver and function expansion module or printer driver without function expansion module | |
US7218976B2 (en) | User interface control apparatus and method | |
JP4371693B2 (en) | Print control apparatus, print control method, and computer program | |
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 | |
JP4481800B2 (en) | Information processing apparatus, information processing method, and program | |
JP5522952B2 (en) | Print control apparatus, print control method, and program | |
JP2006164253A (en) | Data processing apparatus, setting processing method, storage medium storing computer readable program, and control program | |
JP2006139675A (en) | Data processing device, print setting processing method, storage medium for storing computer readable program, and program | |
JP2005173701A (en) | Information processor, information processing method, and program therefor | |
US20130258377A1 (en) | Printer control system, printing method, and storage medium | |
JP3817500B2 (en) | Information processing apparatus, control method, and control program | |
JP3817499B2 (en) | Information processing apparatus, control method, and control program | |
JP3733290B2 (en) | Print control apparatus, print control method, and storage medium | |
JP2013214122A (en) | Information processing apparatus, information processing method, and information processing program | |
JP4693911B2 (en) | Information processing system, control method therefor, server device, and control program therefor | |
JP2007207003A (en) | Information processor, driver setting method, storage medium and program | |
JP2921480B2 (en) | Method of starting maintenance mode in computer system | |
JP2002328757A (en) | User interface controller and user interface control method | |
JP4313998B2 (en) | HOST COMPUTER, ITS CONTROL METHOD, PROGRAM, AND STORAGE MEDIUM | |
JP2007072994A (en) | Information processor, user interface control method, memory medium and program | |
JP2009265980A (en) | Information processing apparatus | |
JP2009277253A (en) | Information processing apparatus, information processing method, and method for controlling information processing apparatus |
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: 3817500 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 |