(57)【要約】【課題】  カスタマイズによりカタログファイルとインストールセットで整合性が崩れたドライバのインストールを検知して、そのドライバのインストールをさせないＯＳを備えた情報処理装置であっても、カスタマイズされたドライバをインストールさせる。【解決手段】  カスタマイズが施される前のドライバをインストールし、インストールされたドライバにて設定が可能な機能設定値の状態がカスタマイズを施されたドライバの機能設定値と同じなるように、インストールされたドライバを修正する。【選択図】  図１１
2014035627.tif 000002
【特許請求の範囲】
【請求項１】
機能設定画面において設定が可能な機能設定値に関するカスタマイズが施されたドライバのインストールを開始する開始手段と、
前記ドライバのインストールが開始されたことに応じて、前記カスタマイズが施される前のドライバをインストールし、インストールされたドライバにて設定が可能な機能設定値の状態が前記カスタマイズを施されたドライバの機能設定値と同じなるように、インストールされたドライバを修正するインストール手段と、
を有する情報処理装置。
【請求項２】
ドライバにて設定が可能な機能設定値は、ドライバの設定ファイルに基づき決定され、
前記インストール手段によるドライバの修正とは、インストールされたドライバの設定ファイルを前記カスタマイズにより作成された設定ファイルに置き換えることであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記カスタマイズをドライバに施すためのカスタマイズ用の画面を表示する表示手段と、
前記画面を介し機能設定値に関する変更が行われた後にカスタマイズドライバの作成が指示されたことに応じて、前記カスタマイズが施される前のドライバの設定ファイルと、前記カスタマイズが施されたドライバの設定ファイルとを含むカスタマイズドライバを作成する作成手段と、を有する請求項２に記載の情報処理装置。
【請求項４】
前記作成手段は、前記カスタマイズが施される前のドライバに対応するハッシュ値が記載されたカタログファイルを含むカスタマイズドライバを作成し、
前記インストール手段は、前記カスタマイズドライバに含まれる前記カスタマイズが施される前のドライバの設定ファイルのハッシュ値と、前記カタログファイルのハッシュ値とを比較し、一致することを確認したことに応じて前記カスタマイズが施される前のドライバをインストールし、インストールされたドライバの設定ファイルを前記カスタマイズドライバに含まれる前記カスタマイズが施されたドライバの設定ファイルに置き換えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記作成手段は、インストーラ、および前記インストーラのための設定ファイルを含むカスタマイズドライバを作成し、
前記開始手段は、前記インストーラの起動に伴いインストールを開始し、
前記インストール手段は、前記インストーラが起動したことに応じて読み込まれる前記インストーラのための設定ファイルに従い、前記カスタマイズが施される前のドライバの設定ファイルをインストールし、インストールされたドライバの設定ファイルを前記カスタマイズドライバに含まれる前記カスタマイズが施されたドライバの設定ファイルに置き換えることを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
前記作成手段は、インストーラ、および前記インストーラのための設定ファイルを含むカスタマイズドライバを作成し、
前記開始手段は、前記インストーラの起動に伴いインストールを開始し、
前記インストール手段は、前記インストーラが起動したことに応じて読み込まれる前記インストーラのための設定ファイルに従い、前記カスタマイズドライバに含まれる前記カスタマイズが施されたドライバの設定ファイルを、前記カスタマイズが施されたドライバの設定ファイルに置き換えたドライバを一時的にメモリに保存し、一時的にメモリに保存されたドライバをインストールし、インストールされたドライバの設定ファイルを前記カスタマイズにより作成された設定ファイルに置き換えることを特徴とする請求項３または４に記載の情報処理装置。
【請求項７】
前記作成手段は、前記カスタマイズが施される前のドライバの設定ファイルをインストーラのサブフォルダへ格納し、前記カスタマイズが施されたドライバの設定ファイルをＩＮＦ形式のインストールセットのフォルダへ格納したカスタマイズドライバを作成し、
前記インストール手段は、前記インストーラが起動したことに応じて読み込まれる前記インストーラのための設定ファイルに従い、ＩＮＦ形式のインストールセットのフォルダへ格納された前記カスタマイズが施されたドライバの設定ファイルを、インストーラのサブフォルダへ格納された前記カスタマイズが施されたドライバの設定ファイルに置き換えたドライバを一時的にメモリに保存し、一時的にメモリに保存されたドライバをインストールし、インストールされたドライバの設定ファイルを前記カスタマイズにより作成された設定ファイルに置き換えることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記インストール手段は、前記カスタマイズが施される前のドライバをインストールした後にプリントスプーラを停止し、前記プリントスプーラが停止した状態でインストールされたドライバを修正することを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
前記情報処理装置が備えるＯＳ（オペレーティングシステム）が、署名が崩れたドライバのインストールを行わないＯＳであるか否かを判定する判定手段と、
前記インストール手段は、署名が崩れたドライバのインストールを行うＯＳである場合は、前記プリントスプーラを停止することなくカスタマイズが施されたドライバをインストールし、署名が崩れたドライバのインストールを行わないＯＳである場合は、前記プリントスプーラを停止し、前記プリントスプーラが停止した状態でインストールされたドライバを修正することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記カスタマイズとは、前記機能設定画面においてデフォルトとして表示される機能設定値の初期値の変更、および設定が可能な機能設定値の表示の変更を含むことを特徴とする請求項１乃至９の何れか１項に記載の情報処理装置。
【請求項１１】
前記情報処理装置が備えるＯＳ（オペレーティングシステム）は、署名が崩れたドライバのインストールを行わないＷｉｎｄｏｗｓ（登録商標）であることを特徴とする請求項１乃至１０の何れか１項に記載の情報処理装置。
【請求項１２】
前記ドライバとはプリンタドライバであり、前記機能設定値とは印刷設定値であることを特徴とする請求項１乃至１１の何れか１項に記載の情報処理装置。
【請求項１３】
前記インストール手段は、前記カスタマイズが施される前のドライバをインストールした後にインストール処理を止め、ユーザから指示されたことに応じて、インストールされたドライバにて設定が可能な機能設定値の状態が前記カスタマイズを施されたドライバの機能設定値と同じなるように、インストールされたドライバを修正することを特徴とする請求項１乃至１２の何れか１項に記載の情報処理装置。
【請求項１４】
機能設定画面において設定が可能な機能設定値に関するカスタマイズが施されたドライバのインストールを開始する開始ステップと、
前記ドライバのインストールが開始されたことに応じて、前記カスタマイズが施される前のドライバをインストールし、インストールされたドライバにて設定が可能な機能設定値の状態が前記カスタマイズを施されたドライバの機能設定値と同じなるように、インストールされたドライバを修正するインストールステップと、を含む情報処理装置におけるドライバのインストール方法。
【請求項１５】
機能設定画面において設定が可能な機能設定値に関するカスタマイズが施されたドライバプログラムであって、
前記カスタマイズが施される前のドライバの設定ファイル、前記カスタマイズが施されたドライバの設定ファイル、前記ドライバプログラムをインストールするためのインストーラ、および前記インストーラのための設定ファイルを含み、
前記インストーラが情報処理装置上で起動したことに応じて、前記インストーラは、前記インストーラのための設定ファイルに従い、前記カスタマイズが施される前のドライバの設定ファイルをインストールし、インストールされた前記設定ファイルを前記カスタマイズが施されたドライバの設定ファイルに置き換えるプログラムであることを特徴とするドライバプログラム。
【請求項１６】
前記カスタマイズが施される前のドライバの設定ファイルはインストーラのサブフォルダへ格納されており、前記カスタマイズが施されたドライバの設定ファイルはＩＮＦ形式のインストールセットのフォルダへ格納されていることを特徴とする請求項１５に記載のドライバプログラム。
【請求項１７】
情報処理装置にインストールされるＯＳ（オペレーティングシステム）プログラムであって、
ドライバのインストールを開始する指示を受け付ける受付ステップと、
前記指示を受け付けたことに応じて、ドライバ内のファイルを基にハッシュ値を算出する算出ステップと、
前記ドライバ内に予め保持されているカタログファイルであって、前記ドライバ内のファイルを基に算出されたハッシュ値を含むカタログファイルを基に、前記カタログファイルに含まれるハッシュ値と、前記指示を受け付けたことに応じて算出されたハッシュ値とが一致するか否かを確認する確認ステップと、
前記確認ステップにおいて一致しないと確認された場合は前記ドライバのインストールを中止し、一致すると確認された場合は前記ドライバをインストールするインストールステップと、
を含み、
インストールされるドライバが一致しないと確認されるドライバである場合、前記カタログファイルに含まれるハッシュ値と一致するハッシュ値が算出されるファイルをインストールし、インストールされたファイルが修正されることで前記一致しないと確認されるドライバをインストールするＯＳプログラム。
【請求項１８】
前記ＯＳプログラムとは、Ｗｉｎｄｏｗｓ（登録商標）であることを特徴とする請求項１７に記載のＯＳプログラム。
【請求項１９】
インストールセット形式のドライバを指定する指示を受け付ける受付ステップと、
前記指示を受け付けたことに応じて、前記ドライバにより表示される機能設定画面において設定が可能な機能設定値に関するカスタマイズを前記ドライバに施すためのカスタマイズ用の画面を表示する表示ステップと、
前記カスタマイズが施される前のドライバの設定ファイル、前記画面を介してユーザによってカスタマイズが施されたドライバの設定ファイル、ドライバプログラムをインストールするためのインストーラ、および前記カスタマイズが施される前のドライバの設定ファイルをインストールし、インストールされた設定ファイルを前記カスタマイズが施されたドライバの設定ファイルに置き換えるようにインストールする指示に変更された前記設定ファイルを含むカスタマイズドライバを前記ドライバを基に作成する作成ステップと、を含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カスタマイズが施されたドライバをインストールする情報処理装置、そのドライバのインストール方法、およびプログラムに関する
【背景技術】
【０００２】
プリンタを制御する印刷制御プログラムの代表的なものにＷｉｎｄｏｗｓ（登録商標）のプリンタドライバがある。Ｗｉｎｄｏｗｓ（登録商標）のプリンタドライバのインストールセットには、ＣＡＴファイルと呼ばれるプリンタドライバのカタログファイルが含まれる。カタログファイルにはインストールセットを構成する各ファイルのハッシュ値の配列が格納されている。更にそのカタログファイルに対して電子署名を付与することができる。カタログファイルの電子署名の検証後、格納されているハッシュ値とインストールセット内の各ファイルのハッシュ値とを比較することにより、インストールセット内の各ファイルの内容が変更されていないかを検証することが可能である。
【０００３】
一方、プリンタドライバに対しては、印刷システムの導入環境に応じて、カスタマイズを行いたいというユーザ要望がある。特に近年は、印刷システムの導入環境の多様化に伴いプリンタドライバの使用態様も多様化し、プリンタドライバに対するカスタマイズ要望は増加傾向にある。この要望に対応するために、プリンタドライバにおけるデフォルトで表示される初期設定値の変更、およびプリンタドライバのユーザインターフェース（以降、ＵＩと略す）においてユーザが設定可能な設定値の入力制御を可能とするカスタマイズの技術が開示されている（特許文献１、２を参照）。
【０００４】
特許文献１、２の方法を用いて、例えばプリンタドライバのカスタマイズを行った場合、そのプリンタドライバのインストールセットの一部の設定ファイルが変更されたプリンタドライバが作成される。作成されたプリンタドライバには、カスタマイズにより変更された設定ファイルのみならず、変更されないドライバモジュール、およびカタログファイルも含まれる。
【０００５】
このように、カスタマイズが施されたドライバが、それ単一でドライバをインストールできる形式で作成されることには意味がある。仮に、作成されたドライバがカスタマイズにより変更された設定ファイルのみ含む構成であった場合、ユーザはドライバモジュールを別途用意する必要がある。しかし、変更された設定ファイルと、ドライバモジュールとを関連づけて管理しなくてはいけないのでユーザの管理負担となる。そこで、従来技術では、カスタマイズが施されたドライバが、それ単一でドライバをインストールできる形式で作成している。ユーザはインストール作業を容易に行うことができるので、カスタマイズが施されたドライバはユーザへの親和性が高いドライバと言える。但し、そのドライバの設定ファイルは変更されてしまっているので、ドライバは、その設定ファイルのハッシュ値がカタログファイルに記載されたハッシュ値と一致しなくなる状態、即ち、カタログファイルとインストールセットの整合性が崩れた状態となってしまう。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３０９７２４
【特許文献２】特開２００６−３０９７２５
【発明の概要】
【発明が解決しようとする課題】
【０００７】
セキュリティ意識の高まりにより、カタログファイルとインストールセットの整合性が崩れたドライバのインストールを検知してインストールを中止する新しいＯＳ（オペレーティングシステム）が出てきつつある。カスタマイズが施されたドライバは上述したメリットがあるが、そのようなＯＳを備えた情報処理装置に対してはインストールできない。なぜなら、カスタマイズが施されたドライバは、カタログファイルとインストールセットの整合性が崩れているからである。このままでは、ユーザはそのＯＳを搭載した情報処理装置においてカスタマイズが施されたドライバを使用できない。
【０００８】
本発明は、上述の課題を鑑みてなされたものであり、カタログファイルとインストールセットの整合性が崩れた状態にある、カスタマイズが施されたドライバのインストールを行わないＯＳを備えた情報処理装置であっても、カスタマイズが施されたドライバをインストールさせることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一実施形に係る情報処理装置は、機能設定画面において設定が可能な機能設定値に関するカスタマイズが施されたドライバのインストールを開始する開始手段と、前記ドライバのインストールが開始されたことに応じて、前記カスタマイズが施される前のドライバをインストールし、インストールされたドライバにて設定が可能な機能設定値の状態が前記カスタマイズを施されたドライバの機能設定値と同じなるように、インストールされたドライバを修正することを特徴とする。
【発明の効果】
【００１０】
カタログファイルとインストールセットの整合性が崩れた状態にある、カスタマイズが施されたドライバのインストールを行わないＯＳを備えた情報処理装置であっても、カスタマイズが施されたドライバをインストールさせることが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る印刷処理システムの構成を示すブロック図である。
【図２】ホストコンピュータのＲＡＭのメモリマップを示す図である。
【図３】カスタムツールのメインＵＩを例示する図である。
【図４】カスタムツールのプリンタドライバ初期値設定ＵＩを例示する図である。
【図５】カスタムツールのプリンタドライバ設定項目の表示設定ＵＩを例示する図である。
【図６】カスタムツールの基本動作の処理を示すフローチャートである。
【図７】インストーラセットのフォルダ構成とファイル構造を例示する図である。
【図８】ＩＮＦファイルを用いたインストール処理を示すフローチャートである。
【図９】インストーラ形式のインストールセットと、その処理を示すフローチャートである。
【図１０】実施例１のカスタマイズ処理およびインストール処理のフローチャートである。
【図１１】実施例１のカスタマイズされたインストールセットの構成図である。
【図１２】実施例２のカスタマイズ処理およびインストール処理のフローチャートである。
【図１３】実施例２のカスタマイズされたインストールセットの構成図である。
【図１４】実施例３のインストール処理のフローチャートである。
【発明を実施するための形態】
【００１２】
本発明の好適な実施形態を説明するために、まず本発明の各実施形態におけるカスタムツールプログラムの説明を行う。なお、各実施形態では、Ｍｉｃｒｏｓｏｆｔ（登録商標）社製ＰＣ用ＯＳプログラム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）であるＷｉｎｄｏｗｓ（登録商標）のプリンタドライバをカスタマイズする方法を例として、説明する。
【００１３】
図１は、本発明の各実施形態に係る印刷処理システムの構成を示すブロック図である。この印刷処理システムは、情報処理装置であるホストコンピュータ３０００と、このホストコンピュータ３０００より印刷データを受信して印刷を行なうプリンタ１５００を備えている。
【００１４】
ホストコンピュータ３０００において、ＣＰＵ１は、ＲＡＭ２に記憶されているプログラムに従って、システムバス４に接続される各デバイスを、総括的に制御している。このＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等としても機能している。ＲＯＭ３は、各種プログラム及びデータを格納しており、各種フォントを記憶するフォントＲＯＭ３ａ、ブートプログラムやＢＩＯＳ等を記憶するプログラムＲＯＭ３ｂ、及び各種データを記憶するデータＲＯＭ３ｃに区分けして構成されている。
【００１５】
操作入力装置ＩＦ５は、キーボード９やポインティングデバイス（マウス）からのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ディスプレイ１０への表示を制御している。ディスクコントローラ（ＤＫＣ）７は、ハードディスクなどの外部メモリ１１へのアクセスを制御している。プリンタコントローラ（ＰＲＴＣ）８は、双方向性インターフェース２１を介してプリンタ１５００に接続され、プリンタ１５００との間で通信制御処理を行なう。
【００１６】
外部メモリ１１は、例えばハードディスク（ＨＤ）やフラッシュメモリドライブ（ＳＳＤ）等で構成される。外部メモリ１１は、図１に示すように、オペレーティングシステムプログラム（以下、ＯＳ）２０５をはじめ各種アプリケーション２０１や印刷処理関連プログラム２０４を記憶している。各種アプリケーション２０１としては、例えば、図形、イメージ、文字、表等が混在した文書処理を行なう文書処理アプリケーションプログラムがある。外部メモリ１１は、各種アプリケーション２０１に関連する不図示のユーザファイル、編集ファイル等も記憶している。印刷処理関連プログラム２０４は、ページ記述言語を用いて記述される印刷データを生成するプログラムであって、同系列の複数のプリンタに対して共通に利用される。また、この印刷処理関連プログラム２０４（以下、プリンタドライバ）は、プリンタ制御コマンド生成モジュール２０４１、プリンタドライバＵＩ制御モジュール２０４２を含んでいる。なお、ＵＩはユーザインターフェースの略であり、以下ＵＩと省略して記載する。
【００１７】
外部メモリ１１に記憶された、本実施形態に係るカスタムツールプログラム３００（以下、単に、「カスタムツール３００」という。）を含むアプリケーション２０１は、ＲＡＭ２にロードされてＣＰＵ１により実行される。またＣＰＵ１は、例えば、ＲＡＭ２へのアウトラインフォントの展開（ラスタライズ）処理を実行し、ディスプレイ１０上でのＷＹＳＩＷＹＧ（ＷｈａｔＹｏｕ  Ｓｅｅ  Ｉｓ  Ｗｈａｔ  Ｙｏｕ  Ｇｅｔ）を可能としている。更に、ＣＰＵ１は、ディスプレイ１０上のマウス指示されたコマンドに基づいて、登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷設定画面（プリンタドライバＵＩ制御モジュール２０４２により制御される）を開き、プリンタの機能設定や、印刷モードの選択を含むプリンタドライバ２０４１に対する印刷処理の機能設定を行なうことができる。
【００１８】
次に、プリンタ１５００の構成について説明する。ＣＰＵ１２は、プリンタ１５００の全体の動作を制御している。ＲＡＭ１９は、ＣＰＵ１２の主メモリ、ワークエリア等として機能するとともに、出力情報展開領域、環境データ格納領域としても用いられる。またこのＲＡＭ１９は、ＮＶＲＡＭ（Ｎｏｎ−ｖｏｌａｔｉｌｅＲＡＭ：不揮発性ＲＡＭ）領域も備えており、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。ＲＯＭ１３は、各種フォントを記憶するフォントＲＯＭ１３ａ、ＣＰＵ１２により実行される制御プログラム等を記憶するプログラムＲＯＭ１３ｂ、及び各種データを記憶するデータＲＯＭ１３ｃを備えている。入力部１８は、ホストコンピュータ３０００との間でデータの送受信を行なう。印刷部インターフェース（Ｉ／Ｆ）１６は、プリンタエンジンである印刷部１７とのインターフェースを制御している。外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスが制御されている。外部メモリ１４は、接続されるハードディスク（ＨＤ）、ＭＯ、フロッピー（登録商標）ディスク（ＦＤ）、ＩＣカードでもよい。外部メモリ１４は、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。尚、ハードディスク等の外部メモリ１４が接続されていない場合には、ＲＯＭ１３のデータＲＯＭ１３ｃに、ホストコンピュータ３０００で利用される情報等を記憶することになる。この外部メモリ１４は１個に限らず複数備えるものであってもよく、例えば、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラム等を格納した外部メモリを複数接続できるように構成されていてもよい。
【００１９】
操作部１５０１には、ユーザによる操作を受け付ける操作パネルが設けられ、その操作パネルには操作のためのスイッチ及びＬＥＤ表示器等が配されている（不図示）。また、不図示のＮＶＲＡＭ（Ｎｏｎ−ｖｏｌａｔｉｌｅ  ＲＡＭ：不揮発性ＲＡＭ）を有し、操作パネルからのプリンタモード設定情報を記憶するようにしてもよい。ＣＰＵ１２は、ＲＯＭ１３のプログラムＲＯＭ１３ｂに記憶された制御プログラム等に基づき、印刷部インターフェース１６を介して印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。また、ＣＰＵ１２は入力部１８を介してホストコンピュータ３０００との通信処理が可能となっている。ＣＰＵ１２は入力部１８を介して、ホストコンピュータ３０００から送信される印刷データを受信すると共に、プリンタ１５００内の情報等をホストコンピュータ３０００に通知可能に構成されている。
【００２０】
図２は、所定のアプリケーション及び印刷処理関連プログラムを起動して、ホストコンピュータ３０００のＲＡＭ２にプログラムやデータがロードされた状態でのＲＡＭ２のメモリマップを示す図である。ＲＡＭ２には、図示の如く、ＢＩＯＳ２０６、ＯＳ２０５をはじめ、アプリケーション２０１、印刷処理関連プログラム２０４、及び関連データ２０３がロードされている。更に、空きメモリ領域２０２も確保されている。これにより、アプリケーション２０１及び印刷処理関連プログラム２０４が実行可能な状態となる。尚、印刷処理関連プログラム２０４におけるプリンタドライバＵＩ制御モジュール２０４２（図１）は、ユーザによる印刷設定指令に応じてディスプレイ１０に印刷設定画面を表示し、キーボード９などを使用したユーザからの設定を可能にする。
【００２１】
図３は、カスタムツール３００のＵＩを例示する図である。カスタムツール３００は、図２のアプリケーション２０１の一部としてロードされ、ホストコンピュータ３０００におけるＣＰＵ１により実行されることで実現する。図３においてメニュー３０１の“開く”が選択されると、カスタマイズの元となるプリンタドライバのインストールセットのＩＮＦファイルを指示するため、ＯＳ標準のダイアログ（不図示）が表示される。同ダイアログでカスタマイズを行なうドライバのＩＮＦファイルを指示する。指示をうけて表示欄３０２に元となるインストールセットのＩＮＦファイルの格納パスが格納され、表示される。加えて表示欄３０３に、指示されたドライバの格納先のドライバのインストールセットの対応ＯＳが表示される。さらにリストビュー３０５に、カスタマイズを行うドライバのインストールセットの対応モデルリストが表示される。リストビュー３０５においてカスタマイズを行なう対象モデルを選択可能である。リストビュー３０５でのモデル選択に対応し３１０の現在のカスタマイズ対象のモデル名の表示が変更になる。
【００２２】
ユーザからのカスタマイズ指示をうけると、リストビュー３０５の個々のモデルに対してどのようなカスタマイズを行ったかの識別情報「Ｏｎ／Ｏｆｆ」が変更される。チェックボックス３１０をチェックするとボタン３１１が有効となる。ボタン３１１を押下するとカスタマイズ用のプリンタドライバＵＩ（図４）が表示される。プリンタドライバＵＩにおいてデフォルトとして表示される印刷設定（ドキュメントプロパティ）の初期値設定、およびデバイスの設定（プリンタプロパティ）等の初期値設定を行うことができる。チェックボックス３２０をチェックすると、ボタン３２１が有効となる。ボタン３２１を押下すると、プリンタドライバＵＩ上のコントロールの表示方法をカスタマイズするためのＵＩ（図５）が表示され、カスタマイズ用のプリンタドライバＵＩ上における各印刷設定値の表示制御方法を設定することができる。ボタン３３０を押下することで、カスタマイズが施されたドライバ、即ちカスタマイズドライバの作成先フォルダを指定するためのＯＳ標準のダイアログ（不図示）が表示される。同ダイアログでカスタマイズドライバの作成先を指定することができる。指示をうけて表示欄３３１にカスタマイズされたインストールセットの格納パスが格納され、表示される。各種機能設定値の変更を行った後でボタン３４０が押下されると、変更された機能設定に従ってカスタマイズが施されたプリンタドライバが作成される。
【００２３】
図４は、プリンタドライバの初期設定値カスタマイズ用のプリンタドライバＵＩ（初期設定値カスタマイズＵＩ）である。カスタムツール３００は、図２のアプリケーション２０１の一部として、ロードされ、ホストコンピュータ３０００におけるＣＰＵ１により実行される。このＵＩは、図３のＵＩにおいてボタン３１１を押下すると表示される。カスタムツール３００はＣＰＵ１の制御の下、ホストコンピュータ３０００の設定部として機能し、かかる設定部は、例えば、図４に示すＵＩのような文書のプロパティ設定とデバイスのプロパティ設定を行なうためのＵＩをＣＲＴ上に表示させる。通常のインストールによるプリンタドライバの設定に関するＵＩでは文書用の設定を行なうドキュメントプロパティのＵＩと、デバイスの設定を行なうプリンタプロパティのＵＩとが同時に１つのＵＩ中に表示されることはない。しかしながら、本発明の実施形態にかかるカスタマイズ用のプリンタドライバＵＩでは、カスタムツール３００がプリンタドライバのモジュールを直接利用して表示を行っている。そのため、文書用の設定を行なうドキュメントプロパティのＵＩと、デバイスの設定を行なうプリンタプロパティのＵＩとを同時に１つのＵＩ（図４）として表示できる。
【００２４】
図４において、ドキュメントプロパティのＵＩとして、ページ設定４０１、仕上げ４０２、給紙４０３、印刷品質４０４の４種類のＵＩが表示可能とされている。またプリンタプロパティのＵＩとしてデバイスの設定４０５も表示されている。これらの各ＵＩ（４０１〜４０５）を介して、ドキュメントプロパティの初期値設定と、プリンタプロパティの初期値設定を受け付ける。またカスタマイズ対象でない設定に関して、図４に示すＵＩは、例えば、参照番号４１０のようにグレイアウト表示により、ユーザによる設定の入力を受け付けないように構成される。以上、カスタムツールによるプリンタドライバＵＩにおいてデフォルトとして表示される印刷設定値の初期値の変更方法を説明した。
【００２５】
図５は、プリンタドライバのドキュメントプロパティの表示をコントロールし入力制限を行うためのＵＩ（ドキュメントプロパティ表示コントロール設定ＵＩ）を示す図である。図５に示すＵＩは、ユーザが図３のボタン３２１を押下した際に、ホストコンピュータ３０００のディスプレイ１０上に表示される。図５に示すＵＩでは、ページ設定５０１、仕上げ５０２、給紙５０３、印刷品質５０４、共通５０５の５種類について、表示制御の設定が可能である。ページ設定５０１、仕上げ５０２、給紙５０３、印刷品質５０４は、それぞれ、図４のドキュメントプロパティのＵＩと対応する表示制御の設定を行なうことが可能である。共通５０５は、これらの表示制御に共通の表示制御の設定を行なうことが可能である。プルダウン５０６に、コントロール項目「Ｊｏｂ  Ｏｐｅｒａｔｉｏｎｓ」の設定を具体的に示す。有効（通常通りの表示）、無効（常にＤｉｓａｂｌｅ表示）、非表示を指定することができる。同様にその他の各コントロール項目について個別に、有効、無効、非表示の設定をすることでドキュメントプロパティのＵＩに関する表示制御をカスタマイズことができる。これらの設定を入力すると、カスタムツール３００はドライバの設定ファイルを編集する。なお、無効表示としては、グレーアウト表示などのユーザの操作を不能にする表示形態がある。
【００２６】
次に、図６のフローチャートを用いて、カスタムツール３００の基本動作について説明する。尚、この基本動作の各実行ステップにおいては、ホストコンピュータ３０００におけるＣＰＵ１により実行されるカスタムツール３００が動作の主体である。カスタムツール３００は、ユーザのカスタムツール３００の起動をうけて、ステップＳ６０１において、カスタムツール３００の初期化処理を行う。図３に示すＵＩをディスプレイ１０上に表示する。ステップＳ６０２において、ユーザがカスタマイズを施すプリンタドライバのインストールセットの格納位置の入力を図３のＵＩでうける。図７（ａ）に、カスタムツール３００のカスタマイズ対象であり、その元となるＩＮＦ形式のインストールセットのフォルダ構成例を示す。図７（ａ）はプリンタドライバのインストールセットの一例であり、詳細な内容は後述するが、図９（ａ）もプリンタドライバのインストールセットであるので留意されたい。なお、このようなドライバのインストールセットを、ドライバ、またはドライバプログラムと呼ぶ場合もある。ＩＮＦ形式のインストールセットのフォルダ７０１には、プリンタドライバに関連するＩＮＦファイル７０２、実行モジュール７０３群、設定ファイル７０４群、およびカタログファイル７０５が格納されている。
【００２７】
図７（ｂ）に、プリンタドライバのインストール情報を記述するＩＮＦファイル７０２の記述内容の例を示す。ＩＮＦファイル７０２は、プリンタドライバをＯＳ２０５にインストールする際に、ＯＳ２０５によって参照されるファイルである。この例を用いて、ＩＮＦファイルの先頭より順に、記載情報を説明する。ＩＮＦファイル７０２の先頭には、基本情報である［Ｖｅｒｓｉｏｎ］のセクション７１１が記載されている。このセクション７１１には、ドライバのバージョンを示すＤｒｉｖｅｒＶｅｒキー７１１２と、カタログファイル７０５の名前を示すＣａｔａｌｏｇＦｉｌｅキー７１１３が存在する。それぞれ、キー７１１２の値として“バージョン情報”が記載され、キー７１１３の値として、カタログファイルのファイル名称が記載されている。
【００２８】
続いて、ＩＮＦ形式のインストールセットに対応しているプリンタのモデル名を記載するセクション７１２が記載される。このセクションには、プリンタドライバのインストールセットに対応するプリンタのモデル名がキーとして列挙される。それらのキーの値として、そのモデルのプリンタドライバを構成する構成モジュール群およびファイル群を記載するセクション名が指定される。このキーの値には使用禁止文字を除き、自由な文字列を定義記載できる。この例では、モデル“Ｃａｎｏｎ  ＡＢＣ  ＬＩＰＳ”のために、ＡＢＣというセクションを定義している。  ［ＡＢＣ］セクション７１３に、モデル“Ｃａｎｏｎ  ＡＢＣ  ＬＩＰＳ”のプリンタドライバを構成するモジュール群７０３およびファイル群７０４、７０５のファイル名称が記載される。ＤａｔａＦｉｌｅキー７１３１を用いて、その値としてカスタマイズ対象の設定ファイルを指定する。［ＡＢＣ］セクション７１３は、その他のモジュール群のファイル名が記載されている。ここでは、簡略化のためにモジュール群のファイル名の記載を省略している。ＩＮＦファイル７０２の最後に位置する［Ｓｔｒｉｎｇｓ］セクション７１４には、ＩＮＦ形式のインストールセットを用いたインストール処理時に、ＯＳ２０５上のＵＩに表示される文字列を記載する。
【００２９】
図７（ｃ）にプリンタドライバを構成する１つのファイルである設定ファイル７０４のデータフォーマットの例を示す。この設定ファイル７０４は、ＩＮＦファイル７０２上のモデル毎のセクションであるセクション７１３のＤａｔａＦｉｌｅキー７１３１で指定される。そのためモデル毎に異なる設定ファイルを関連付けられる。設定ファイル７０４の内部データは、ヘッダ７２１、ＩＤ定義７２２、データ７２３で構成される。ＩＤ定義７２２には、データ７２３に格納されているデータのＩＤと、データの格納位置（アドレス）との組が格納されている。そして、その組がＩＤの数に相当する分のセットで格納されている。本実施形態に係るカスタムツール３００では、カスタマイズ用に定義されたＩＤに対応するデータの値を変更する。尚、ＩＤ定義７２２に使用したいカスタマイズデータのＩＤが定義されていない場合は、そのカスタマイズデータに対応する新たなＩＤがＩＤ定義７２２に追加される。インストールされたプリンタドライバがアクティブ状態になると、設定ファイル７０４内の設定値を読み、そのプリンタドライバにより表示される印刷設定画面で表示される印刷設定に読み込んだ設定値を反映する。もし設定ファイルがカスタマイズされている場合、プリンタドライバは、設定ファイル内のカスタマイズされた設定値をプリンタドライバに反映する。例えば、よく使う印刷設定値（例えば、両面、２ｉｎ１など）のプリセットをプリンタドライバに予め反映しておく。カスタマイズされたドライバをインストールすることで、よく使う印刷設定値、デフォルトの印刷設定値、ユーザが設定可能な印刷設定値がプリンタドライバに設定された状態となる。
【００３０】
図７（ｄ）にプリンタドライバを構成する１つのファイルであるカタログファイル７０５のデータ構造の例を示す。カタログファイル７０５は、ＩＮＦ形式のインストールセットを構成するモジュール群およびファイル群のハッシュ値７３１〜７３３を保持している。それぞれＩＮＦファイル７０２のハッシュ値は７３１である。ドライバモジュール７０３のハッシュ値は７３２である。設定ファイル７０４のハッシュ値は７３３である。更に、カタログファイル７０５には、電子署名７３４を付与することができる。電子署名の付与に関しては、一般向け配布用途と、特定用途とで、２種類の方法がある。一般向け配布用途の場合、インストールセットの開発ベンダーが、Ｍｉｃｒｏｓｏｆｔ（登録商標）社へ評価後、申請して電子署名の付与してもらう。特定用途の場合は、開発ベンダーが独自に付与する。カタログファイルの電子署名７３４の検証後、格納されているハッシュ値７３１〜７３３と各ファイルのハッシュ値を比較する。この処理により、インストールセットに対して変更が行われていないかの検証が可能となる。もしハッシュ値が一致した場合、インストールセットに対して変更が行われてないと判定する。この判定がなされたＩＮＦ形式のインストールセットを、署名されたＩＮＦ形式のインストールセットと呼ぶことにする。もしハッシュ値が一致しない場合、インストールセットに対して変更が行われたと判定する。この判定がなされたＩＮＦ形式のインストールセットを、署名が崩れたＩＮＦ形式のインストールセットと呼ぶことにする。
【００３１】
説明を図６（ａ）の処理に戻す。ステップＳ６０３において、指示されたインストールセットのチェック処理を行う。その詳細処理について図６（ｂ）を用いて後で説明する。ステップＳ６０３において、プリンタドライバがカスタマイズに対応していないとカスタムツール３００により判別される場合は（Ｓ６０４−ＮＯ）、処理をステップＳ６０９に進めエラー処理を行い、再度インストールセットの指示ステップ（Ｓ６０２）に戻る。一方、ステップＳ６０３の判定において、プリンタドライバがカスタマイズに対応しているとカスタムツール３００により判別される場合には（Ｓ６０４−ＹＥＳ）、処理をステップＳ６０５に進める。ステップＳ６０５で、カスタムツール３００は、ＣＲＴＣ６を制御してディスプレイ１０上に図３〜図５で説明したＵＩよりプリンタドライバのカスタマイズの設定が可能になる。図３〜図５のＵＩを通じて、プリンタドライバのカスタマイズに関する設定を受ける。図３の作成ボタン３４０の押下をうけて（Ｓ６０６）、カスタムツール３００は、Ｓ６０５に基づいてカスタマイズドライバの生成処理を行う（Ｓ６０７）。Ｓ６０７の処理の詳細に関しては、図６（ｃ）を用いて、後で説明する。プリンタドライバがカスタマイズされた後（Ｓ６０７）、ユーザから終了指示がなされる（Ｓ６０８）とカスタムツール３００を終了する（Ｓ６１０）。
【００３２】
図６（ｂ）に、従来例におけるカスタムツール３００でのカスタマイズに対応しているインストールセットかのチェック処理のフローチャートを示す。この図を用いてチェック処理の詳細処理について説明する。この処理は、従来例の図６（ａ）のフローチャートのステップＳ６０３の処理として実行される。ステップＳ６２１で、ステップＳ６０２において指定された元となるプリンタドライバのインストールセットの格納位置にＩＮＦファイル７０２が存在するかを確認する。もしＩＮＦファイル７０２が存在する場合は、処理をＳ６２２へ進める。もし存在しない場合は、Ｓ６２５へ処理を進める。Ｓ６２２において、図７（ｂ）に示すプリンタドライバのインストール情報を記述するＩＮＦファイル７０２の記載内容７１１１、７１１２、７１４１を読み取る。読み取った記載より、指示されたプリンタドライバがカスタムツール３００によるカスタマイズに対応したプリンタドライバであるかを判定する（Ｓ６２３）。判定の結果、ＩＮＦファイル７０２がカスタムツール３００によるカスタマイズに対応している場合、処理をＳ６２４へ進める。もし対応していない場合は、Ｓ６２５へ処理を進める。もしＳ６２４へ処理が進んだ場合、ステップＳ６０３で指定されたインストールセットがカスタムツール３００でのカスタマイズに対応していると判断する。もしＳ６２５へ処理が進んだ場合、ステップＳ６０３で指定されたインストールセットがカスタムツール３００でのカスタマイズに対応していないと判断する。
【００３３】
図６（ｃ）を用いて、従来例におけるカスタマイズドライバの生成処理の詳細を説明する。従来例において、この処理は、図６（ａ）のフローチャートのステップＳ６０７で実行される。この処理の結果、表示領域３３１に指定されたカスタマイズドライバの作成先に、図７（ｅ）に示すカスタマイズされたＩＮＦ形式のドライバインストールセット７４１が作成される。インストールセット７４１では、ＩＮＦファイル７０２と設定ファイル７０４が、それぞれカスタマイズを反映された７４２と７４３に置き換えられる。
【００３４】
Ｓ６３１で、Ｓ６０２で指定された元となるプリンタドライバのインストールセットの格納位置のフォルダ構成とそのファイル群を、表示領域３３１に指定されたカスタマイズドライバの作成先へコピーする。Ｓ６３２で、コピー先のＩＮＦファイル７０２のセクション７１２より、カスタマイズが設定されたモデル以外のキーを消して、カスタマイズされたＩＮＦファイル７４２を生成する。Ｓ６３３で、コピー先の設定ファイル７０４にカスタマイズ設定を反映して、カスタマイズされた設定ファイル７４３を生成する。その結果、カスタマイズされたドライバインストールセット７４１が生成される。
【００３５】
ここまで、プリンタドライバのカスタマイズ方法について説明してきた。次にプリンタドライバをＯＳ２０５にインストールするための一般的な手段について説明する。プリンタドライバをインストールする場合に２つの方法が存在する。第一の方法は、ＩＮＦ形式のインストールセットを使用するＯＳ機能をつかったインストール方法である。第二の方法は、インストーラ形式のインストールセットを使ったインストール方法である。
【００３６】
図８（ａ）のフローチャートを用いて、第一の方法である、ＩＮＦファイルを用いたインストール方法の処理フローを説明する。この場合、ドライバを提供するベンダーがインストーラを用意せずともインストールすることができる。このフローチャートの動作の主体はＯＳ２０５であり、ホストコンピュータ３０００のＣＰＵ１を用いて実現されるＯＳである。この処理は、ＯＳ２０５がユーザからプリンタドライバのインストールの開始要求をうけたことに応じて開始される。Ｓ８０１において、ＯＳ２０５はＣＲＴＣ６を制御してディスプレイ１０上にインストール対象の設定を受け付けるＵＩを表示する。ＯＳ２０５は、そのＵＩを介してユーザから、プリンタへの出力先のポートの指定と、インストール対象のプリンタドライバのＩＮＦファイルと、対象モデル名を受け付ける。それらの情報を受け付けるとＳ６０２でプリンタドライバのインストール処理を開始する。Ｓ６０２で、インストールセットのチェック処理を行う。その処理は従来のＯＳと本発明が想定する新しいＯＳによって処理が異なる。本発明が想定する新しいＯＳでは、カタログファイルとインストールセットで整合性が崩れていないかを検知し、崩れている場合にはインストールを中止する。図８（ｂ）に古いＯＳでの処理フローの例を、図８（ｃ）に新しいＯＳでの処理フローの例を示す。これらを用いて、新旧のＯＳの処理の違いを後ほど説明する。Ｓ６０３において、もしプリンタドライバのインストールの処理の過程で、インストールを中止すると判断した場合、Ｓ８０６へ処理を進めインストールを中止する。もしインストールを継続する場合は、Ｓ８０１で指定されたプリンタへの出力先のポートを作成する（Ｓ８０４）。更にプリントキューを作成し（Ｓ８０５）、インストール処理を終了する。
【００３７】
図８（ｂ）を用いて古いＯＳの場合のプリンタドライバのインストール処理を説明する。Ｓ８１１において、カタログファイルを用いてＩＮＦ形式のインストールセットに対して変更が行われていないかの検証を行う。もしインストールセットが変更されていない場合は、Ｓ８１３へ処理を進め、インストール対象のモデルのプリンタドライバに関するモジュール群および設定ファイル群のインストール処理を行う。もしインストールセットが変更されている場合は、ＣＲＴＣ６を制御してディスプレイ１０上に、印刷を継続するかの選択ＵＩを表示する（Ｓ８１４）。もし継続が選択された場合、Ｓ８１３へ処理を進め、プリンタドライバのインストール処理を行う。もし中止が選択された場合、Ｓ８１６へ処理を進め、ユーザに“インストールを中止する“メッセージを表示し、インストール処理の中止を決定する。このように、古いＯＳでは、プリンタドライバのインストールセットとカタログファイルとの整合性が崩れていても、ユーザの選択によりプリンタドライバをインストールすることが可能であった。
【００３８】
次に図８（ｃ）を用いて新しいＯＳの場合のプリンタドライバのインストール処理を説明する。新しいＯＳの場合、古いＯＳのＳ８１４とＳ８１５の処理が存在しない。そのためプリンタドライバのインストールセットとカタログファイルとの整合性の崩れが検知されると、ユーザへの選択肢の提示なしにインストールが中止される。この新しいＯＳでの処理は、近年のセキュリティ意識の高まりを反映したものである。しかし新しいＯＳでは、カスタマイズしたプリンタドライバがインストールできないという課題が生じる。
【００３９】
次に、第二のインストール方法である、インストーラ形式のインストールセットを使用した処理フローに関して説明する。インストーラ形式のインストールセットの場合、ユーザのインストール処理を容易にさせるメリットがある。インストーラ形式のインストールセットのフォルダ９０１の構成例を図９（ａ）に示す。フォルダ９０１の直下には、ドライバのインストーラの実行モジュール９０２（以下、インストーラとよぶ）と、インストーラ９０２が参照するインストーラのサブフォルダ９０３と、ＩＮＦ形式のインストールセットのフォルダ７０１が存在する。サブフォルダ９０３には、インストーラのための設定ファイル９０４が格納されている。インストーラ９０２は、この設定ファイルを参照しその記載に従い処理を行う。サブフォルダ７０１には、図７（ａ）で示したＩＮＦ形式のインストールセットが格納されている。
【００４０】
図９（ｂ）にインストーラでのインストール処理のフローチャートを示す。このフローチャートの動作の主体は、インストーラ９０２である。ホストコンピュータ３０００のＣＰＵ１を用いて実行される。この処理はユーザによるインストーラの実行開始要求をうけ開始される。図９（ｂ）の基本的な処理フローは、図８（ａ）と同じである。図８（ａ）と異なる点は２つある。
【００４１】
第一の異なる点は、Ｓ９１１で表示されるインストールの設定ＵＩである。ＩＮＦ形式のインストールと違い、インストール対象のインストールセットは、図９（ａ）のフォルダ７０１であるため、特にユーザが指定する必要はない。そのためインストールの設定ＵＩは、インストーラ９０２が独自に定義し、ＣＲＴＣ６を制御してディスプレイ１０上にＵＩを表示する。そのＵＩを介してユーザより、プリンタへの出力先のポートの指定と、インストール対象モデル名を受け付ける。インストール対象のモデル名の選択ＵＩでは、ＩＮＦファイル７０２の記載を元にインストール対象の候補リストを表示し、ユーザから選択を受ける。
【００４２】
第二の異なる点は、Ｓ９１２、Ｓ９１４、Ｓ９１５において、ＯＳ２０５より提供されるＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ）を呼び出すことである。ＡＰＩをコールすることにより、ＯＳ２０５は、それぞれＳ８０２、Ｓ８０４、Ｓ８０５相当の処理を実行する。
【００４３】
［実施例１］
従来のカスタムツール３００でプリンタドライバをカスタマイズすると、図７（ｅ）のようにプリンタドライバのインストールセットとカタログファイルとの整合性が崩れたものが生成される。そのインストールセットを新しいＯＳにインストールしようとすると、プリンタドライバのインストールセットとカタログファイルとの整合性の崩れが検知され（Ｓ８１２）、その結果、インストール処理が中止される。そのため、新しいＯＳに対して、従来のカスタムツール３００でカスタマイズしたプリンタドライバがインストールできないという課題が存在する。
【００４４】
以下、上記課題を解決するための本実施例の処理を以下の順番で説明する。まずカスタムツール３００でのカスタム処理について説明する。続けて、カスタマイズされたインストーラ形式のインストールセットを用いたプリンタドライバのインストール処理について説明する。まず本実施例のカスタムツール３００によるインストールセットのカスタマイズ処理を説明する。このカスタマイズの処理の結果、カスタムツール３００により、図１１に示すフォルダ構成のインストーラ形式のインストールセットが生成される。
【００４５】
従来例では、カスタマイズドライバの元となるインストールセットとして、図７（ａ）に示すＩＮＦ形式のものしかサポートしていなかった。そのため図３のメニュー３０１の“開く”ではＩＮＦファイルへのパスの指定を受け付けていた。本実施例のカスタムツール３００ではインストーラ形式のインストールセットを作成することを目的とする。そのため、図３のメニュー３０１の“開く”で、図９（ａ）のインストーラ形式のインストールセットのフォルダ９０１も、指定することができるように変更されている。
【００４６】
図１０（ａ）と図１０（ｂ）にインストールセットのカスタマイズ処理関するフローチャートを示す。図１０（ａ）の処理フローは実施例１のインストールセットのチェック処理である。図６（ｂ）の処理のかわりにＳ６０３でカスタムツール３００により実行される。図６（ｂ）の処理フローの違いは二箇所ある。なお、図１０（ａ）、（ｂ）の動作の主体はカスタムツール３００である。
【００４７】
第１の違いは、Ｓ１００２〜Ｓ１００４の処理パスである。これらの処理は、図３のメニュー３０１の“開く”で、ＩＮＦファイル７０２に加えて、図９（ａ）のインストーラ形式のインストールセットのフォルダ９０１も指定可能になったことで追加された。Ｓ１００２において、図３のメニュー３０１の“開く”で指定されたパスがフォルダかを判断する。もしフォルダが指定された場合、Ｓ１００３へ処理を進める。もしファイルが指定された場合は、ＩＮＦファイル７０２が指定されたと判断し、Ｓ６２１へ処理を進める。Ｓ１００３では、指定されたフォルダをインストーラ形式のインストールセットとして記憶する。さらに、ＩＮＦファイル７０２を発見するためにサブフォルダを検索する。Ｓ１００４において、もしＩＮＦファイル７０２が発見できた場合、Ｓ６２２へ処理を進める。もし発見できなかった場合、Ｓ６２５へ処理を進め、カスタマイズに対応していないドライバと判断する。第２の違いは、Ｓ１００５とＳ１００６で構成される処理パスである。新しいＯＳに対してプリンタドライバをインストールするために、インストーラの実行モジュール１１０２（以下、インストーラとよぶ）は、署名されたＩＮＦ形式のインストールセット７０１が必要となる。そのためＳ１００５で、カスタマイズドライバの元となるインストールセットと、カタログファイルとの整合性が崩れていないかを検証する。もし整合性が崩れていない場合、Ｓ６２４へ処理を進める。崩れている場合は、Ｓ６２５へ処理を進める。図１０（ａ）の処理フローのその他の処理は、図６（ｂ）の処理と同じである。
【００４８】
図１０（ｂ）の処理フローは実施例１のプリンタドライバのカスタマイズ処理である。図６（ｃ）の処理のかわりに、図６（ａ）のＳ６０７でカスタムツール３００により実行される。図３のメニュー３０１の“開く”で指定されたパスにＩＮＦファイルが指定されたかを判断する（Ｓ１０１１）。もしＩＮＦファイルが指定された場合はカスタマイズの元となるプリンタドライバのインストールセットとして、図７（ａ）のＩＮＦ形式のインストールセットが指定されたと判断する。その場合、Ｓ１０１２へ処理を進める。もしＩＮＦファイルが指定されていない場合は、カスタマイズの元となるプリンタドライバのインストールセットとして、図９（ａ）のインストーラ形式のインストールセットが指定されたと判断する。その場合Ｓ１０１４へ処理を進める。もしＳ１０１２に処理が進んだ場合、元となるものとしてＩＮＦ形式のインストールセットが指定されたので、インストーラ１１０２とインストーラのサブフォルダ１１０３が存在しない。カスタマイズ結果として、図１１のインストールセットを形成するために、カスタムツール３００が保持しているインストール形式のプリンタドライバのインストールセットを、ボタン３３０で指定された作成先のフォルダにコピーする。さらにカスタマイズの元となるＩＮＦ形式のインストールセットを、図１１の７０１の位置へコピーする（Ｓ１０１３）。
【００４９】
もしＳ１０１４に処理が進んだ場合、元となるものとしてインストーラ形式のインストールセットが指定された場合である。その場合指定されたインストーラ形式のインストールセットを、表示欄３３１の作成先パスにコピーする。Ｓ１０１５において、カスタムツール３００は作成先のフォルダ内のＩＮＦファイル７０２と、設定ファイル群７０４からカスタマイズ対象の設定ファイルを、インストーラのサブフォルダ１１０３へコピーする。その後、インストーラのサブフォルダ１１０３内のそれらのファイルに対して、Ｓ６３２とＳ６３３と同様なカスタマイズ設定を行う（Ｓ１０１６、Ｓ１０１７）。この処理により、図１１に示す本実施例のカスタマイズされたインストーラ形式のインストーラセットが作成される。
【００５０】
次に図１１に示すインストーラ１１０２でのプリンタドライバのインストール処理について、図１０（ｃ）を用いて説明する。まずＳ１０２１においてインストールの設定ＵＩを表示する。この処理は図９（ｂ）のＳ９１１と同様である。インストール対象のモデル名の選択ＵＩの表示のために参照するインストール対象の選択候補の情報のみＳ９１１と異なる。インストーラ１１０２は、図１１のカスタマイズされたＩＮＦファイル７４２の記載を元にインストール対象の選択候補リストを表示する。Ｓ１０２１で設定されたインストーラの設定情報に従い、カタログファイルとインストールセットの整合性が崩れていないＩＮＦ形式のインストールセット７０１を用いて、ＯＳ２０５に対してプリンタドライバのインストールを実施する（Ｓ９１２〜Ｓ９１５）。これらの処理は図９（ｂ）における同じ番号が振られている処理と同じである。そのためここでは説明を省略する。
【００５１】
ＯＳ２０５にインストールされた設定ファイル７０４をカスタマイズされた設定ファイル７４３に置き換えることにより、カスタマイズ設定をＯＳ２０５にインストール済のプリンタドライバに適用する（Ｓ１０２２〜１０２４）。Ｓ１０２２でまず不図示のプリントスプーラを停止する。プリントスプーラは、ＯＳ２０５での印刷機能を統括管理するモジュールであり、ＯＳ２０５を構成する１つのモジュールとして存在する。次にＯＳ２０５のドライバ関連フォルダに格納されている設定ファイル７０４を、設定ファイル７４３に置き換える。最後に、Ｓ１０２４でプリントスプーラを起動する。プリントスプーラの停止は、カスタマイズされた設定ファイル７４３の置き換え途中で印刷が実行され、設定ファイルの置き換えに失敗することを防止するための１つの手段である。他の防止手段があれば、別の手段を用いることも可能である。特にこの方法に限定するものではない。しかしＯＳ２０５は、プリンタドライバのインストール後に設定ファイルを置き換えることを想定していない。そのため、インストーラ１１０２による設定ファイルの置き換え（Ｓ１０２３）はＯＳ２０５の印刷処理に対して影響がある処理となる。この置き換え時の印刷への影響の軽減策については、実施例３で説明する。
【００５２】
実施例１により、カタログファイルとインストールセットで整合性が崩れたプリンタドライバのインストールを検知しインストールを中止するＯＳに対して、カスタマイズされたプリンタドライバをインストールすることができる。
【００５３】
［実施例２］
実施例１の図１１のＩＮＦ形式のインストールセットのフォルダ７０１には、カスタマイズされていないインストールセットが格納されている。そのためユーザがＩＮＦファイル７０２を発見し、図８（ａ）で説明したＩＮＦファイルによるインストール方式でプリンタドライバを情報処理装置にインストールする可能性がある。その場合ユーザ要望に反して、カスタマイズされていないプリンタドライバがＯＳにインストールされてしまうという課題が存在する。一方で、図９（ａ）のフォルダ７０１を図７（ｅ）に示すフォルダ７４１に置き換えただけでは、カスタマイズドライバを新しいＯＳにインストールすることができない。本実施例ではこれら２つの課題を解決する方法について説明する。
【００５４】
以下、上記課題を解決するための本実施例の処理を以下の順番で説明する。まずカスタムツール３００でのカスタム処理について説明する。続けて、カスタマイズされたインストーラ形式のインストールセットを用いたプリンタドライバのインストール処理について説明する。
【００５５】
まず、実施例２のカスタムツール３００によるプリンタドライバのカスタマイズ処理について説明する。カスタマイズの処理の結果として、実施例２のカスタムツール３００は、図１３に示すフォルダ構成のインストーラ形式のインストールセット１３０１を作成する。図１２（ａ）に、カスタムツール３００のプリンタドライバのインストールセットを作成する際の処理フローを示す。この処理フローは図６（ａ）のＳ６０７でカスタムツール３００により実行される。図１２（ａ）と、図１０（ｂ）の処理の違いは、Ｓ１２０１とＳ１２０２であり、カスタマイズを行う対象のファイル群が異なる点である。図１３のフォルダ構造の７４１内のＩＮＦ形式のインストールセットに対して、Ｓ１０１６とＳ１０１７と同様なカスタマイズ設定を行う（Ｓ１２０１、Ｓ１２０２）。この処理により、図１３に示す実施例２のカスタマイズされたインストーラ形式のインストーラセットが完成する。その他の処理は図１０（ｂ）の該当番号のステップと同じ処理である。そのため、ここでは説明を省略する。
【００５６】
次に、実施例２のインストーラの実行モジュール１３０２（以下、インストーラとよぶ）でのプリンタドライバのインストール処理について、図１２（ｂ）を用い説明する。Ｓ１２１１においてインストールの設定ＵＩを表示する。この処理は図１０（ｃ）のＳ１０２１と同様である。但し、インストール対象のモデル名の選択ＵＩの表示のために参照するカスタマイズされたＩＮＦファイル７４２の格納位置が実施例１と異なる。次にインストーラ１３０２は、ＯＳ２０５がＲＡＭ２のメモリ領域を用いて用意したテンポラリ用のフォルダ（以下、ＴＥＭＰフォルダと呼ぶ）に、図１３のフォルダ７４１下のＩＮＦ形式のインストールセットを一時的に保存する（Ｓ１２１２）。更にＴＥＭＰフォルダへ保存したＩＮＦ形式のインストールセットに対して、インストーラのサブフォルダ１３０３内のＩＮＦファイル７０２と設定ファイル群７０４を上書きする（Ｓ１２１３）。Ｓ１２１２とＳ１２１３の処理により、ＴＥＭＰフォルダ内にカスタマイズの元となった、署名されたＩＮＦ形式のインストールセットが作成される。Ｓ１２１４において、ＴＥＭＰフォルダ内のＩＮＦファイル７０２を用いてＳ９１２と同様にインストール対象のプリンタドライバをインストールする。以下の処理は、図１０（ｃ）において同じ番号が振られている処理と同じである。そのため、ここでは説明を省略する。
【００５７】
上記説明したように実施例２のカスタムツール３００は、図１３に示す構造を持つインストールセット１３０１を作成する。ユーザは、図１３のインストーラ１３０２を起動してインストールすることにより、カスタマイズされたドライバをＯＳ２０５にインストールすることができる。またユーザが、図８（ａ）で説明したＩＮＦファイルによるインストール方式でインストールを行った場合でも、図８（ｂ）の判定処理を有する古いＯＳでは、カスタマイズされたプリンタドライバがインストールされる。さらに、図８（ｃ）の判定処理を有する新しいＯＳではインストールが中止される。図１３のフォルダ構造をもつインストールセットを作成することにより、カスタマイズされていないプリンタドライバがインストールされるということを防止できる。
【００５８】
［実施例３］
実施例１、２では、プリンタドライバのカスタマイズされた設定ファイルへの置き換えを行っていた。ＯＳ２０５は、プリンタドライバのインストール後に、設定ファイルの置き換えを想定していない。そのため、このインストーラＯＳ２０５による設定ファイルへの置き換え処理は、ユーザの印刷操作に対して影響があるという課題があった。本実施例では、その課題の軽減策として、インストーラでＯＳ環境を判断することにより、図８（ｂ）の判定処理を有する古いＯＳでは、プリントスプーラの停止と起動を行わないことを目的とする。
【００５９】
図１４（ａ）に、上記目的を達成するために、実施例１の図１０（ｃ）のインストール処理を拡張した処理フローを示す。この処理フローでは、図１０（ｃ）の処理フローのＳ１０２１とＳ９１２の間にＯＳ２０５の判定ステップＳ１４０１が追加されている。Ｓ１４０１でＯＳ２０５の提供のＡＰＩをコールすることにより、図８（ｂ）の判定処理を有するＯＳか、図８（ｃ）の判定処理を有するＯＳかを判断する。もし図８（ｂ）の判定処理を有するＯＳの場合、Ｓ１４０２へ処理を進める。もし図８（ｃ）の判定処理を有するＯＳの場合、Ｓ９１２へ処理を進める。Ｓ１４０２へ処理が進んだ場合、署名が崩れたインストールセットでもＯＳ機能によるＩＮＦファイルによるインストールできる場合である。そのため、図１１のインストーラ形式のインストールセットより、カスタマイズされたＩＮＦ形式のインストールセットをＴＥＭＰフォルダに生成する。まず図１１に示す署名されたインストールセット７０１を一旦ＴＥＭＰフォルダにコピーする（Ｓ１４０２）。更にＴＥＭＰフォルダコピーしたＩＮＦ形式のインストールセットに対して、インストーラのサブフォルダ１３０３内のＩＮＦファイル７４２と設定ファイル群７４３を上書きする（Ｓ１４０３）。Ｓ１４０２とＳ１４０３の処理により、ＴＥＭＰフォルダ内にカスタマイズされたＩＮＦ形式のインストールセットが作成される。このＴＥＭＰフォルダ内のインストールセットのＩＮＦファイル７４２を用いて、Ｓ９１２と同様にインストール対象のプリンタドライバをインストールする。図１４（ａ）のその他の処理は、図１０（ｃ）のインストール処理の該当ステップの処理と同じであるので、ここでは説明を省略する。
【００６０】
図１４（ｂ）に、上記目的を達成するために、実施例１の図１２（ｂ）のインストール処理を拡張した処理フローを示す。この処理フローでは、図１２（ｂ）の処理フローのＳ１２１１とＳ１２１２の間にＯＳ２０５の判定ステップＳ１４０１が追加されている。Ｓ１４０１でＯＳ２０５の提供のＡＰＩをコールすることにより、図８（ｂ）の判定処理を有するＯＳか、図８（ｃ）の判定処理を有するＯＳかを判断する。もし図８（ｂ）の判定処理を有するＯＳの場合、Ｓ９１２へ処理を進める。もし図８（ｃ）の判定処理を有するＯＳの場合、Ｓ１２１２へ処理を進める。Ｓ９１２へ処理を進めた場合、署名が崩れたインストールセットでもＯＳ機能によるＩＮＦファイルによるインストールできる場合である。その場合図１３のインストーラ形式のインストールセットのＩＮＦファイル７４２を用いて、Ｓ９１２と同様にインストール対象のプリンタドライバをインストールする。図１４（ｂ）のその他の処理は、図１２（ｂ）のインストール処理の該当ステップの処理と同じであるので、ここでは説明を省略する。
【００６１】
上記説明したように、インストーラでＯＳ環境を判断することにより、署名が崩れたインストールセットで、ＯＳ機能によるＩＮＦファイルによるインストールできる環境では、ＩＮＦファイルを用いたＯＳ機能でのインストールを行う。このことにより、同ＯＳ環境では設定ファイルの置き換えを行わず、その置き換えによるユーザの印刷操作への影響を軽減する。
【００６２】
［その他の実施例］
本発明の各実施例においては、カスタマイズされたＩＮＦファイル７４２とカスタマイズされた設定ファイル７４３およびインストーラの設定ファイル（１１０４、１３０４）に対して、悪意のある者が変更を行う可能性がある。その防止のため、上記ファイル群の鍵付きハッシュ値を計算しインストーラの設定ファイル（１１０４、１３０４）に記載する。鍵付ハッシュの処理としてはＨＭＡＣを利用し、その秘密鍵はカスタムツール３００とインストーラ（１１０２、１３０２）が、同じものを保持する。カスタムツールは、図１０（ｂ）と図１２（ａ）の最後の処理として、秘密鍵を使って上記ファイル群の鍵付きハッシュ値を計算しインストーラの設定ファイル（１１０４、１３０４）に記載する。インストーラ（１１０２、１３０２）は、そのインストール処理開始時に、上記ファイル群の鍵付きハッシュ値を計算し、インストーラの設定ファイル（１１０４、１３０４）記載の値と比較する。もしハッシュ値が同じ場合は、インストール処理を継続する。もし異なる場合は、インストール処理を中止する。なお、インストーラの実行モジュール（１１０２、１３０２）に関する不正な変更は、一般にインストーラのモジュールに電子署名を付加することによって対策される。
【００６３】
なお、各実施例では設定ファイルの置き換えを説明したが、インストールされたドライバを修正することができれば置き換えに限定されない。例えば、インストールされたドライバの設定ファイルを、カスタマイズ設定に対応する設定ファイルと同じになる様に書き換える形態であっても良い。無論、カスタマイズが施される前のドライバインストールされた後に、その他の方法を用いて、カスタマイズが施されたドライバが情報処理装置にインストールされている状態にしても良い。本発明では、情報処理装置をその状態にさせるための方法を総称して、インストールされたドライバを修正すると表現する。
【００６４】
また、各実施例では、カスタマイズが施される前のドライバのインストールセット内のファイルが全てインストールされた後に、インストールされたドライバを修正する形態を説明した。しかしながら、インストールセット内のファイルが全てインストールされていなくても、既にインストールされたドライバのファイルを逐次修正していく形態であっても良い。例えば、設定ファイルのインストールが完了し実行モジュールをインストールしようとする段階において、実行モジュールのインストールを開始する前に、既にインストールが完了している設定ファイルの修正を行う形態がある。
【００６５】
また、本発明では図１１、または図１３に示すような、各実施例に好適なインストーラ形式のインストールセット形式のフォルダを説明した。しかし、夫々のインストールセットのフォルダにその他のファイル、およびモジュールが含まれていても良い。例えば、ドライバと同時にデバイスアプリケーションのインストールに必要なファイル、モジュールを含めても良い。また、インストーラのサブフォルダ１１０３、または１３０３にドライバモジュール、およびカタログファイルを含めても良い。例えば、ドライバモジュールをインストールセットのフォルダにもドライバモジュールを含めた場合、冗長な構成とはなる。しかし、従来のインストーラの設計がインストーラのサブフォルダを主に利用した設計である場合は、インストーラの改良を最小限に抑えて本発明を実施することが可能になる。このように、インストーラの設計に併せて各フォルダ内に配置するファイル、モジュールには制限がない。
【００６６】
また、本発明の各実施例のインストール処理においては、インストーラがカスタマイズ前のドライバをインストールし、続けてインストールされたドライバの修正を行った。しかしながら、これらの作業を連続して実行する必要は必ずしもない。例えば、インストーラはカスタマイズ前のドライバをインストールした段階で一度インストール処理を終了する。その後、ユーザからカスタマイズが施されたドライバのインストールを再開するよう指示があった場合に、再度、インストーラを起動させてインストール処理を再開する形態であっても良い。なお、カスタマイズ前のドライバをインストールした段階で一度インストール処理を終了する形態を説明したが、終了せずに一時停止する形態であっても良い。一時停止する形態であれば、カスタマイズ前のドライバのインストールが終了した時点で、インストーラがユーザにインストール処理を継続するか否かを問い合わせることも可能である。そして、ユーザから継続する指示を受け付けた際に、一時停止させていたインストール処理を再開するようにしても良い。このように、インストール処理の各処理は必ずしも連続している必要はない。しかしながら、一度のインストール処理で全てを終了する各実施例の形態が好ましい。理由は、ユーザの指示操作を省くことが可能であり、またＯＳが要求するセキュリティ要件が一連のインストール処理の流れの中で満たせるからである。
【００６７】
また、本発明の各実施例のカスタマイズドライバのインストールセットをインストールする際は、ＩＮＦファイル、設定ファイルの他にドライバのモジュールもインストール処理毎にインストールする形態を説明した。しかしながら、カスタマイズドライバと同じモデルのドライバが予めインストールされているのであれば、ドライバのモジュールをインストールすることなく、カスタマイズに影響のあるＩＮＦファイル、設定ファイルをインストールする形態であっても良い。これを実現するためには、インストーラを次の様に変更する必要がある。インストーラがインストールを開始する際、ＯＳに対しインストールされているドライバのモデル名を問合せ、インストールしようとしているドライバのＩＮＦファイル内のモデル名と一致するか確認し、一致することが確認できた場合にカスタマイズされたドライバのＩＮＦファイル、および設定ファイルをインストールする。なお、ドライバのモジュールをインストールしないのであれば、カスタマイズ後のＩＮＦファイル、および設定ファイルを基にしたカタログファイルを再発行してからインストールする方がセキュリティ上は好適である。
【００６８】
また、本発明の各実施例においては、本発明に好適なドライバの一例であるプリンタドライバを基に説明をした。しかしながら、本発明はプリンタドライバに限らない。例えば、スキャナドライバ、ＦＡＸドライバが本発明の各実施例で説明したプリンタドライバと同じ構成を取る他、同じ処理でインストールさせることも可能である。また、本発明は画像処理を行うドライバに限る発明でもない。本発明は、ドライバによって表示される機能設定画面（例えば、印刷設定が可能なプリンタドライバＵＩ）において設定が可能な機能設定（例えば、印刷設定）に関するカスタマイズがドライバに施された場合に、有効な発明である。
【符号の説明】
【００６９】
１５００  プリンタ
３０００  ホストコンピュータ
３００  カスタムツール
７０１  署名されたＩＮＦ形式のインストールセット
７０２  ＩＮＦファイル
７０３  ドライバモジュール
７０４  設定ファイル
７０５  カタログファイル
７４１  カスタマイズされたＩＮＦ形式のインストールセット
７４２  カスタマイズされたＩＮＦファイル
７４３  カスタマイズされた設定ファイル
８０１  インストーラ形式のインストールセット
８０２  インストーラの実行モジュール
９０３  インストーラのサブフォルダ
９０４  インストーラの設定ファイル
【図１】
2014035627.tif 000003
【図２】
2014035627.tif 000004
【図３】
2014035627.tif 000005
【図４】
2014035627.tif 000006
【図５】
2014035627.tif 000007
【図６】
2014035627.tif 000008
【図７】
2014035627.tif 000009
【図８】
2014035627.tif 000010
【図９】
2014035627.tif 000011
【図１０】
2014035627.tif 000012
【図１１】
2014035627.tif 000013
【図１２】
2014035627.tif 000014
【図１３】
2014035627.tif 000015
【図１４】
2014035627.tif 000016