JP2004062398A - Information processor, control process, control program - Google Patents

Information processor, control process, control program Download PDF

Info

Publication number
JP2004062398A
JP2004062398A JP2002218134A JP2002218134A JP2004062398A JP 2004062398 A JP2004062398 A JP 2004062398A JP 2002218134 A JP2002218134 A JP 2002218134A JP 2002218134 A JP2002218134 A JP 2002218134A JP 2004062398 A JP2004062398 A JP 2004062398A
Authority
JP
Japan
Prior art keywords
driver
control program
dll
identification information
installation
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.)
Granted
Application number
JP2002218134A
Other languages
Japanese (ja)
Other versions
JP3817500B2 (en
Inventor
Yoshihiro Takagi
高木 義博
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 JP2002218134A priority Critical patent/JP3817500B2/en
Priority to EP03254575.8A priority patent/EP1398694B1/en
Priority to US10/626,588 priority patent/US7287253B2/en
Priority to CNB031461751A priority patent/CN1324468C/en
Publication of JP2004062398A publication Critical patent/JP2004062398A/en
Application granted granted Critical
Publication of JP3817500B2 publication Critical patent/JP3817500B2/en
Priority to US11/779,268 priority patent/US7779168B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a mechanism for selectively upgrading an appropriate driver by reducing the rate of rebooting a system due to the installation of a driver that uses a common module. <P>SOLUTION: An information processor can be loaded with a control program including a common module and corresponding to a peripheral device. The information processor (host computer 300) is characterized in that it includes a generating means for generating unique identification information in response to the execution of installation; and a varying means by which the identification information of the common module operating as part of the control program is varied depending on the unique identification information generated by the generating means. <P>COPYRIGHT: (C)2004,JPO

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】
【課題を解決するための手段】
本発明の第1の側面は、共通モジュールを含む、周辺装置に対応する制御プログラムを搭載可能な情報処理装置において、インストールを実行するのに応答して、該インストール時に一意な識別情報として生成される唯一性のある識別情報を生成する生成手段と、前記制御プログラムの一部として動作する共通モジュールの識別情報を、前記生成手段において生成した唯一性のある識別情報に基づいて変更する変更手段とを備えたことを特徴とする。
【0015】
本発明の第2の側面は、前記唯一性のある識別情報とは、MACアドレスに基づいて生成されることを特徴とする。
【0016】
本発明の第3の側面は、前記唯一性のある識別情報とは、インストールが行われる時刻に基づき生成されることを特徴とする。
【0017】
本発明の第4の側面は、前記情報処理装置は、第1の周辺装置を制御する際に使用する第1の制御プログラムと、第2の周辺装置を制御する第2の制御プログラムとを搭載可能であって、前記第1の制御プログラムと、第2の制御プログラムに共通する共通モジュールを、前記第1の制御プログラムと、前記第2の制御プログラムとに、それぞれ対応させるべく別のモジュールとして導入する導入手段をさらに備えたことを特徴とする。
【0018】
本発明の第5の側面は、前記変更手段は、前記唯一性のある識別情報と、前記第1の周辺装置の組、又は、前記唯一性のある識別情報と、第2の周辺装置を示す識別情報との組に基づいて、前記共通モジュールの識別情報を変更することを特徴とする。
【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]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a peripheral device, an information processing device in which a control program for controlling the peripheral device is mounted, a method for controlling these devices, and a control program.
[0002]
[Prior art]
In order to install a device driver (hereinafter, a driver) which is a control program for controlling peripheral devices, a group of programs called an installation set is required. The installation set includes a driver to be installed, an installer as a control program for installing the driver, and the like. The driver usually differs for each model or version. The installation set includes a format in which a plurality of compatible models are incorporated into one installation set, and two formats in which an installation 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 enumerated as installation targets and can be selected, whereas in the case of 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, if the former drivers of a plurality of compatible models are incorporated into one installation set, the following problems occur. For example, if a driver named BBB and a driver corresponding to version 2.00 is installed in a personal computer on which a driver named AAA and a driver of version 1.00 is installed, the driver corresponding to AAA is installed. 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 always want to keep the version of the printer driver installed on their computer up to date, but the printer driver version can be used without knowing the user and without knowing it. It will be raised to.
[0005]
However, the above-described method is disadvantageous for a recent user who takes a long time to check the operation of the printer driver when the system is introduced and uses only the operation that has been checked in a user environment. For example, in a large office where a print application or the like that largely depends on the printer driver is used in combination with the printer driver, very strict driver version control is required, and only the driver specified by the user is upgraded. There is a strong demand to make it happen. There is a strong demand for selectively and appropriately upgrading drivers to be upgraded. The same applies to the management of device drivers of peripheral devices other than other printers.
[0006]
Further, for example, in the above case, when the same module set as the printer driver is configured, the AAA module is overwritten despite the new installation of the new printer driver BBB. There is. Due to this overwriting process, there is also a disadvantage that the system must be restarted after installation.
[0007]
There is a great demand that server restart in a large office be avoided as much as possible. For a user who wants to avoid such a restart, there is a demand to avoid a restart due to an update of a module which is not essential due to a new installation of a certain module as described above.
[0008]
Also, if you create an installation set for each compatible model, the module set that composes the printer driver differs for each model. Although it is possible to prevent an increase, it is necessary to create a printer driver for each model. In particular, when a new OS (operating system) is supported, if it is necessary to create printer drivers for all models, or if you want to reflect the details of a fault corrected for one model on another model, Needs to be created separately. Also, 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]
Furthermore, when it is desired to install a plurality of drivers of the same type, for example, the same model, a mechanism is required to manage the drivers as different ones each time they are installed.
[0010]
The present invention overcomes this 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]
Still another object is to change the identification information of a driver module set using unique identification information generated at the time of installation, thereby preventing an unexpected overwrite update process of a driver.
[0012]
Still 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]
Further, even when performing a new installation of a certain driver, another mechanism is provided to prevent the number of restarts from being reduced by providing a mechanism in which another driver is not overwritten due to the installation. Aim.
[0014]
[Means for Solving the Problems]
According to a first aspect of the present invention, in an information processing apparatus including a common module and capable of mounting a control program corresponding to a peripheral device, the information is generated as unique identification information at the time of installation in response to execution of installation. Generating means for generating unique identification information, and changing means for changing the identification information of the common module operating as a part of the control program based on the unique identification information generated by the generating means. It is characterized by having.
[0015]
A second aspect of the present invention is characterized in that the unique identification information is generated based on a MAC address.
[0016]
A third aspect of the present invention is characterized in that the unique identification information is generated based on a time at which the installation is performed.
[0017]
According to a fourth aspect of the present invention, the information processing apparatus includes a first control program used to control a first peripheral device and a second control program used to control a second peripheral device. It is possible to use a common module common to the first control program and the second control program as another module to correspond to the first control program and the second control program, respectively. It is characterized by further comprising an introducing means for introducing.
[0018]
According to a fifth aspect of the present invention, the change unit indicates the unique identification information, the set of the first peripheral devices, or the unique identification information, and a second peripheral device. The identification information of the common module is changed based on a set with the identification information.
[0019]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. It should be noted that the following embodiments are examples for describing 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. No.
[0020]
(First embodiment)
FIG. 1 is a diagram illustrating a configuration of a printer control system according to an embodiment of the present invention. As long as the functions of the present invention are executed, a connection is made via a network such as a LAN or a WAN to perform processing, regardless of whether the device is a single device or a system including a plurality of devices. It goes without saying that the present invention can be applied to a system. In the figure, a host computer 3000 performs document processing in which graphics, images, characters, tables (including spreadsheets and the like) are mixed based on a document processing program or the like stored in a program ROM of a ROM 3 or an external memory 11. A CPU 1 is provided for execution, and the CPU 1 controls each device connected to the system bus 4 as a whole. An operating system program (hereinafter referred to as OS), which is a control program of the CPU 1, is stored in the program ROM or the external memory 11 of the ROM 3, and the font ROM or the external memory 11 of the ROM 3 is used for the above-described document processing. Font data and the like to be used are stored, and various data used when performing the above-described document processing and the like are stored in the data ROM of the ROM 3 or the external memory 11. The RAM 2 functions as a main memory, a work area, and the like for the CPU 1. The HDD 11 also stores an installer, which is a control program for installing a printer driver. The installer is loaded into the RAM 2 to read and acquire the driver from the HDD 11, or to acquire the driver via a network (not shown). Then, the OS is controlled so that the driver acquired by the installer is stored in a predetermined storage area through the API of the OS. Further, the installer registers the newly installed driver in an area called a registry via the OS API so that the OS can recognize the newly installed driver.
[0021]
A keyboard controller (KBC) 5 controls a key input from a keyboard 9 or a pointing device (not shown). A CRT controller (CRTC) 6 controls display on a CRT display (CRT) 10. Reference numeral 7 denotes a disk controller (DKC), which is a hard disk (HD) storing a boot program, various applications, font data, user files, edit files, a printer control command generation program (hereinafter, printer driver), a floppy (R) disk ( Access to the external memory 11 such as FD) is controlled. The printer controller (PRTC) 8 is connected to the printer 1500 via the bidirectional interface (interface) 21 and executes a communication control process with the printer 1500. In the present embodiment, a printer driver is used as a control program for controlling peripheral devices. However, a digital camera, a copier, a facsimile, an inkjet printer, a laser beam printer, or a control program for controlling these multifunction peripherals may be used. There may be.
[0022]
The CPU 1 executes, for example, a process of developing (rasterizing) the outline font on the display information RAM set on the RAM 2 to enable WYSIWYG on the CRT 10. Further, the CPU 1 opens various registered windows based on commands specified by a mouse cursor or the like (not shown) on the CRT 10 and executes various data processing. When executing printing, the user opens a window related to print settings, and can set a printer and a print processing method for a printer driver including selection of a print mode. The printer 1500 is controlled by the CPU 12. The printer CPU 12 outputs an image as output information to a printing unit (printer engine) 17 connected to a system bus 15 based on a control program or the like stored in a program ROM of the ROM 13 or a control program or the like stored in an external memory 14. Output a signal. The program ROM of the ROM 13 stores a control program of the CPU 12 and the like. Font data and the like used when generating the output information are stored in the font ROM of the ROM 13, and in the case of a printer having no external memory 14 such as a hard disk, the data ROM of the ROM 13 is stored on a host computer. Information to be used is stored.
The CPU 12 can perform communication processing with the host computer via the input unit 18 and can notify the host computer 3000 of information in the printer and the like. The RAM 19 is a RAM that functions as a main memory of the CPU 12, a work area, or the like. The RAM 19 is configured so that the memory capacity can be expanded by an optional RAM connected to an expansion port (not shown). The RAM 19 is used for an output information development area, an environment data storage area, an NVRAM, and the like. The access to the external memory 14 such as a hard disk (HD) and an IC card is controlled by a memory controller (MC) 20. The external memory 14 is connected as an option, and stores font data, an emulation program, form data, and the like, and is used for spooling expanded print data. Reference numeral 18 denotes the above-described operation panel on which switches for operation, an LED display, and the like are arranged. Further, the above-described HD stores each module described later in FIG. 19.
[0023]
The above-mentioned external memory 14 is not limited to one, but is provided in plurals, and stores an option card with a built-in font, a memory for spooling expanded print data, and a program for interpreting a printer control language of a different language system. The configuration may be such that a plurality of external memories can be connected. Further, an NVRAM (not shown) may be provided to store printer mode setting information from the operation panel 1501.
[0024]
FIG. 2 is a configuration diagram of a typical printing process in a host computer to which a printing device such as a printer is directly connected or connected via a network. The application 201, the graphic engine 202, the printer driver 203, and the system spooler 204 exist as files stored in the external memory 11, and when executed, are loaded into the RAM 2 by the OS or a module using the module and executed. It is a program module. Further, the application 201 and the printer driver 203 can be added to the FD of the external memory 11, a CD-ROM (not shown), or the HD of the external disk 11 via a network (not shown). The application 201 stored in the external memory 11 is loaded into the RAM 2 and executed. When printing from the application 201 to the printer 1500, the graphic 201 which is also loaded into the RAM 2 and is executable. Output (drawing) is performed using the engine 202.
[0025]
The graphic engine 202 similarly loads the printer driver 203 prepared for each printing device from the external memory 11 to the RAM 2 and sets the output of the application 201 in the printer driver 203. Then, a GDI (Graphic Device Interface) function received from the application 201 is converted into a DDI (Device Driver Interface) function, and the DDI function is output to the printer driver 203. The printer driver 203 converts, based on the DDI function received from the graphic engine 202, a control command that can be recognized by the printer, for example, a PDL (Page Description Language). The converted printer control command is output as print data to the printer 1500 via the interface 21 via the system spooler 204 loaded into the RAM 2 by the OS.
[0026]
The printing system according to the present embodiment has a configuration in which print data from an application is temporarily spooled as intermediate code data, as shown in FIG. 3, in addition to the printing system including the printer and the host computer shown in FIG.
[0027]
FIG. 3 is an extension of the system of 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 graphic engine 202 to the printer driver 203. In the system shown in FIG. 2, the application 201 is released from the printing process when the printer driver 203 has converted all print commands from the graphic engine 202 into printer control commands. On the other hand, in the system shown in FIG. 3, the spooler 302 converts all print commands into intermediate code data and outputs them to the spool file 303. Usually, the latter requires less time. Further, in the system shown in FIG. 3, the contents of the spool file 303 can be processed. This makes it possible to realize functions that the application does not have, such as enlargement / reduction of print data from the application, and printing by reducing a plurality of pages to one page.
[0028]
For these purposes, the system of FIG. 2 has been expanded to spool the intermediate code data as shown in FIG. In order to process print data, settings are usually made from a window provided by the printer driver 203, and the printer driver 203 stores the settings in the RAM 2 or the external memory 11.
[0029]
Hereinafter, details of FIG. 3 will be described. As shown in the figure, in this extended processing method, the dispatcher 301 receives a print command from the graphic engine 202. When the print command received by the dispatcher 301 from the graphic engine 202 is a print command issued from the application 201 to the graphic engine 202, the dispatcher 301 loads the spooler 302 stored in the external memory 11 into the RAM 2 and The print command is sent to the spooler 302 instead of the driver 203.
[0030]
The spooler 302 converts the received print command into an intermediate code and outputs it to the spool file 303. Further, the spooler 302 acquires processing settings related to print data set for the printer driver 203 from the printer driver 203 and stores the processing settings in the spool file 303. Note that the spool file 303 is generated as a file on the external memory 11, but may be generated on the RAM 2. Further, the spooler 302 loads the spool file manager 304 stored in the external memory 11 into the RAM 2 and notifies the spool file manager 304 of the status of generation of the spool file 303. After that, the spool file manager 304 determines whether or not printing can be performed in accordance with the contents of the processing settings relating to the print data stored in the spool file 303.
[0031]
When the spool file manager 304 determines that printing can be performed using the graphic engine 202, the despooler 305 stored in the external memory 11 is loaded into the RAM 2, and the despooler 305 is described in the spool file 303. To print the intermediate code.
[0032]
The despooler 305 processes the intermediate code included in the spool file 303 in accordance with the processing settings included in the spool file 303, and outputs the processed intermediate code via the graphic engine 202 again.
[0033]
If the print command received by the dispatcher 301 from the graphic engine 202 is a print command issued from the despooler 305 to the graphic engine 202, the dispatcher 301 sends the print command not to the spooler 302 but to the printer driver 203.
The printer driver 203 generates a printer control command and outputs it to the printer 1500 via the system spooler 204.
[0034]
FIG. 5 shows the friendly name of the printer driver and the 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 (registered trademark) NT40 (registered trademark) used in the present embodiment. FIG. 8 shows the necessity of restarting the system after installation. Hereinafter, a method of installing a printer driver from a printer folder of an OS suitable for the present 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 the present embodiment. Here, a method for changing the name of a module set of a printer driver to be installed, which is an overall image of the present embodiment, at the time of installation according to a certain rule will be described with reference to FIG. Here, the driver module set is included in the installation set, and refers to a set of driver modules forming 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 the present 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 a driver is installed in the host computer 3000 of FIG. 1, an installer stored in the HD 11 in the host computer 3000 is loaded into the RAM 2 and an API of the OS (not shown) also loaded into the RAM 2 Is realized by controlling the driver module name to be renamed. Of course, if the installer as an application is a system that allows direct renaming, the renaming may be performed directly.
[0037]
Next, an example of a rename process will be described. For example, AAA. dll, BBB. dll, CCC. If dll is to be renamed at the time of installation for each model, for example, when a printer driver of model 111 is installed, AAA_111.dll is added to the Windows (R) system directory. dll, BBB — 111. dll, CCC — 111. dll. When a printer driver of model 222 is installed, AAA_222. dll, BBB — 222. dll, CCC_222. When installing a printer driver of a model 333 with a name such as “dll”, AAA_333. dll, BBB_333. dll, CCC_333. The file is copied to the system directory of the OS under a name such as "dll".
[0038]
At this time, DDD. dll and EEE. If dll is a module that is not subject to renaming at the time of installation for each model, the system directory of the OS includes DDD.dll regardless of whether a printer driver of model 111 is installed or a printer driver of model 222 is installed. dll and EEE. dll.
[0039]
Here, the definition of a printer driver module to be renamed and a 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 continues to be loaded into the OS system once printing is executed. For example, a graphics driver (in this embodiment, CNP5EE.DLL), a user interface driver (in this embodiment, CNP5EEUI.DLL), a resource file (in this embodiment, CNP5E809.DLL), )). On the other hand, the printer driver module not to be renamed is a model common file such as a color profile and 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 what names of the printer driver modules to be renamed are copied to the system directory of the OS. Specifically, the 4-digit hexadecimal number described here is added after the module name incorporated in the driver set.
Here, the module with the driver name “PrinterMakerA iR1600-2000PCL5e” has F0E5, the “PrinterMakerAiR2200-3300 PCL5e” has “617E”, the “PrinterMakerA iR400 PCL5e” has “CA5C-Mer” and “CA5C-Mer”. The "6000 PCL5e" has "9926", the "PrinterMakerA iR5000-6000-L1 PCL5e" has "1579", the "PrinterMakerA iR7200PCL5e" has "FAEA", the "PrinterMaker A1R7M-M1M7M-M1A7RM-M1M7M-M1R7M-M1M7M-M1M7M-M1M7M-M1M7M-M1M7M-M1M7M-M1M7M-R1M7M-M1M7M-M1M7M-M1R7M-M1M7M-M1M7M-M1M7M-M1R7M-M1M7M-M1R7M-M1M7M-M1M7M-R1M7M-R1M7M-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 and the user interface driver are CNP5EEUI_F0E5. DLL and resource file are CNP5E809_F0E5. DLL. In the case of the PrinterMakerA iR7200 PCL5e driver, the graphics driver is CNP5EE_FAEA. DLL and the user interface driver are CNP5EEUI_FAEA. DLL, the resource file is CNP5E809_FAEA. DLL.
[0042]
In the case of the PrinterMakerA iR5000-6000-L1 PCL5e driver, the graphics driver is CNP5EE — 1579. DLL and user interface driver are CNP5EEUI_1579. DLL and resource file are CNP5E809_1579. DLL.
[0043]
The lower four digits (which can be represented by 4 bits in a binary number) are CRC. exe created by 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 the PrinterMakerA iR1600-2000 PCL5e is set to “111”, and the end of the PrinterMakerA iR7200 PCL5e is set to “222” from the beginning. This is because hardware coding such as a rename routine having a table of module change names is required, and the program must be modified (added) every time a model is added. On the other hand, if the driver module name is generated from the friendly name of the printer driver using a tool, it is possible to add a model only by modifying an INF file which is an external file described later.
[0044]
FIG. 19 is a diagram showing an example of a driver installer and an OS module that are stored in the HD 1 of the host computer 3000 in FIG. 1, read out to the RAM, and executed. Reference numeral 1901 denotes a driver module set in which drivers of a plurality of models and names are stored. The driver installer is a control program for installing the driver. The driver installer reads an INF file 1907 which is a setting file for controlling the driver installer, and controls the system installer 1905 and the OS renaming unit 1906 accordingly. Although described as a rename section, a general file handling function of the OS, for example, functions such as file generation, file name change, and file movement in the OS file system are named a rename section 1906. The driver installer 1902 calls the API of the system installer 1905 to control the system installer 1905, copies the driver module set to the system directory 1904 managed by the OS, and registers the information of the module to be installed in the registry 1903. . The registry is a data structure managed by the OS. By reading this area, the OS can recognize what driver is installed and how it is set.
[0045]
Next, a description will be given of a method of describing an INF file for renaming a module set of a printer driver during installation. Here, CRC. When a predetermined character string, exe, is input, a hexadecimal number corresponding to the model name is created using a tool for generating 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 written for a specific OS. The INF file is stored in the HD 1 in FIG. 1 and corresponds to 1907 in FIG. In response to the execution of the driver installer 1902, it is read by the driver installer. Samples of the INF File are shown in FIGS. 6 and 7, and the necessary portions are 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
The above INF file will be described. IR8500 (iR8500) and LB2000 are model names of a certain printer. Here, a state in which the number E287 is associated with the IR8500 and the number 441B is associated with the LBP-2000 is shown. These numbers can be found in CRC. Generated using EXE.
[0046]
The character string enclosed by the following brackets [] is called a label. To describe 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 the original driver module name incorporated in the driver set, and the name written on the left side, that is, CNP5EEUI_E287. DLL is the name after the rename that is copied to the system directory of the OS. That is, the module CNP5EE. DLL in the directory to be installed, CNP5EEUI_E287. This means copying and installing it under 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 as being copied as a DLL. The same applies to the modules (CNP5EEUI.DLL, CNP5E409.DLL) described in the second and third lines of the setting content of [LB2000].
[0048]
In this way, if the above description is made for the corresponding models, the module copied to the system directory of the OS for a single module set included in the driver module set, even if it is a common module, It is renamed and copied by the model (CNP5EE_441B.DLL). That is, CNP5EE. Describing the DLL, in IR8500, CNP5EEUI_E287. DLL module name, LB2000 uses CNP5EE_441B. After being renamed to the module name DLL, it is copied to the system directory of the OS. Even if a module was previously managed as a common module by multiple models, it is renamed and installed with a different module name for each model, so even if the driver of a specific model is upgraded, another The driver of the model is not affected by the user's intention 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 and does not interfere with each other. Therefore, the necessity of restarting the system after installation is reduced. FIG. This is one of the objects of the present embodiment, and solves one of the disadvantages of the format in which a plurality of compatible models are incorporated in one installation set. If multiple compatible models are combined into 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 embodiment of the present application, the following is achieved.
[0050]
As described in the table of FIG. 8, when the same version of the PrinterMakerA iR7200 PCL5e v5.30 driver is installed in a personal computer on which the PrinterMakerA iR8500 PCL5e v5.30 driver is installed, by applying the present embodiment, Once printing is executed, the module that continues to be loaded into the OS system is a basic function of the driver. The printer MakerA iR8200 PCL5e v5.30 driver differs from the PrinterMakerA iR7200 PCL5e v5.30 driver, so the PrinterMakerA iR7200 Restarting after installing the v5.30 driver is not required.
[0051]
Also, 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 above, it is a basic function of the driver. The modules that continue to be loaded into the system are different between the PrinterMakerA iR8500 PCL5ev5.30 driver and the PrinterMakerA iR7200 PCL5ev5.40 driver, so the PrinterMakerA iR7200 PCL5ev5.40 driver does not need to be re-installed.
[0052]
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 a certain rule, not only a model-specific driver with high development efficiency can be created, but also an undesired system. Restart can be minimized.
[0053]
Hereinafter, a modified example of the first embodiment will be described. In the following embodiments, the prerequisites for installation are as described in the first embodiment, especially in FIGS. 1 to 4 and FIG. The following description focuses on the 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 FIG. 19, and the description is omitted. In the following embodiment, an example of another rename will be described. FIG. 9 is a table showing what names of the printer driver modules to be renamed are 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, the following is performed. 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 following is performed. First, the graphics driver is “CNP5EE_PrinterMaker iR7200 PCL5e.DLL”, the user interface driver is “CNP5EEUI_PrinterMakerA iR7200 PCL5e.DLL”, and the resource files are “CNP5E809_PrinterMaker.
[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 drivers are "CNP5EEUI_PrinterA1L5L-PCL5L-PCL5L-PCL5. “CNP5E809_PrinterMakerA iR5000-6000-L1 PCL5e.DLL”.
[0057]
Note that 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 a method such as "name after rename = model name +" _ "+ name before rename" may be used.
[0058]
Here, the reason for not deciding the name after renaming from the beginning is to decide the name, if it is decided, hard coding is required in the program, and every time a model is added, the program must be modified (added). This is because it must be done. On the other hand, if the driver module name is generated from the model name of the printer driver, the model can be added only by modifying the INF file which is an external file. No program modification is required.
[0059]
Next, a description will be given of a method of describing an INF file for renaming a module set of a printer driver at the time of installation. Samples of the INF File are shown in FIGS. 10 and 11, and the necessary parts are as follows.
[0060]
[PrinterMakerA]
“PrinterMakerA iR8500 PCL5e” = IR8500, PRINTERMAKEIRIR8500059D
[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 the above [IR8500_FILES], the one 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. This is the name after renaming. In this way, if the above description is made for the corresponding models, even if there is only one type of module set included in the driver set, the modules to be copied to the OS system directory exist only for the model. .
[0061]
(Third embodiment)
FIG. 12 is a table showing what names of the printer driver modules to be renamed are copied to the Windows (R) system directory. The rename target module is renamed with a GUID (Global Unique ID) added thereto. Since the GUID is generated for each installation, it is unique for each installation. Therefore, the file is not always renamed according to the file name after the rename shown in FIG. It shows an example of a rename format. In FIG. 12, the rename format is “name after rename = name before rename +“ _ ”+ GUID”
It has become. For example, a GUID, which is a preferable example of unique information, can be created by combining a MAC address of a network card MAC address of a host computer with an installation 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”, and 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_D06A99AC-4BB3-BEC-BEC-BED-BEC-BED-BEC-BED-BED-BED-BED-BEC-BED-BED-BED-BEC-BED-BED-BEC-BED-BEC-BED-BEC-BED-BEC-BED-BED. "CNP5E809_D06A99AC-4BB7-44ed-AEC3-BEF2DBCB5BBC.DLL".
[0064]
In the case of the PrinterMakerA iR5000-6000-L1 PCL5e driver, the graphics driver is
“CNP5EE_590C71FD-D88A-4e90-B72A-C40CBB73D28D.DLL” user interface driver is “CNP5EEUI_590C71FD-D88A-4e90-B72A-C40CBB73D28D.DLL-” and resource files are “CNP5E71D72D-C-90D-90D-90D90C-90D-90D-90D-90D-90D-90D-90D-90D-90D-90D-90D-90D-90D-90D-90D-90D-90D-90D-90D-90D-90. Become.
[0065]
It is one of the important points to add the model name and the version number from a character string connecting the name before rename and the GUID. For example, a method such as "name after rename = name before rename +" @ "+ GUID" or a method such as "name after rename = GUID +" _ "+ name before rename" may be used.
[0066]
Since the GUID is generated for each installation, the name after the rename is guaranteed to be unique. The installer generates a GUID, and when the module is rename-installed according to the above rule, the GUID used for the rename is written in the registry. Further, the name of the printer driver after the renaming is dynamically and uniquely determined, and therefore cannot be determined from the beginning. Therefore, the name of each renamed module can be obtained by referring to the GUID written into the registry by the installer at the time of installation. Therefore, it is not necessary to modify the program for adding a model.
[0067]
(Fourth embodiment)
FIG. 13 is a table showing the name of the printer driver module to be renamed to be copied to the system directory of the OS. In the table, the driver target file includes only the graphics driver of version 5.30.
[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”, and the user interface driver (version 5.30) is “CNP5EEUI3A_E1_Mer_Prin_Prin. .DLL "and the resource file (version 5.30) are CNP5E809_PrinterMakerA iR1600-200 PCL5e_530. DLL.
[0070]
In the case of the PrinterMakerA iR7200 PCL5e driver, the graphics driver is "CNP5EE_PrinterMakerA iR7200 PCL5e_530.DLL", and the user interface driver is "CNP5EEUI_PrinterMakerAi5R7E5R5E7R5E7R5E7R5E7R5P. Renamed 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 and resource file (version 5.40) are CNP5E809_PrinterMakerA iR5000-6000-L1 PCL5e_540. Renamed DLL.
[0072]
The position where the model name is added, the position where the version number is added, and the character string connecting the name before renaming and the model name are not important. For example, a method of “name after rename = name before rename +” @ ”+ model name +” @ ”+ number of versions” or “name after rename = model name +” _ ”+ number of versions +” _ ”+ name before rename ".
[0073]
Here, the reason why the name after renaming is not decided from the beginning without using the model name and the number of versions is that if it is decided, hard coding is required in the program and additional models are added This is because the program must be modified (added) each time. On the other hand, if the driver module name is generated from the model name and the version number of the printer driver, the model can be added only by modifying the INF file which is an external file. No program modification is required.
[0074]
Next, a description will be given of a method of describing an INF file for renaming a module set of a printer driver at the time of installation. Samples of the INF file are shown in FIGS. 14 and 15, and the necessary parts are as follows.
[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
In the above [IR8500_FILES], the name 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 the name after the name is copied to the OS system directory. It is a name. In this way, if the above description is made for the corresponding models, even if there is only one type of module set included in the driver set, the modules to be copied to the OS system directory exist only for the model. .
[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 and does not interfere with each other. Therefore, the necessity of restarting the system after installation is reduced. FIG. This indicates that one of the disadvantages of the format in which a plurality of compatible models are incorporated in one installation set can be eliminated. If multiple compatible models are combined into 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 This has been resolved.
[0077]
As described in the table of FIG. 8, even if the same version of the PrinterMakerA iR7200 PCL5e v5.30 driver is installed in a personal computer on which the PrinterMakerA iR8500 PCL5e v5.30 driver is installed, the basic function of the driver is maintained. Once printing is performed, 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 PCL5ev v5.30 driver, so the PrinterMakerA iR7200 PCL5e. No reboot is required. Further, even if a different version of PrinterMakerA iR7200 PCL5ev 5.40 driver is installed in the same environment as described above, it is a basic function of the driver, and once printing is executed, a module which is continuously loaded into the Windows (R) system Is different between the PrinterMakerA iR8500 PCL5ev 5.30 driver and the PrinterMakerA iR7200 PCL5e v5.40 driver, so that restarting after the PrinterMakerA iR7200 PCL5e v5.40 driver is not required.
[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 of the printer driver and the number of driver versions, not only can a model-specific driver having high development efficiency be created, Unwanted system restarts can be minimized.
[0079]
As described above, according to the printer driver installation apparatus of the fourth embodiment, when the printer driver is installed 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 at the time of installation according to the number, it is possible to install the driver module set common to all the corresponding models under the name of each model and version, so the driver for each model and version for which development efficiency is extremely high Not only can be created, but also an almost undesired reboot of the system can be almost completely eliminated.
[0080]
(Fifth embodiment)
FIG. 16 is a table showing what names of the printer driver modules to be renamed are copied to the Windows (R) system directory. In FIG. 16, the rename format is “name after rename = name before rename +“ _ ”+ numerical value described in printer driver data file”. The printer driver data file is a file containing information for setting a printer driver. Here, a table corresponding to each of 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 and user interface driver are CNP5EEUI_0. DLL and resource files are NP5E809_0. DLL.
[0082]
In the case of the PrinterMakerA iR7200 PCL5e driver, the graphics driver is CNP5EE_5. DLL and user interface driver are CNP5EEUI_5. DLL and resource file are CNP5E809_5. Renamed DLL.
[0083]
In the case of the PrinterMakerA iR5000-6000-L1 PCL5e driver, the graphics driver is CNP5EE_4. DLL and user interface driver are CNP5EEUI_4. DLL and resource file are CNP5E809_4. DLL.
[0084]
These names after the name change are also described in the driver data file. The changed name described in the printer driver data file must always match the changed name described in the INF file. Thus, the printer driver can read the name after the name change from the driver data file, so that 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) a program each time a model is added. The model can be added only by modifying the INF file and the driver data file which are external files.
[0085]
Next, a description will be given of a method of describing an INF file for renaming a module set of a printer driver at the time of installation. Samples of the INF File are shown in FIGS. 17 and 18, and necessary portions are extracted as follows.
[0086]
[IR8500]
IR8500 PK. XPD
CNP5EE_8. DLL, CNP5EE. DLL
CNP5EEUI_8. DLL, CNP5EEUI. DLL
CNP5E809_8, CNP5E809. DLL
[LB2000]
LB2000 PK. XPD
CNP5EE_15. DLL, CNP5EE. DLL
CNP5EEUI_15. DLL, CNP5EEUI. DLL
CNP5E809_15. DLL, CNP5E809. DLL
The name 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 the renamed name copied to the OS system directory. The printer driver data file described above is IR8500PK. XPD or LB2000 PK. XPD. In this way, if the above description is made for the corresponding models, even if there is only one type of module set included in the driver set, the modules to be copied to the OS system directory exist only for the model. .
[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. However, it is also possible to perform this using the installer provided independently. More specifically, if the driver module name is changed based on the driver INF in the originally provided installer and the changed driver module is installed with the API of O, the model described in this embodiment can be used. Another installation is possible, and it is possible to provide exactly the same function as the installation from the printer folder of the OS.
[0088]
Each process in the present embodiment may be executed by each device such as the client device 1000 and the printer 1001 by a program installed from the outside. Further, in this case, the present invention is applicable even when a group of information including a program is supplied to a host computer from a storage medium such as a CD-ROM, a flash memory, or an FD, or from an external storage medium via a network. Things.
[0089]
As described above, the storage medium storing the program codes of the software for realizing the functions of the above-described embodiments is supplied to the system or the apparatus, or is downloaded from an external server (not shown), so that the system or the apparatus is obtained. It is needless to say that the object of the present invention can also be achieved when the computer (or CPU or MPU) reads and executes the program code stored in the storage medium.
[0090]
In this case, the program code itself read from the storage medium implements 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, hard disk, optical disk, magneto-optical disk, DVD, CD-ROM, magnetic tape, nonvolatile memory card, ROM, EEPROM, or the like can be used.
[0091]
When the computer executes the readout program code, not only the functions of the above-described embodiments are realized, but also an OS (Operating System) running on the computer based on the instruction of the program code. It goes without saying that a part or all of the actual processing is performed and the functions of the above-described embodiments are realized by the processing. Further, after the program code read from the storage medium is written into a memory provided on 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 a CPU or the like provided in the board or the function expansion unit performs part or all of the actual processing, and the processing realizes the functions of the above-described embodiments.
[0092]
It is needless to say that the use of each of the above-described first to fifth embodiments reduces the necessity of restarting as shown in FIG. For example, according to the printer driver installation apparatus of each embodiment of the present invention, when the printer driver is installed 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 to install a driver module set common to all the corresponding models with a model-specific name, and not only to create a model-specific driver with high development efficiency, but also to rebuild an undesired system. Startup can be minimized.
[0093]
【The invention's effect】
As described above, according to one aspect of the present invention, the identification information of the driver module set is changed using unique identification information generated at the time of installation. Processing can be prevented.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a print control apparatus according to an exemplary 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 illustrating 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 an overall image of the embodiment.
FIG. 5 shows a friendly name of a printer driver and a CRC. FIG. 9 shows a hexadecimal correlation diagram created by exe.
FIG. 6 shows an example of an INF file for a certain OS used in the present embodiment.
FIG. 7 illustrates an example of an INF file for an OS different from FIG. 6 used in the present embodiment.
FIG. 8 illustrates the necessity of restarting the system 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 usable in a certain OS.
FIG. 11 is a diagram illustrating an example of an INF file applicable to an OS different from that of FIG. 10;
FIG. 12 is a diagram illustrating an example of renaming a common module.
FIG. 13 is a diagram illustrating an example of renaming a common module.
FIG. 14 is a diagram illustrating a description example of an INF file usable in a certain OS.
FIG. 15 is a diagram illustrating an example of an INF file applicable to another OS than FIG. 14;
FIG. 16 is a diagram illustrating an example of renaming a common module.
FIG. 17 is a diagram illustrating a description example of an INF file usable in a certain OS.
FIG. 18 is a diagram illustrating an example of an INF file applicable to another OS than FIG. 17;
FIG. 19 is a diagram illustrating an example of a driver installer and an OS module executed in the host computer 3000.

Claims (11)

共通モジュールを含む、周辺装置に対応する制御プログラムを搭載可能な情報処理装置において、
インストールを実行するのに応答して、該インストール時に一意な識別情報として生成される唯一性のある識別情報を生成する生成手段と、
前記制御プログラムの一部として動作する共通モジュールの識別情報を、前記生成手段において生成した唯一性のある識別情報に基づいて変更する変更手段と、
を備えたことを特徴とする情報処理装置。
In an information processing apparatus including a common module and capable of mounting a control program corresponding to a peripheral device,
Generating means for generating unique identification information generated as unique identification information during the installation in response to performing the installation;
Changing means for changing the identification information of the common module operating as a part of the control program based on the unique identification information generated by the generating means;
An information processing apparatus comprising:
前記唯一性のある識別情報とは、MACアドレスに基づいて生成されることを特徴とする請求項1に記載の情報処理装置。The information processing apparatus according to claim 1, wherein the unique identification information is generated based on a MAC address. 前記唯一性のある識別情報とは、インストールが行われる時刻情報に基づき生成されることを特徴とする請求項1又は2に記載の情報処理装置。The information processing apparatus according to claim 1, wherein the unique identification information is generated based on time information at which installation is performed. 前記情報処理装置は、第1の周辺装置を制御する際に使用する第1の制御プログラムと、第2の周辺装置を制御する第2の制御プログラムとを搭載可能であって、
前記第1の制御プログラムと、第2の制御プログラムに共通する共通モジュールを、前記第1の制御プログラムと、前記第2の制御プログラムとに、それぞれ対応させるべく別のモジュールとして導入する導入手段をさらに備えたことを特徴とする請求項1乃至3のいずれかに記載の情報処理装置。
The information processing apparatus can be loaded with a first control program used to control a first peripheral device and a second control program used to control a second peripheral device,
Introducing means for introducing a common module common to the first control program and the second control program as another module to correspond to the first control program and the second control program, respectively. The information processing apparatus according to claim 1, further comprising:
前記変更手段は、前記唯一性のある識別情報と、前記第1の周辺装置の組、又は、前記唯一性のある識別情報と、第2の周辺装置を示す識別情報との組に基づいて、前記共通モジュールの識別情報を変更することを特徴とする請求項4に記載の情報処理装置。The changing means, based on the unique identification information, a set of the first peripheral device, or a set of the unique identification information and identification information indicating the second peripheral device, The information processing apparatus according to claim 4, wherein identification information of the common module is changed. 共通モジュールを含む、周辺装置に対応する制御プログラムを搭載可能な情報処理装置を制御する制御方法において、
インストールを実行するのに応答して、該インストール時に一意な識別情報として生成される唯一性のある識別情報を生成する生成工程と、
前記制御プログラムの一部として動作する共通モジュールの識別情報を、前記生成工程において生成した唯一性のある識別情報に基づいて変更する変更工程と、
を備えたことを特徴とする制御方法。
In a control method for controlling an information processing apparatus capable of mounting a control program corresponding to a peripheral device, including a common module,
In response to performing the installation, generating a unique identifier generated as a unique identifier during the installation;
A changing step of changing the identification information of the common module operating as a part of the control program based on the unique identification information generated in the generation step,
A control method comprising:
前記唯一性のある識別情報とは、MACアドレスに基づいて生成されることを特徴とする請求項6に記載の制御方法。The control method according to claim 6, wherein the unique identification information is generated based on a MAC address. 前記唯一性のある識別情報とは、インストールが行われる時刻情報に基づき生成されることを特徴とする請求項6又は7に記載の制御方法。The control method according to claim 6, wherein the unique identification information is generated based on time information at which the installation is performed. 前記情報処理装置は、第1の周辺装置を制御する際に使用する第1の制御プログラムと、第2の周辺装置を制御する第2の制御プログラムとを搭載可能であって、
前記第1の制御プログラムと、第2の制御プログラムに共通する共通モジュールを、前記第1の制御プログラムと、前記第2の制御プログラムとに、それぞれ対応させるべく別のモジュールとして導入する導入工程とをさらに備えたことを特徴とする請求項6乃至8のいずれかに記載の制御方法。
The information processing apparatus can be loaded with a first control program used to control a first peripheral device and a second control program used to control a second peripheral device,
An introduction step of introducing a common module common to the first control program and the second control program as another module to correspond to the first control program and the second control program, respectively; The control method according to claim 6, further comprising:
前記変更工程において、前記唯一性のある識別情報と、前記第1の周辺装置の組、又は、前記唯一性のある識別情報と、第2の周辺装置を示す識別情報との組に基づいて、前記共通モジュールの識別情報が変更されることを特徴とする請求項9に記載の制御方法。In the changing step, based on the unique identification information and the set of the first peripheral device, or the unique identification information and the set of the identification information indicating the second peripheral device, The control method according to claim 9, wherein identification information of the common module is changed. 共通モジュールを含む、周辺装置に対応する制御プログラムを搭載可能な情報処理装置を制御する制御プログラムにおいて、
インストールを実行するのに応答して、該インストール時に一意な識別情報として生成される唯一性のある識別情報を生成する生成工程と、
前記制御プログラムの一部として動作する共通モジュールの識別情報と、前記生成工程において生成した唯一性のある識別情報に基づいて変更する変更工程と、
を情報処理装置において実行させることを特徴とする制御プログラム。
In a control program for controlling an information processing device capable of mounting a control program corresponding to a peripheral device, including a common module,
In response to performing the installation, generating a unique identifier generated as a unique identifier during the installation;
Identification information of a common module that operates as part of the control program, and a change step of changing based on unique identification information generated in the generation step,
A control program causing the information processing apparatus to execute the program.
JP2002218134A 2002-07-26 2002-07-26 Information processing apparatus, control method, and control program Expired - Fee Related JP3817500B2 (en)

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 true JP2004062398A (en) 2004-02-26
JP3817500B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309726A (en) * 2005-03-29 2006-11-09 Canon Inc Information processing apparatus for customizing printer driver program, and method of customizing printer driver program
JP2008191954A (en) * 2007-02-05 2008-08-21 Ricoh Co Ltd Print control device, print control method, and print control program
JP2014500126A (en) * 2010-12-20 2014-01-09 エスセーアー・ハイジーン・プロダクツ・アーベー Absorbent boxer shorts with expanded crotch panel and method for making the same

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006309726A (en) * 2005-03-29 2006-11-09 Canon Inc Information processing apparatus for customizing printer driver program, and method of customizing printer driver program
US8656416B2 (en) 2005-03-29 2014-02-18 Canon Kabushiki Kaisha Information processing apparatus for customizing printer driver program, and method of customizing printer driver program
JP2008191954A (en) * 2007-02-05 2008-08-21 Ricoh Co Ltd Print control device, print control method, and print control program
JP2014500126A (en) * 2010-12-20 2014-01-09 エスセーアー・ハイジーン・プロダクツ・アーベー Absorbent boxer shorts with expanded crotch panel and method for making the same

Also Published As

Publication number Publication date
JP3817500B2 (en) 2006-09-06

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 (en) Information processing apparatus, method for controlling information processing apparatus, and storage medium storing program for realizing the method
JP4371693B2 (en) Print control apparatus, print control method, and computer program
JP4863450B2 (en) Information processing apparatus for customizing device driver program and device driver program customization method
US8804172B2 (en) Non-transitory computer readable recording medium stored with printer driver updating program and printer driver updating 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
US7791745B2 (en) Information processing apparatus on which printer driver can be installed, information processing apparatus, control method, program, and storage medium
US9086938B2 (en) Information processing apparatus, control method thereof, and storage medium
JP2006164253A (en) Data processing apparatus, setting processing method, storage medium storing computer readable program, and control program
JP2005173701A (en) Information processor, information processing method, and program therefor
JP3817499B2 (en) Information processing apparatus, control method, and control program
JP3817500B2 (en) Information processing apparatus, control method, and control program
JP2020009055A (en) Information processing device and program
JP2006227990A (en) Method for updating print software and method for acquiring newest module
JP2005018494A (en) Data processor, method for creating print data, storage medium for storing computer readable program, and 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
JP4560330B2 (en) Printing control apparatus and method and installer
JP7085920B2 (en) Print control programs, information processing devices and their control methods, and programs
JP2007072994A (en) Information processor, user interface control method, memory medium and program
JP4313998B2 (en) HOST COMPUTER, ITS CONTROL METHOD, PROGRAM, AND STORAGE MEDIUM
JP2009265980A (en) Information processing apparatus
JP2009277253A (en) Information processing apparatus, information processing method, and method for controlling information processing apparatus
JP2004164092A (en) Information processor
JP2000163231A (en) Data processor, driver processing method for data processor and storage medium with program readable by computer stored therein

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