(57)【要約】【課題】ＯＳを再起動せずに更新が可能な印刷制御プログラムを提供する。【解決手段】ＯＳ００３上で実行されるアプリケーションプログラム００２からの印刷要求を前記ＯＳ００３を通じて受け付け、印刷要求に含まれる印刷データに基づいた画像を、印刷要求に基づいてプリンタに印刷させる印刷制御プログラム１００であって、プリンタの種類に対応して、印刷データに基づいた画像を前記プリンタに印刷させる、独立して更新可能に構成された印刷実行モジュール１２０と、ＯＳ００３からの印刷要求を受け付け、コンピュータに予め記憶されているプリンタの種類に対応する印刷実行モジュール１２０の対応表である実行モジュール対応表２００を参照し、印刷要求に含まれるプリンタの種類に対応する印刷実行モジュール１２０に印刷要求を送り、該当する印刷実行モジュール１２０に対して印刷を実行させる印刷受付モジュール１１０とを備える。【選択図】図１
2008021048.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに含まれるＯＳ上で実行されるアプリケーションプログラムからの印刷要求を前記ＯＳを通じて受け付け、前記印刷要求に含まれる印刷データに基づいた画像を、前記印刷要求に基づいてプリンタに印刷させる印刷制御プログラムであって、
前記プリンタの種類に対応して、前記印刷データに基づいた画像を前記プリンタに印刷させる印刷実行モジュールと、
前記ＯＳからの印刷要求を受け付け、前記コンピュータに予め記憶されているプリンタの種類に対応する前記印刷実行モジュールの対応表である実行モジュール対応表を参照し、前記印刷要求に含まれる前記プリンタの種類に対応する前記印刷実行モジュールに前記印刷要求を送り、該当する前記印刷実行モジュールに対して印刷を実行させる印刷受付モジュールと
を備え、
前記印刷受付モジュールは前記ＯＳの一部として構成され、前記印刷実行モジュールは前記ＯＳから独立して構成される
ことを特徴とする印刷制御プログラム。
【請求項２】
前記印刷実行モジュールを更新するインストーラをさらに備えたことを特徴とする請求項１に記載の印刷制御プログラム。
【請求項３】
前記インストーラは、
前記印刷受付モジュールのバージョン情報が含まれる前記実行モジュール対応表から、現在インストールされている前記印刷受付モジュールの前記バージョン情報を取得し、
前記現在の印刷受付モジュールのバージョン情報と更新しようとする前記印刷受付モジュールのバージョン情報とを比較し、
前記現在の印刷受付モジュールのバージョン情報が更新しようとする前記印刷受付モジュールのバージョン情報より古い場合に、前記印刷受付モジュールのインストールを行う
ことを特徴とする請求項２に記載の印刷制御プログラム。
【請求項４】
前記インストーラは、
前記現在の印刷制御プログラムのバージョン情報と更新しようとする前記印刷制御プログラムのバージョン情報とをユーザに通知し、前記印刷実行モジュールを更新するか否かの選択を表示し、
前記ユーザの更新の選択を受けた後、
前記比較及び前記インストールを行う
ことを特徴とする請求項３に記載の印刷制御プログラム。
【請求項５】
前記印刷受付モジュールは、
前記印刷実行モジュールの保存場所の情報を前記実行モジュール対応表から取得し、
前記保存場所の情報を基に、前記印刷要求を前記実行モジュールに送る
ことを特徴とする請求項１乃至４のいずれか一つに記載の印刷制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置に印刷要求を送信する情報処理装置に用いる印刷制御プログラムに関する。
【背景技術】
【０００２】
一般に、アプリケーションからの印刷要求に従って画像をプリンタに出力させるためには、アプリケーションからの印刷要求をＯＳを通じて受け、その受けた印刷要求に含まれる印刷データを処理し、さらにその受けた印刷要求に基づいてプリンタを制御して画像をプリンタに印刷させるプリンタドライバプログラムソフトウェア（以下、「印刷制御プログラム」という。）が必要である。そして、印刷制御プログラムはプリンタの種類毎に異なるものであり、プリンタの製造元により提供されている。また、印刷制御プログラムの機能の追加や、修正が行なわれた場合、新しい印刷制御プログラムをＯＳにインストールして、印刷制御プログラムを更新する必要がある。
【０００３】
しかし、ＯＳが旧来のＷｉｎｄｏｗｓ（登録商標）などの場合、印刷制御プログラムの更新には再起動が要求される。このため、印刷制御プログラムを更新する毎に、ＯＳを再起動させる必要があり、その間、ドライバをインストールしたコンピュータの機能を停止せざるを得ないという問題があった。また、再起動せずに更新した印刷制御プログラムを使用しようとしても、プリンタサービスを一度停止した後、そのプリンタサービスを再開させる必要がある。このため、印刷制御プログラムのインストール先に複数のプリンタが接続されている場合には、プリンタサービスが停止している間は、他のプリンタも使用できなくなるという問題があった。
【０００４】
また、旧来のＷｉｎｄｏｗｓなどでは、印刷制御プログラムの新旧をファイルの更新時刻で管理しており、ファイルの更新時刻が新しければ、その新しい更新時刻のファイルを持つ印刷制御プログラムを新しい印刷制御プログラムと判断し、更新を許可してしまうため、印刷制御プログラム提供元が望まないバージョンの組み合わせでプリンタモジュール（「プリンタモジュール」とは、一連の処理を一つのまとまりとして記述した、印刷制御プログラムを構成する機能単位である。）がインストールされてしまうことがあり、予期せぬ不具合を招くおそれがあった。
【０００５】
さらに、旧来のＷｉｎｄｏｗｓなどでは、全ての印刷制御プログラムの全てのファイルは、１つのディレクトリに展開される。このため、同じ名前のプリンタモジュールを使用することはできなかった。そこで、印刷制御プログラム提供元は、自らが提供する印刷制御プログラムだけでなく、他の印刷制御プログラム提供元が提供する印刷制御プログラムともファイル名が重ならないよう全てのファイル名に気を配る必要があった。さらに、印刷制御プログラム提供元が望まないバージョンの組み合わせでプリンタモジュールがインストールされるおそれがあるため、内容がまったく同じファイルに対して、機種毎、言語毎に異なるファイル名を用意せねばならなかった。これにより、印刷制御プログラム提供元には、非効率的なファイル管理の開発コストが発生し、また、プリンタ利用者には無駄なディスクスペースの消費を招くことがあった。
【０００６】
以上のように、旧来のＷｉｎｄｏｗｓなどのＯＳにおいては、当該ＯＳの仕様により印刷制御プログラムは多々の制約を受けていた
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、このような事情に鑑みてなされたもので、旧来のＷｉｎｄｏｗｓなどのＯＳにおいても、当該ＯＳの仕様による制約を回避乃至低減できる印刷制御プログラムを提供することを主たる目的とする。
【０００８】
また、ＯＳを再起動せずに更新が有効にできる印刷制御プログラムを提供することを目的としている。
【０００９】
さらに、バージョンで管理可能な印刷制御プログラムを提供することを目的としている。
【００１０】
さらにまた、各印刷制御プログラムが有するファイルを、同じファイル名で同じコンピュータの中に複数共存させることができる印刷制御プログラムを提供することを目的としている。
【課題を解決するための手段】
【００１１】
そこで、１つの印刷制御プログラムを、ＯＳの管理下に置かれるモジュールと、ＯＳの管理の外に置かれるモジュールとの２つに分けることで、ＯＳからは管理下に置かれているモジュールのみが印刷制御プログラムとして認識されるようにし、ＯＳの管理下に置かれたモジュールは単にＯＳからの命令を受けそれをＯＳの管理の外に置かれたモジュールに渡す役割を果たし、ＯＳの管理の外に置かれたモジュールにより印刷制御の実際の実行を行うように構成した。
【００１２】
上記目的を達成するため具体的には、請求項１に記載の印刷制御プログラムは、コンピュータに含まれるＯＳ上で実行されるアプリケーションプログラムからの印刷要求を前記ＯＳを通じて受け付け、前記印刷要求に含まれる印刷データに基づいた画像を、前記印刷要求に基づいてプリンタに印刷させる印刷制御プログラムであって、前記プリンタの種類に対応して、前記印刷データに基づいた画像を前記プリンタに印刷させる印刷実行モジュールと、前記ＯＳからの印刷要求を受け付け、前記コンピュータに予め記憶されているプリンタの種類に対応する前記印刷実行モジュールの対応表である実行モジュール対応表を参照し、前記印刷要求に含まれる前記プリンタの種類に対応する前記印刷実行モジュールに前記印刷要求を送り、該当する前記印刷実行モジュールに対して印刷を実行させる印刷受付モジュールとを備え、前記印刷受付モジュールは前記ＯＳの一部として構成され、前記印刷実行モジュールは前記ＯＳから独立して構成されることを特徴とするものである。
【００１３】
請求項２に記載の発明は、請求項１に記載の印刷制御プログラムであって、前記印刷実行モジュールを更新するインストーラをさらに備えたことを特徴とするものである。
【００１４】
請求項３に記載の発明は、請求項２に記載の印刷制御プログラムであって、前記インストーラは、前記印刷受付モジュールのバージョン情報が含まれる前記実行モジュール対応表から、現在インストールされている前記印刷受付モジュールの前記バージョン情報を取得し、前記現在の印刷受付モジュールのバージョン情報と更新しようとする前記印刷受付モジュールのバージョン情報とを比較し、前記現在の印刷受付モジュールのバージョン情報が更新しようとする前記印刷受付モジュールのバージョン情報より古い場合に、前記印刷受付モジュールのインストールを行うことを特徴とするものである。
【００１５】
請求項４に記載の発明は、請求項３に記載の印刷制御プログラムであって、前記インストーラは、前記現在の印刷制御プログラムのバージョン情報と更新しようとする前記印刷制御プログラムのバージョン情報とをユーザに通知し、前記印刷実行モジュールを更新するか否かの選択を表示し、前記ユーザの更新の選択を受けた後、前記比較及び前記インストールを行うことを特徴とするものである。
【００１６】
請求項５に記載の発明は、請求項１乃至請求項４のいずれか一つに記載の印刷制御プログラムであって、前記印刷受付モジュールは、前記印刷実行モジュールの保存場所の情報を前記実行モジュール対応表から取得し、前記保存場所の情報を基に、前記印刷要求を前記実行モジュールに送ることを特徴とするものである。
【発明の効果】
【００１７】
請求項１に記載の印刷制御プログラムによると、ＯＳと印刷制御プログラムとの間を仲介する役割を果たすデバイスドライバインターフェースを実装する印刷受付モジュールと、このデバイスドライバインターフェースを実装しない印刷実行モジュールとを有することにより、印刷実行モジュールはＯＳにより印刷制御プログラムと認識されない。従って、印刷実行モジュールはＯＳによる種々の制約を受けることがない。例えば、印刷実行モジュールは、ＯＳの再起動、及びサービスの停止を伴うことなく更新を行うことが可能となる。
【００１８】
請求項２に記載の印刷制御プログラムによると、印刷制御プログラムに含まれるインストーラにより、印刷実行モジュールのみの更新が可能になる、これにより、ＯＳの再起動、及びサービスの停止をせずに、印刷制御プログラムの更新を有効にすることが可能となる。
【００１９】
請求項３に記載の印刷制御プログラムによると、印刷制御プログラムの更新時に、印刷実行モジュールの現在インストールされているバージョン、及び更新しようとする印刷実行モジュールのバージョンをインストーラが取得し、バージョンの新旧により更新をするかしないかを判断することが可能となる。これにより、印刷制御プログラムの更新を印刷制御プログラム提供元がつけたバージョン情報で管理することが可能となり、印刷制御プログラム提供元の望まないバージョンの組み合わせで印刷制御プログラムがインストールされるおそれが減少する。
【００２０】
請求項４に記載の印刷制御プログラムによると、印刷制御プログラムの更新時に、印刷実行モジュールの現在インストールされているバージョン、及び更新しようとする印刷実行モジュールのバージョンがユーザに通知され、それをユーザが選択することにより、更新を実行するか否かが決定される。これにより、ユーザによっても、印刷制御プログラムの更新を印刷制御プログラム提供元がつけたバージョン情報で管理することが可能となり、印刷制御プログラム提供元の望まないバージョンの組み合わせで印刷制御プログラムがインストールされるおそれが減少する。
【００２１】
請求項５に記載の印刷制御プログラムによると、インストーラが保存した印刷実行モジュールの保存場所へ印刷要求が送られるので、印刷実行モジュールの保存場所はインストーラにゆだねることができる。これにより、異なる場所にそれぞれの印刷実行モジュールを保存することが可能になるので、各印刷実行モジュールが有するファイルに対し同じファイル名を使用することが可能となる。
【発明を実施するための最良の形態】
【００２２】
〔第１の実施形態〕
この発明の第１の実施形態に係る印刷制御プログラムについて説明する。以下、実際には、プログラムや、一連の処理を一つのまとまりとして記述したプログラムを構成する機能単位であるモジュールは、コンピュータ内で実行されて機能を果たすが、説明では、その機能を実行する主体として「〜プログラムは、〜」「〜モジュールは、〜」というように説明することがある。
【００２３】
（印刷）
まず、本発明に係る印刷制御プログラムにおける印刷動作の概要について図１を参照して説明する。ここで、図１は本発明に係る印刷制御プログラムの構成及び動作の流れを示す図である。図１に示すように本発明に係る印刷制御プログラム１００は、コンピュータ００１の上で動作し、印刷受付モジュール１１０、印刷実行モジュール１２０、印刷実行モジュールインターフェース１２１、実行モジュール対応表２００、及び印刷実行モジュール情報１２２を有する。ここで、各印刷実行モジュール１２０である、印刷実行モジュール１２０Ａ、印刷実行モジュール１２０Ｂ、印刷実行モジュール１２０Ｃのそれぞれは、印刷受付モジュール１１０と連携して動作し、異なる印刷制御プログラム１００を構成する。さらに、印刷実行モジュール１２０Ａ、印刷実行モジュール１２０Ｂ、印刷実行モジュール１２０Ｃは、それぞれプリンタ００４Ａ、プリンタ００４Ｂ、プリンタ００４Ｃを制御するためのプログラムである。さらに、印刷実行モジュールインターフェース１２１Ａ、印刷事項モジュールインターフェース１２１Ｂ，印刷実行モジュールインターフェース１２１Ｃは、それぞれ印刷実行モジュール１２０Ａ、印刷実行モジュール１２０Ｂ、印刷実行モジュール１２０Ｃに含まれる。また、ＯＳ００３がコンピュータ００１上で動作しており、アプリケーション００２がＯＳ００３上で動作している。さらに、印刷実行モジュール対応表２００がコンピュータ００１の中に記憶されており、印刷実行モジュール情報１２２が印刷実行モジュール対応表２００の中に含まれる。
【００２４】
アプリケーション００２は、コンピュータ００１上のＯＳ００３上で動作するプログラムであり、ユーザから印刷要求の入力を受け、この印刷要求をＯＳ００３に送る。本実施例ではプリンタ００４Ａに印刷させる印刷要求を考える。ここで、印刷要求には、印刷する画像データ、及び出力させるプリンタの種類や部数などのプリンタを制御する情報が含まれる。
【００２５】
ＯＳ００３は、コンピュータ００１上で動作するプログラムであり、アプリケーション００２から受け付けた印刷要求を、印刷要求に含まれるプリンタの種類に対応する印刷制御プログラム１００に送る。（以下、印刷要求に含まれるプリンタの種類に対応した印刷制御プログラム１００の名前を「モデル名」という。）このとき、ＯＳ００３は、デバイスドライバインターフェース（以下、「ＤＤＩ」という。）を有するプログラムを印刷制御プログラム１００と認識し、そのプログラムに印刷要求を送る。ここで、ＤＤＩとはＯＳ００３と印刷制御プログラム１００との間の仲介をする役割を果たすものである。
【００２６】
印刷受付モジュール１１０は、ＤＤＩを実装する印刷制御プログラム１００のモジュールであり、ＯＳ００３から印刷要求を受け付ける。印刷受付モジュール１１０はＯＳ００３の一部としてＯＳ００３の管理下で動作する。ここで、印刷受付モジュール１１０は、各モデル名に対応するそれぞれの印刷制御プログラム１００において共通のファイル名及び共通のファイル内容を持つ共通のモジュールである。印刷受付モジュール１１０はＯＳ００３の管理下にあるため、更新した場合は再起動が必要になる。
【００２７】
印刷要求を受けた印刷受付モジュール１１０は、印刷要求に基づくモデル名を受けて、実行モジュール対応表２００を参照し、モデル名に対応する印刷実行モジュール１２０の情報である印刷実行モジュール情報１２２を取得する。次に、印刷受付モジュール１１０は、取得した印刷実行モジュール１２０Ａの印刷実行モジュール情報１２２を基に、ＯＳ００３から呼び出された印刷受付モジュール１１０が有するＤＤＩに対応する、印刷実行モジュール１２０Ａに含まれる各印刷実行モジュールインターフェース１２１Ａを呼び出し、印刷実行モジュール１２０へ印刷要求を送る。
【００２８】
ここで、印刷実行モジュールインターフェース１２１は、印刷実行モジュール１２０が印刷受付モジュール１１０から呼び出され印刷要求を受け付ける印刷実行モジュール１１０と印刷実行モジュール１２０を仲介する役割を果たすものである。
【００２９】
また、実行モジュール対応表２００は、図２のようにモデル名に対応した印刷実行モジュール１２０の情報である印刷実行モジュール情報１２２を有している。実行モジュール対応表２００の形式は特に制限はなく、Ｅｅｃｅｌ、ｉｎｉファイル、又は独自のファイルなどでもよい。ここで、印刷実行モジュール１２０はモデル名毎に異なるモジュールである。また、この印刷実行モジュール情報１２２には図３に示すような情報が格納されている。ここで、図３は印刷実行モジュールＡ＿ＪＡの情報内容を表す図である。印刷実行モジュール情報１２２には、モデル名、及びこの印刷実行モジュール１２０に対応する印刷制御プログラム１００のバージョン情報が含まれる。この、印刷制御プログラム１００のバージョン情報は、印刷受付プログラム１１０のバージョン情報と一致する。さらに、ＯＳ００３が指定するＤＤＩの名前、そのＤＤＩに対応する印刷実行モジュールインターフェース１２１の名前、及びその印刷実行モジュールインターフェース１２１の保存先の情報が含まれている。本実施例では、印刷実行モジュール１２０Ａの情報が呼び出される。例えば、図３に示すように、ＤＤＩとしてＤｒｖＰｒｉｎｔｅｒＥｖｅｎｔがあり、そのＤｒｖＰｒｉｎｔｅｒＥｖｅｎｔに対応する印刷実行モジュールインターフェース１２１ＡはＭａｉｎＰｒｉｎｔｅｒＥｖｅｎｔであり、そのＭａｉｎＰｒｉｎｔｅｒＥｖｅｎｔの保存先がＭｏｄｅｌ＿Ａ￥ｖ０１０２￥ＪＡ￥ｍａｉｎ＿ｃｆｇ．ｄｌｌである。ここで、図３では説明のため３種類のＤＤＩのみを記載しているが、実際には印刷制御プログラム１００が必要とする種類のＤＤＩが全て必要であり、それが全て印刷実行モジュール情報１２２の中に記載される。
【００３０】
印刷実行モジュール１２０Ａは、コンピュータ上のＯＳ００３の管理の外に置かれたプログラムであり、呼び出された各印刷実行モジュールインターフェース１２１Ａにより、印刷要求を受け付ける。この印刷実行モジュール１２０は、ＯＳ００３の管理の外にあり、ＯＳ００３に係わりなく更新できるので、更新をしても再起動は不要である。
【００３１】
印刷実行モジュール１２０Ａは、呼び出された印刷実行モジュールインターフェース１２１Ａをサポートするダイナミックリンクライブラリにより、レンダリングなどの処理を実行した後、プリンタ００４Ａに画像の印刷を行なわせる。ここで、ダイナミックリンクライブラリとは、複数のプロセスで使用するような関数群などを含む実行ファイルである。
【００３２】
さらに詳細に、印刷制御プログラム１００の印刷の動作を図４を参照しながら説明する。（以下では、「４−番号」はそれぞれ、図４におけるその番号にあたる各プログラムの動作を示している。）まず、印刷受付モジュール１１０は、ＤＤＩが呼び出された際に、コンピュータ００１上の実行モジュール対応表２００内を検索して（４−１）、ＤＤＩを通じて得られる印刷制御プログラム１００のモデル名に対応する印刷実行モジュール情報１２２を取得する（４−２）。
【００３３】
印刷受付モジュール１１０は、印刷実行モジュール情報１２２を参照して、現在のＤＤＩに対応する印刷実行モジュール１２０の名前と印刷実行モジュールインターフェース１２１の名前を取得する（４−２）。
【００３４】
印刷受付モジュール１１０は、印刷実行モジュール１２０をメモリ上にロードする（４−３）。
【００３５】
印刷受付モジュール１１０は、印刷実行モジュールインターフェース１２１を呼び出す（４−４）。
【００３６】
印刷実行モジュール１２０は、印刷実行モジュールインターフェース１２１が呼び出された後、印刷要求に対して対応するＤＤＩが行なう処理を全て実行する。具体的には、画像処理を行い、印刷要求に従いプリンタに出力させる。
【００３７】
印刷受付モジュール１１０は、印刷実行モジュールインターフェース１２１からの戻り値をうけて、印刷実行モジュール１２０をメモリ上から開放する（４−５）。
【００３８】
次に、図５を参照して印刷制御プログラム１００の動作の流れを説明する。ここで、図５は印刷制御プログラム１００の動作を示すフローチャートである。
【００３９】
ステップＳ００１：印刷受付モジュール１１０は、実行モジュール対応表２００を検索し、実行モジュール情報３３０を取得。
【００４０】
ステップＳ００２：印刷受付モジュール１１０は、実行モジュール情報３３０から、印刷実行モジュール１２０の名前と、印刷実行モジュールインターフェース１２１の名前を取得。
【００４１】
ステップＳ００３：印刷受付モジュール１１０は、印刷実行モジュール１２０をメモリ上にロード。
【００４２】
ステップＳ００４：印刷受付モジュール１１０は、印刷実行モジュールインターフェース１２１を呼び出し。
【００４３】
ステップＳ００５：印刷実行モジュール１２０は、印刷受付モジュール１１０から印刷要求をうけて、その印刷要求にしたがってプリンタ００４に画像を印刷させる。
【００４４】
ステップＳ００６：印刷受付モジュール１１０は、印刷実行モジュール１２０をメモリから開放する。
【００４５】
（インストール）
次に、本発明に係る印刷制御プログラム１００のインストール（更新を含む。）の動作について図６、図７、図８、図９、及び図１０を参照して説明する。ここで、図６はインストーラ３００によるインストールの動作を説明するための図である。図７は印刷実行モジュール管理プログラム４００による印刷実行モジュール１２０のインストールの動作を説明する図である。図８は印刷制御プログラム更新時に、バージョン情報及び更新の選択を表示する表示画面の図である。図９は実行モジュール対応表にモデル名がある場合の、更新による再起動の通知及び更新の続行の選択を表示する表示画面の図である。図１０は実行モジュール対応表にモデル名がない場合の、更新による再起動の通知及び更新の続行の選択を表示する表示画面の図である。これらの図では、印刷制御プログラムを「プリンタドライバ」と記載することがある。
【００４６】
本実施例に係るインストーラ３００は、図６に示すように、印刷実行モジュール管理プログラム４００、モデル名に対応する印刷制御プログラム１００、及びモデル名に対応する印刷実行モジュール情報１２２によって構成される。（以下では、「６−番号」「７−番号」はそれぞれ、図６、図７におけるその番号にあたる各プログラムの動作を示している。）
【００４７】
図６に示すように、インストーラ３００は、ユーザによって起動される（６−１）。次に、インストーラ３００は、実行モジュール対応表２００がコンピュータ００１上に存在するか否かを確認する（６−２）。
【００４８】
印刷実行モジュール対応表２００が存在しない場合には、本発明に係る印刷制御プログラム１００がインストールされておらず、印刷受付モジュール１１０がインストールされていないため、インストーラ３００は、印刷受付モジュール１１０をインストールする（６−３）。次に、インストーラ３００は印刷実行モジュール管理プログラム４００を起動する（６−４）。ここで、印刷実行モジュール管理プログラム４００は、インストーラ３００の中に含まれるプログラムである。図７に示すように、起動された印刷実行モジュール管理プログラム４００は、インストーラ３００から通知された印刷実行モジュール情報１２２に含まれる印刷実行モジュール１２０の保存先の情報及びファイル名の情報に基づき、印刷実行モジュール１２０のファイルをコンピュータ００１上に展開する（７−１）。さらに、印刷実行モジュール管理プログラム４００は、実行モジュール対応表２００を作成し（７−２）、インストーラ３００から印刷実行モジュール情報１２２を受けて、実行モジュール対応表２００に印刷実行モジュール情報１２２を書き込む（７−３）。この場合には、印刷受付モジュール１１０の新規のインストールであり再起動はＯＳ００３から要求されず、またサービスの停止も必要ない。
【００４９】
また、実行モジュール対応表２００が存在する場合には、図６に示すように、インストーラ３００は、その実行モジュール対応表２００を参照し、インストーラ３００に含まれる印刷制御プログラム１００に対応するプリンタのモデル名を検索する（６−５）。
【００５０】
該モデル名が存在する場合は、インストーラ３００はコンピュータ００１上の実行モジュール対応表２００に記載されている該モデル名に対応する印刷制御プログラム１００のバージョンを参照する（６−５）。インストーラ３００は、図８に示すようにインストーラ３００が内部に持つ印刷制御プログラム１００のバージョンとコンピュータ００１にインストールされている印刷制御プログラム１００のバージョンをユーザに通知する（６−６）。さらに、ユーザによるバージョンの管理を可能にするため、図８に示すようにインストーラ３００は、内部に持つ印刷制御プログラム１００を使用して更新するか否かの選択画面を表示する。ユーザが更新を選択しない場合には、インストーラ３００は、インストールを終了し、ユーザが内部に持つ印刷制御プログラム１００を使用して更新することを選択した場合には、インストーラ３００は、ユーザに通知した２つのバージョンを基に、２つのバージョンの新旧比較し、ＯＳ００３にインストールされている印刷受付モジュール１１０を更新する必要があるかどうかを判断する。これにより、インストーラ３００によるバージョンの管理が行なわれる。
【００５１】
ここで、更新が必要か否かの判断方法を説明する。印刷制御プログラム１００の提供元により、印刷制御プログラム１００のバージョンが大小比較可能な文字列で表わされ、新しいバージョン毎に高い値の文字列を付される。インストーラ３００は、このバージョンの値を比較し、インストーラ３００内部の印刷制御プログラム１００のバージョンの値がインストールされている印刷制御プログラム１００のバージョンの値よりも高い場合には古いバージョンなので更新の必要ありと判断し、インストーラ３００内部の印刷制御プログラム１００のバージョンの値がインストールされている印刷制御プログラム１００のバージョンの値よりも低い場合には新しいバージョンなので更新の必要なしと判断する。
【００５２】
ＯＳ００３にインストールされている印刷受付モジュール１１０を更新する必要がない場合には、インストーラ３００は、印刷実行モジュール管理プログラム４００を起動する（６−４）。図７に示すように、起動された印刷実行モジュール管理プログラム４００は、インストーラ３００から通知された印刷実行モジュール情報１２２に含まれる印刷実行モジュール１２０の相対パス付きファイル名の情報に基づき、印刷実行モジュール１２０のファイルを更新する（７−１）。さらに、印刷実行モジュール管理プログラム４００は、インストーラ３００から印刷実行モジュール情報１２２を受けて、実行モジュール対応表２００に印刷実行モジュール情報１２２を更新する（７−３）。
【００５３】
ＯＳ００３にインストールされている印刷受付モジュール１１０を更新する必要がある場合には、インストーラ３００は、図９に示すような画面を表示させて、ユーザにＯＳ００３を再起動する必要性を通知し、さらに、図９に示すような更新を続行するかしないかをユーザに選択させる画面を表示させる（６−６）。
【００５４】
ユーザがＯＳ００３に印刷受付モジュール１１０の更新を続行することを選択した場合には、インストーラ３００は、印刷受付モジュール１１０をインストールする（６−３）。次に、インストーラ３００は、印刷実行モジュール管理プログラム４００を起動する（６−４）。図７に示すように、起動された印刷実行モジュール管理プログラム４００は、インストーラ３００から通知された印刷実行モジュール情報１２２に含まれる印刷実行モジュール１２０の相対パス付きファイル名の情報に基づき、印刷実行モジュール１２０のファイルを更新する（７−１）。さらに、印刷実行モジュール管理プログラム４００は、インストーラ３００から印刷実行モジュール情報１２２を受けて、実行モジュール対応表２００に印刷実行モジュール情報１２２を更新する（７−３）。
【００５５】
ユーザがＯＳ００３に印刷受付モジュール１１０の更新を続行しないことを選択した場合には、インストーラ３００は、インストール作業を終了する。
【００５６】
該モデル名が存在しない場合は、インストーラ３００は印刷受付モジュール１１０のバージョンの新旧を比較し、ＯＳ００３にインストールされている印刷受付モジュール１１０を更新する必要があるかどうかを判断する。インストーラ３００は、インストーラ３００内部の印刷制御プログラム１００のバージョンの値がインストールされている印刷制御プログラム１００のバージョンの値よりも低い場合には更新の必要なしと判断し、インストーラ３００内部の印刷制御プログラム１００のバージョンの値がインストールされている印刷制御プログラム１００のバージョンの値よりも高い場合には更新の必要ありと判断する。
【００５７】
更新の必要なしと判断した場合には、インストーラ３００は、印刷実行モジュール管理プログラム４００を起動する（６−４）。図７に示すように、起動された印刷実行モジュール管理プログラム４００は、インストーラ３００から通知された印刷実行モジュール情報１２２に含まれる印刷実行モジュール１２０の相対パス付きファイル名の情報に基づき、印刷実行モジュール１２０のファイルをコンピュータ００１上に展開する（７−１）。さらに、印刷実行モジュール管理プログラム４００は、インストーラ３００から印刷実行モジュール情報１２２を受けて、実行モジュール対応表２００に印刷実行モジュール情報１２２を書き込む（７−３）。
【００５８】
更新の必要なしと判断した場合には、インストーラ３００は、図１０に示すように、ユーザにＯＳ００３を再起動する必要性を通知し、さらに、図９に示すような更新を続行するかしないかをユーザに選択させる画面を表示させる。
【００５９】
ユーザがＯＳ００３に印刷受付モジュール１１０の更新を続行することを選択した場合には、インストーラ３００は、印刷受付モジュール１１０をインストールする（６−３）。次に、インストーラ３００は、印刷実行モジュール管理プログラム４００を起動する（６−４）。図７に示すように、起動された印刷実行モジュール管理プログラム４００は、インストーラ３００から通知された印刷実行モジュール情報１２２に含まれる印刷実行モジュール１２０の相対パス付きファイル名の情報に基づき、印刷実行モジュール１２０のファイルをコンピュータ００１上に展開する（７−１）。さらに、印刷実行モジュール管理プログラム４００は、インストーラ３００から印刷実行モジュール情報１２２を受けて、実行モジュール対応表２００に印刷実行モジュール情報１２２を書き込む（７−３）。
【００６０】
ユーザがＯＳ００３に印刷受付モジュール１１０の更新を続行しないことを選択した場合には、インストーラ３００は、インストール作業を終了する。
【００６１】
次に、図１１を参照して印刷制御プログラム１００のインストールの流れを説明する。ここで、図１１は印刷制御プログラム１００のインストールの動作を示すフローチャートである。
【００６２】
ステップＳ１０１：インストーラ３００は、コンピュータ００１の中に実行モジュール対応表２００が保存されているか否かを判断する。保存されている場合にはステップＳ１０２へ、保存されていない場合にはステップＳ１１０へ進む。
【００６３】
ステップＳ１０２：インストーラ３００は、実行モジュール対応表２００を参照する。
【００６４】
ステップＳ１０３：インストーラ３００は、実行モジュール対応表２００の中に、インストールをしようする印刷制御プログラム１００に対応したプリンタのモデル名があるか否かを判断する。モデル名がある場合にはステップＳ１０４へ、モデル名がない場合にはステップＳ１１６へ進む。
【００６５】
ステップＳ１０４：インストーラ３００は、実行モジュール対応表２００の中に記載されている、印刷制御プログラム１００のバージョン情報を参照。
【００６６】
ステップＳ１０５：インストーラ３００は、インストーラ３００の内部の印刷制御プログラム１００のバージョンと、コンピュータ００１の中にインストールされている印刷制御プログラム１００のバージョンの情報をユーザに通知し、更新を行なうか否かの選択画面を表示させる。
【００６７】
ステップＳ１０６：ユーザの入力を受けて、インストーラ３００は、ユーザにより更新が許可されたか否かを判断する。更新を許可された場合にはステップＳ１０７へ進み、更新が許可されなかった場合にはインストールの動作を終了する。
【００６８】
ステップＳ１０７：インストーラ３００は、ユーザに通知したインストーラ３００の内部の印刷制御プログラム１００のバージョンと、コンピュータ００１の中にインストールされている印刷制御プログラム１００のバージョンとを基に、ＯＳ００３にインストールされている印刷受付モジュール１１０を更新する必要があるかどうかを判断する。更新する必要がある場合にはステップＳ１０８に、更新する必要がない場合にはステップＳ１１１へ進む。
【００６９】
ステップＳ１０８：インストーラ３００は、ＯＳ００３を再起動する必要性をユーザに通知し、印刷受付モジュール１１０の更新を継続するか否かの選択を図９のように表示させる。
【００７０】
ステップＳ１０９：ユーザからの選択を受けて、インストーラ３００は、ユーザにより更新が継続された場合にはステップＳ１１０へ進み、ユーザにより更新が中断された場合にはインストールの動作を終了する。
【００７１】
ステップＳ１１０：インストーラ３００は、印刷受付モジュール１１０のインストールを行なう。
【００７２】
ステップＳ１１１：インストーラ３００は、印刷実行モジュール管理プログラム４００を起動する。
【００７３】
ステップＳ１１２：印刷実行モジュール管理プログラム４００は、インストーラ３００から情報を受けて、コンピュータ００１上に実行モジュール対応表２００が保存されているか否かを判断する。保存されている場合にはステップＳ１１４に進み、保存されていない場合にはステップＳ１１３に進む。
【００７４】
ステップＳ１１３：印刷実行モジュール管理プログラム４００は、実行モジュール対応表２００をコンピュータ００１上に作成する。
【００７５】
ステップＳ１１４：印刷実行モジュール管理プログラム４００は、印刷実行モジュール情報１２２を基に、印刷実行モジュール１２０の相対パス付きファイル名の情報どおりに印刷実行モジュール１２０のファイルをコンピュータ００１上に展開する。
【００７６】
ステップＳ１１５：印刷実行モジュール管理プログラム４００は、印刷実行モジュール情報１２２を基に、実行モジュール対応表２００に、印刷制御プログラム１００の印刷実行モジュール情報１２２を書き込む。
【００７７】
ステップＳ１１６：インストーラ３００は、印刷受付モジュール１１０の更新が必要か否かを判断する。更新が必要であればステップＳ１１７に進み、更新が不要であればステップＳ１１１へ進む。
【００７８】
ステップＳ１１７：インストーラ３００は、ＯＳ００３を再起動する必要性をユーザに通知し、印刷受付モジュール１１０の更新を継続するか否かの選択を図１０のように表示させる。
【００７９】
ステップＳ１１８：インストーラ３００は、ユーザが更新の継続を選んだ場合にはステップＳ１１０へ進み、ユーザが更新の継続を選ばない場合にはインストールを終了する。
【００８０】
本実施形態では、印刷実行モジュール管理プログラム４００をインストーラ３００の中に含まれるプログラムとしているが、この印刷実行モジュール管理プログラム４００を、コンピュータ００１の中にインストール可能なプログラムとして構成し、コンピュータ００１の中にインストールしておくことで、インストーラ３００内部の印刷実行モジュール管理プログラム４００を起動せずに、コンピュータ００１にインストールされている印刷実行モジュール管理プログラム４００を起動して、印刷制御プログラム１００の更新を行なう構成にしてもよい。
【００８１】
この場合、インストーラ３００は、インストール時に印刷実行モジュール管理プログラム４００がコンピュータ００１上にインストールされていない場合には、印刷実行モジュール管理プログラム４００をコンピュータ００１上にインストールし、インストーラ３００内部の印刷実行モジュール管理プログラム４００のバージョンがコンピュータ００１上にインストールされている印刷実行モジュール管理プログラム４００のバージョンよりも新しい場合には、コンピュータ００１上の印刷実行モジュール管理プログラム４００を更新する。
【００８２】
このように、印刷実行モジュール管理プログラム４００をコンピュータ００１上にインストールすることにより、印刷実行モジュール管理プログラム４００を常駐させ、ユーザにより起動されることができるように構成しておけば、印刷実行モジュール管理プログラム４００により、印刷制御プログラム１００の削除が可能になる。そこで、図１２及び図１３を参照して、印刷実行モジュール管理プログラム４００による削除の動作を説明する。ここで、図１２は印刷実行モジュール管理プログラム４００による印刷制御プログラム１００の削除の動作を説明するための図であり、図１３は削除する印刷制御プログラム１００の選択を表示する表示画面の図である。（以下では、「１２−番号」、図１２におけるその番号にあたる各プログラムの動作を示している。）図１２に示すように、ユーザにより印刷制御プログラム１００が起動させられた場合に（１２−１）、印刷実行モジュール管理プログラム４００は、図１３のような削除する印刷制御モジュール１００の選択の画面を表示させ、その中からユーザに選択された印刷制御モジュール１００に対応する、印刷実行モジュール１２０の削除（１２−２）、印刷実行モジュール情報１２２の削除（１２−３）、及び、必要であれば印刷受付モジュール１１０の削除も可能となる（１２−４）。
【００８３】
また、本実施形態では、印刷実行モジュール１２０は、モデル毎、印刷制御プログラム１００のバージョン毎にまったく異なる内容で提供されるよう構成されているため、印刷実行モジュール１２０を更新するときには、必ず既存のものを削除し、インストーラ３００内部の印刷実行モジュール１２０をコンピュータ００１上に展開することになる。したがって、印刷実行モジュール１２０の更新においては、バージョン間での不都合は起こらず、印刷受付モジュール１１０のようなバージョンの管理は不要である。ただし、印刷実行モジュール１２０は、特定のモデル間、特定の印刷制御プログラム１００のバージョン間で共通に使用してもよく、その場合は、印刷実行モジュール１２０の更新においても、印刷受付モジュール１１０と同様のバージョンの管理が必要になる。
【００８４】
また、本実施形態では、印刷制御プログラム１００のバージョン情報と印刷受付モジュール１１０のバージョン情報が一致するため、印刷制御プログラム１００のバージョン情報を管理することで、印刷受付モジュール１１０のバージョンの管理を行なっているが、実行モジュール対応表２００に印刷受付モジュール１１０のバージョン情報をふくませるなどして、直接印刷受付モジュール１１０のバージョンの管理を行なってもよい。
【００８５】
さらに、本実施形態では、更新しようとしている印刷受付モジュール１１０のバージョンが新しく更新可能である場合にも、ユーザにとって好ましくないバージョンである場合には更新させないように、ユーザによるバージョンの管理を行なった後に、インストーラ３００によるバージョンの管理を行なっている。ただし、インストーラ３００によるバージョンの管理のみでも、印刷制御プログラム１００の提供元の望まないバージョンの組み合わせで印刷制御プログラム１００がインストールさせることは回避できる。
【００８６】
〔第２の実施形態〕
次に、本発明に係る第２の実施形態について説明する。第１の実施形態では、印刷受付モジュール１１０が、単に全てのモデル名に対応する印刷制御プログラム１００において共通のファイル名を持つとしていたが、第２の実施形態では、印刷受付モジュール１１０が、全てのモデル名に対応する印刷制御プログラム１００において共通のファイル名を持つが、印刷受付モジュール１１０の各バージョンに対して、異なるファイル名を持つように構成する。
【００８７】
本実施例においても、印刷の手順や、インストール時における、コンピュータ００１の中に実行モジュール対応表２００がない場合の動作は、第１の実施例と同じである。
【００８８】
次に、コンピュータ００１の中に実行モジュール対応表２００がある場合の動作を、図６、図７、及び図８を参照して説明する。
【００８９】
まず、実行モジュール対応表２００の中に、インストールしようとする印刷制御プログラム１００に対応するモデル名が記載されている場合について説明する。該モデル名が存在する場合は、インストーラ３００はコンピュータ００１上の実行モジュール対応表２００に記載されている該モデル名に対応する印刷制御プログラム１００のバージョンを参照する（６−５）。インストーラ３００は、図８に示すようにインストーラ３００が内部に持つ印刷制御プログラム１００のバージョンとコンピュータ００１にインストールされている印刷制御プログラム１００のバージョンをユーザに通知する（６−６）。さらに、ユーザによるバージョンの管理を可能にするため、図８に示すようにインストーラ３００は、内部に持つ印刷制御プログラム１００を使用して更新するか否かの選択画面を表示する。ユーザが更新を選択しない場合には、インストーラ３００は、インストールを終了し、ユーザが内部に持つ印刷制御プログラム１００を使用して更新することを選択した場合には、インストーラ３００は、ユーザに通知した２つのバージョンを基に、ＯＳ００３にインストールされている印刷受付モジュール１１０を更新する必要があるかどうかを判断する。これにより、インストーラ３００によるバージョンの管理が行なわれる。
【００９０】
ＯＳ００３にインストールされている印刷受付モジュール１１０を更新する必要がない場合には、インストーラ３００は、印刷実行モジュール管理プログラム４００を起動する（６−４）。図７に示すように、起動された印刷実行モジュール管理プログラム４００は、インストーラ３００から通知された印刷実行モジュール情報１２２に含まれる印刷実行モジュール１２０の相対パス付きファイル名の情報に基づき、印刷実行モジュール１２０のファイルを更新する（７−１）。さらに、印刷実行モジュール管理プログラム４００は、インストーラ３００から印刷実行モジュール情報１２２を受けて、実行モジュール対応表２００に印刷実行モジュール情報１２２を更新する（７−３）。
【００９１】
ＯＳ００３にインストールされている印刷受付モジュール１１０を更新する必要がある場合には、インストーラ３００は、印刷受付モジュール１１０をインストールする（６−３）。次に、インストーラ３００は、印刷実行モジュール管理プログラム４００を起動する（６−４）。図７に示すように、起動された印刷実行モジュール管理プログラム４００は、インストーラ３００から通知された印刷実行モジュール情報１２２に含まれる印刷実行モジュール１２０の相対パス付きファイル名の情報に基づき、印刷実行モジュール１２０のファイルを更新する（７−１）。さらに、印刷実行モジュール管理プログラム４００は、インストーラ３００から印刷実行モジュール情報１２２を受けて、実行モジュール対応表２００に印刷実行モジュール情報１２２を更新する（７−３）。本実施形態では、印刷受付モジュール１１０のバージョン間でのファイル名が異なるため、印刷受付モジュール１１０の新規のインストールであり再起動はＯＳ００３から要求されず、またサービスの停止も必要ない。
【００９２】
次に、実行モジュール対応表２００の中に、インストールしようとする印刷制御プログラム１００に対応するモデル名が記載されていない場合について説明する。該モデル名が存在しない場合は、インストーラ３００は、印刷受付モジュール１１０をインストールする（６−３）。次に、インストーラ３００は、印刷実行モジュール管理プログラム４００を起動する（６−４）。図７に示すように、起動された印刷実行モジュール管理プログラム４００は、インストーラ３００から通知された印刷実行モジュール情報１２２に含まれる印刷実行モジュール１２０の相対パス付きファイル名の情報に基づき、印刷実行モジュール１２０のファイルをコンピュータ００１上に展開する（７−１）。さらに、印刷実行モジュール管理プログラム４００は、インストーラ３００から印刷実行モジュール情報１２２を受けて、実行モジュール対応表２００に印刷実行モジュール情報１２２を書き込む（７−３）。本実施形態では、印刷受付モジュール１１０のバージョン間でのファイル名が異なるため、印刷受付モジュール１１０の新規のインストールであり再起動はＯＳ００３から要求されず、またサービスの停止も必要ない。
【００９３】
以上のように、本実施例においては、印刷受付モジュール１１０の古いバージョンのファイルがＯＳ００３のシステムディレクトリにいつまでも残る可能性があるが、ＯＳ００３を再起動せずに印刷制御プログラム１００を更新することが完全に実現できる。
【図面の簡単な説明】
【００９４】
【図１】本発明に係る印刷制御プログラムの概略図
【図２】実行モジュール対応表の概略図
【図３】印刷実行モジュール情報の内容を説明するための図
【図４】本発明に係る印刷制御プログラムの印刷の動作を説明するための図
【図５】本発明に係る印刷制御プログラムの印刷の動作のフローチャート
【図６】インストーラの動作を説明するための図
【図７】メインモジュール管理プログラムの動作を説明するための図
【図８】印刷制御プログラム更新時に、バージョン情報及び更新の選択を表示する表示画面の図
【図９】実行モジュール対応表にモデル名がある場合の、更新による再起動の通知及び更新の続行の選択を表示する表示画面の図
【図１０】実行モジュール対応表にモデル名がない場合の、更新による再起動の通知及び更新の続行の選択を表示する表示画面の図
【図１１】本発明に係る印刷制御プログラムのインストールの動作のフローチャート
【図１２】印刷実行モジュール管理プログラムによる印刷制御プログラムの削除の動作を説明するための図
【図１３】削除する印刷制御プログラムの選択を表示する表示画面の図
【符号の説明】
【００９５】
００１  コンピュータ
００２  アプリケーション
００３  オペレーションシステム（ＯＳ）
００４（００４Ａ、００４Ｂ、００４Ｃ）
プリンタ（プリンタＡ、プリンタＢ、プリンタＣ）
１００  印刷制御プログラム
１１０  印刷受付モジュール
１２０  印刷実行モジュール
１２０Ａ、１２０Ｂ、１２０Ｃ  印刷実行モジュールＡ、印刷実行モジュールＢ、印刷実行モジュールＣ
１２１  印刷実行モジュールインターフェース
１２１Ａ、１２１Ｂ、１２１Ｃ  印刷実行モジュールインターフェースＡ、印刷実行モジュールインターフェースＢ、印刷実行モジュールインターフェースＣ
１２２  印刷実行モジュール情報
２００  実行モジュール対応表
３００  インストーラ
４００  印刷実行モジュール管理プログラム
【図１】
2008021048.tif 000003
【図２】
2008021048.tif 000004
【図３】
2008021048.tif 000005
【図４】
2008021048.tif 000006
【図５】
2008021048.tif 000007
【図６】
2008021048.tif 000008
【図７】
2008021048.tif 000009
【図８】
2008021048.tif 000010
【図９】
2008021048.tif 000011
【図１０】
2008021048.tif 000012
【図１１】
2008021048.tif 000013
【図１２】
2008021048.tif 000014
【図１３】
2008021048.tif 000015