JP2016173771A - プログラム、情報処理装置、情報処理方法、記憶媒体 - Google Patents
プログラム、情報処理装置、情報処理方法、記憶媒体 Download PDFInfo
- Publication number
- JP2016173771A JP2016173771A JP2015054025A JP2015054025A JP2016173771A JP 2016173771 A JP2016173771 A JP 2016173771A JP 2015054025 A JP2015054025 A JP 2015054025A JP 2015054025 A JP2015054025 A JP 2015054025A JP 2016173771 A JP2016173771 A JP 2016173771A
- Authority
- JP
- Japan
- Prior art keywords
- information
- upgrade
- setting
- printer
- storage unit
- 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.)
- Pending
Links
Images
Landscapes
- Accessory Devices And Overall Control Thereof (AREA)
- Stored Programmes (AREA)
Abstract
【課題】アップグレードの際に機器から取得した機器情報を機器ドライバに反映させることができるプログラムを提供することができる。【解決手段】機器へ処理を要求する情報処理装置10を、プログラムのアップグレードが開始されたことを契機に機器から機器情報を取得する際、前記機器情報を取得できたか否かを通信記録情報として記録する情報取得手段24と、前記情報取得手段が取得した前記機器情報を記憶部に記憶させる情報記憶手段25と、アップグレードの終了後、前記設定情報を前記記憶部に反映させる情報反映手段26と、として機能させ、前記情報反映手段は、前記設定情報を前記記憶部に反映させる際、前記通信記録情報の記録内容に応じて、前記記憶部に記憶された前記機器情報に前記設定情報を反映させるか否かを判断するプログラムを提供する。【選択図】図4
Description
本発明は、プログラム、情報処理装置、情報処理方法及び記憶媒体に関する。
PC(Personal Computer)がプリンタに印刷指示する場合、一般的には使用されるプリンタ用のプリンタドライバがPCに組み込まれており、プリンタドライバがユーザの印刷設定に従って印刷データを作成する。また、プリンタの機能をより適切に引き出すためにプリンタドライバはアップグレードされる場合や再インストールされる場合がある。
まず、アップグレードに関する背景を説明するためポイントアンドプリント(Point & Print)というプリンタドライバのインストールの仕組みについて説明する。
図1は、ポイントアンドプリントによりプリンタドライバがインストールされるシステム構成の一例を示す図である。サーバPC100には複数のプリンタ50が接続されており、サーバPC100には3つのクライアントPC99が接続されている。サーバPC100にはプリンタドライバがインストールされている。
ポイントアンドプリントではサーバPC100のプリンタドライバをクライアントPC99が共有するため、クライアントPC99にプリンタドライバがコピーされる。したがって、クライアントPC99の各ユーザがプリンタドライバをインストールしたりポート(IPアドレス)等の設定をすることなくサーバPC100を介して印刷することができる。
なお、図示するようにサーバPC100に複数のプリンタが接続されている場合、サーバPC100では名前などを変えてプリンタアイコン(プリンタアイコンはプリンタ50と対応づけられたプリンタドライバの実体である。)を複数、作成することにより、サーバPCは1つのプリンタドライバから複数のプリンタ50に接続できる。なお、複数のプリンタ50は、一般のプリンタドライバの場合は同じ機種であることが前提となるが、後述する機種共通ドライバの場合は複数のプリンタ50は異なる機種でもよい。このようにプリンタ50に適した設定が可能なプリンタアイコンがプリンタ50と接続しているとみなすことができる。
サーバPC100ではプリンタアイコンごと、つまり接続しているプリンタごとに印刷設定を設定することができる。クライアントPC99でもポイントアンドプリントによりプリンタアイコンが共有されるが、さらに、クライアントPC99のユーザはサーバPC100とは異なるユーザ独自の印刷設定をプリンタアイコンに設定することができる。
次に、プリンタドライバとプリンタの通信について説明する。プリンタドライバは、プリンタドライバが対応しているプリンタの機種が持っている機能をユーザが設定できるように印刷設定画面を表示する。つまり、プリンタドライバが対応している機種によって、ユーザがプリンタドライバで設定できる項目は異なる。さらに、プリンタドライバがプリンタに対応していても、プリンタの状態によって、プリンタドライバでユーザが設定できる項目は異なる。このような項目としては例えば、オプションに関する項目がある。プリンタドライバは出力ポートに設定されているプリンタと双方向通信を行い、オプションの情報を取得する。そして、オプションの1つとしてフィニッシャーがプリンタ本体に着いているという情報が取得できた場合のみ、プリンタドライバはパンチやステープルの印刷設定をユーザが設定できるように印刷設定画面を表示する。このような仕組みにより、ユーザがプリンタとは離れた場所から印刷する場合や、プリンタの状態を確認しないまま印刷する場合に、誤って印刷不可能な印刷設定で印刷を開始してしまうことを防ぐことができる。換言すると、プリンタドライバが自動的にプリンタの状態をユーザに知らせることで、ユーザは期待通りの印刷をすることができる。
次に、機種共通ドライバについて説明する。プリンタドライバは特定のプリンタ機種に専用に作られており、該プリンタのプリンタ機種用の印刷設定画面を表示する。これに対し、プリンタドライバの一種として機種共通ドライバというものがある。機種共通ドライバは、予めいくつかのプリンタ機種に対応させて作成されている。機種共通ドライバは接続されているプリンタと双方向通信を行うことにより、クライアントPC99が印刷のために接続したプリンタに応じて能力を変更し、接続されたプリンタ専用のプリンタドライバとほぼ同等の機能を提供する(印刷設定画面を表示する)。
このように、プリンタドライバが接続しているプリンタに合わせた設定項目をユーザに提示するためには、プリンタから機器情報を取得したり双方向通信することが不可欠である。
機種共通ドライバかどうかに関係なく、双方向通信するために管理者はプリンタドライバをインストール後に、使用したいプリンタが接続されているIPアドレスをポートに設定する。そして、プリンタドライバの画面から管理者が手動で双方向通信を開始することで、機器情報をプリンタドライバに反映させる。
ここで、プリンタから取得した機器情報に関する設定を管理者が手動で変更することも可能である。そこで、プリンタアイコンが接続しているプリンタから取得したプリンタの構成情報と、管理者が手動で設定を変更して保存できる機器情報とを適切に共存させる技術が考案されている(例えば、特許文献1参照。)。特許文献1には、プリンタドライバが接続しているプリンタと通信することにより、最新の構成情報を取得してUI表示用の構成情報とは別の領域に格納しておき、ユーザが手動で設定していない項目だけをUI表示用の構成情報の領域に上書きする情報処理装置が開示されている。
しかしながら、特許文献1では、プリンタドライバのアップグレード時に取得された機器情報を適切に保存できないという問題がある。以下、説明する。
図1に示すようにサーバPC100に複数のプリンタ50が接続されており、プリンタ50ごとにプリンタアイコンが作成されている場合、管理者が1つずつプリンタアイコンを手動で設定することは時間がかかるため好ましくない。
このような不都合に対し、プリンタドライバをインストールする際に、プリンタドライバがインストール処理の中で出力ポートに設定されているプリンタ50と双方向通信を行い、機器情報を取得してプリンタドライバに反映する技術が知られている。以下、この技術をインストール時双方向通信と称する。なお、同様の技術はアップグレード時にも適用される。
インストール時双方向通信を使用することにより、管理者がプリンタドライバをインストール後、プリンタドライバの画面からプリンタの情報を取得する操作を行わなくても、機器情報をプリンタドライバに反映することが可能である。
しかしながら、同様の仕組みをアップグレード時にも適用しようとすると、管理者がプリンタドライバのバージョンをアップグレードする際に取得した機器情報をプリンタドライバに反映できない。
以下、図2を用いて説明する。図2は、プリンタドライバのアップグレードの概略の手順を模式的に示す。アップグレードはWindows(登録商標。以下、省略する。)との親和性を確保するために推奨されている以下の手順で行われる。OSに標準搭載されているアップグレード用の機能が利用されるため、プリンタドライバの提供元やプリンタドライバの種類を問わず以下の手順で行われる。
1.管理者は図2(a)に示すプリンタドライバのデバイスプロパティ画面501を開く。デバイスプロパティ画面501は、アップグレード時に使用される他、管理者がオプション構成(接続されているフィニッシャー、保有しているトレイと各トレイに格納されている用紙などの対応などの情報)を変更したりするための画面である。
2.「新しいドライバ」ボタン503を押下する。
3.管理者は新しいバージョンのプリンタドライバパッケージに同梱されているinfファイル(ソフトウェアのインストール用の設定が記述されたファイル)へのパスを指定する(図2(b))。
4.アップグレードを開始する。
5.アップグレードが終了したら、図2(c)のデバイスプロパティ画面501に戻るためOKボタン504を押下してデバイスプロパティ画面501を閉じる。
1.管理者は図2(a)に示すプリンタドライバのデバイスプロパティ画面501を開く。デバイスプロパティ画面501は、アップグレード時に使用される他、管理者がオプション構成(接続されているフィニッシャー、保有しているトレイと各トレイに格納されている用紙などの対応などの情報)を変更したりするための画面である。
2.「新しいドライバ」ボタン503を押下する。
3.管理者は新しいバージョンのプリンタドライバパッケージに同梱されているinfファイル(ソフトウェアのインストール用の設定が記述されたファイル)へのパスを指定する(図2(b))。
4.アップグレードを開始する。
5.アップグレードが終了したら、図2(c)のデバイスプロパティ画面501に戻るためOKボタン504を押下してデバイスプロパティ画面501を閉じる。
上記の手順の場合、アップグレード前に管理者がプリンタドライバの例えばオプション構成ボタン502を押下して行った様々な設定情報がアップグレード後の新しいバージョンのプリンタドライバに引き継がれる。また、図1に示したようにクライアントPCが多数存在している場合でも、サーバPCのプリンタドライバさえアップグレードすれば、自動的にクライアントも同期される。すなわち、クライアントPCの各々の設定はそのまま引き継ぎつつ、プリンタドライバのバージョンをアップグレードすることが可能である。
上記手順にはこのような利便性があることから、管理者は新しいバージョンのプリンタドライバを導入する際に古いバージョンのプリンタドライバをアンインストールしてから、新しいバージョンのプリンタドライバをインストールするという手順を踏むことはまれである。
しかし、プリンタドライバのアップグレード時には、インストール時双方向通信のように自動的に接続されているプリンタの機器情報を取得し、プリンタドライバにそれを反映することはできない。
図3を用いてその理由を説明する。図3は、プリンタドライバのアップグレード時のOSとプリンタドライバ間のシーケンス図の一例である。なお、図3は説明ために実際にOSとプリンタドライバ間で行われる手順よりも簡略化されている。また、2本線はOSから新しいプリンタドライバへの矢印で、1本線はOSから古いプリンタドライバへの矢印である。
アップグレード時に接続されているプリンタの情報を取得できない理由は、端的には、OSから呼ばれるアップグレード時のシーケンスが複雑なためである。
S1:プリンタドライバは例えば新しいバージョンのプリンタドライバを呼び出す。
S2:アップグレード時(図2(b))には、OSは新しいバージョンのプリンタドライバに対してDrvUpgradePrinterというDDIコールを通知する。
S2.1:このDDIコールに対し、新しいバージョンのプリンタドライバはDDIコールされたタイミングでプリンタと双方向通信して機器情報を取得する等、必要な更新処理を行う。
S3、S4:ステップS2.1で取得した機器情報を新しいバージョンのプリンタドライバに合わせて変換するなどの処理を行い、レジストリなどに機器情報を保存する。
S5:アップグレードが終了し、管理者がデバイスプロパティ画面501のOKボタン504を押下して閉じる際(図2(c))、OSは古いバージョンのプリンタドライバに対しDrvDevicePropertySheetsというDDIコールを通知する(キャンセルボタン505が押下された場合はこのDDIコールは通知されない。)。すなわち、図2(c)のデバイスプロパティ画面501は古いバージョンのプリンタドライバによるものである。このため、古いバージョンのプリンタドライバがすでに保持している設定情報(管理者がオプション構成の変更等ができるように保持されている機器情報や印刷設定)がレジストリなどに保存されてしまい、新たに取得した機器情報が上書きされてしまう。
S1:プリンタドライバは例えば新しいバージョンのプリンタドライバを呼び出す。
S2:アップグレード時(図2(b))には、OSは新しいバージョンのプリンタドライバに対してDrvUpgradePrinterというDDIコールを通知する。
S2.1:このDDIコールに対し、新しいバージョンのプリンタドライバはDDIコールされたタイミングでプリンタと双方向通信して機器情報を取得する等、必要な更新処理を行う。
S3、S4:ステップS2.1で取得した機器情報を新しいバージョンのプリンタドライバに合わせて変換するなどの処理を行い、レジストリなどに機器情報を保存する。
S5:アップグレードが終了し、管理者がデバイスプロパティ画面501のOKボタン504を押下して閉じる際(図2(c))、OSは古いバージョンのプリンタドライバに対しDrvDevicePropertySheetsというDDIコールを通知する(キャンセルボタン505が押下された場合はこのDDIコールは通知されない。)。すなわち、図2(c)のデバイスプロパティ画面501は古いバージョンのプリンタドライバによるものである。このため、古いバージョンのプリンタドライバがすでに保持している設定情報(管理者がオプション構成の変更等ができるように保持されている機器情報や印刷設定)がレジストリなどに保存されてしまい、新たに取得した機器情報が上書きされてしまう。
このように、OSの仕組みにより管理者にとって利便性が高いアップグレードでは、プリンタドライバがプリンタから取得した機器情報を新しいプリンタドライバに反映できないという問題がある。また、機器情報を取得するモジュールはアップグレード後のものであるのに対し、デバイスプロパティ画面501が閉じられる際に設定情報を上書きするモジュールはアップグレード前のものなので、両者は直接の通信ができない。このため特許文献1に開示された技術ではアップグレード時の機器情報の取得に対応できない。
また、このような問題のため、以下のような不都合をもたらす。
プリンタドライバのバグが修正された場合、プリンタドライバの提供元がリリースする新しいバージョンにアップグレードすることにより不具合が修正される。不具合が修正されることにより、ユーザ環境等の理由で使用が許可されていなかったプリンタが使用可能になる場合がある。例えば、プリンタBが使用可能になったとする。このような場合に使用していないプリンタアイコン(プリンタAとする)からアップグレードすると、アップグレードの前後で、プリンタAの機器情報が設定されたプリンタアイコンにプリンタBが接続される状況が生じる。プリンタBが使用可能になったとすると、プリンタAのプリンタアイコンにアップグレードによりプリンタBの機器情報が反映されるが、上記のようにプリンタAの設定情報で上書きされてしまう。したがって、アップグレードに伴い、接続されているプリンタBの情報をプリンタAのプリンタアイコンに管理者が反映させるという不要な処理が生じるおそれがある。
この他にも、アップグレードにより機能が向上する場合があるが、その場合にも新しい機能をプリンタドライバに反映させるという不要な処理が生じるおそれがある。例えば、使用されているプリンタドライバが、提供元がリリースする最新機種や、最新機能に対応したプリンタドライバにアップグレードされる場合がある。
それまでのバージョンではプリンタドライバが最新機種や、最新機能に未対応だったためユーザがジェネリックモードで使わざるを得なかった機種についても、機種共通ドライバがアップグレードされればユーザは機種専用の印刷設定画面か印刷設定できる。なお、ジェネリックモードとは、機種共通ドライバがサポートしているプリンタ機種のうち、汎用性の高い共通機能のみを使用できるように印刷設定画面を表示する動作モードである。
この場合、プリンタアイコンに接続されるプリンタがアップグレード前後で同じだとしても、アップグレード時の双方向通信で取得された機器情報は古いバージョンのプリンタドライバに上書きされてしまう。このため、アップグレードに伴い、別途、機器情報を取得し、プリンタ名やオプション構成をもとに設定可能項目を管理者が設定する必要がある。
本特許は上記問題に鑑み、アップグレードの際に機器から取得した機器情報を機器ドライバに反映させることができるプログラムを提供することを目的とする。
本発明は、機器へ処理を要求する情報処理装置を、プログラムのアップグレードが開始されたことを契機に機器から機器情報を取得する際、前記機器情報を取得できたか否かを通信記録情報として記録する情報取得手段と、前記情報取得手段が取得した前記機器情報を記憶部に記憶させる情報記憶手段と、アップグレードの終了後、前記機器の機能が設定されている設定情報を前記記憶部に反映させる情報反映手段と、として機能させ、前記情報反映手段は、前記設定情報を前記記憶部に反映させる際、前記通信記録情報の記録内容に応じて、前記記憶部に記憶された前記機器情報に前記設定情報を反映させるか否かを判断する。
アップグレードの際に機器から取得した機器情報を機器ドライバに反映させることができるプログラムを提供することができる。
以下、本発明を実施するための形態について図面を参照しながら説明する。
まず、図4を用いて本実施形態のプリンタドライバ30の動作の概略を説明する。図4は、本実施形態のプリンタドライバ30によるアップグレード時の機器情報の取得について説明する図の一例である。
(1)古いプリンタドライバ30はアップグレード後の新しいプリンタドライバ30にプリンタ50から機器情報19を取得させる。
(2)新しいプリンタドライバ30は機器情報19を取得すると機器情報19を取得した旨の情報510を記録しておく(後述するisUpgradeBidiを記録する)。
(3)また、新しいプリンタドライバ30は取得した新しい機器情報19をレジストリ21に反映させておく。
(4)アップグレードが終了すると制御が古いプリンタドライバ30に戻り、古いプリンタドライバ30は機器情報19を取得した旨の情報510を参照する。
(5)そして、機器情報19を取得した旨の情報510があれば、古いプリンタドライバ30は自分が管理する設定情報28(古い機器情報が含まれる)をレジストリ21に反映させない。これにより、新しいプリンタドライバ30が取得した機器情報19が上書きされることが防止できる。機器情報19を取得した旨の情報510がない場合には、アップグレードされていないので、古いプリンタドライバ30は自分が管理する設定情報28(古い機器情報が含まれる)をレジストリ21に反映させればよい。
(1)古いプリンタドライバ30はアップグレード後の新しいプリンタドライバ30にプリンタ50から機器情報19を取得させる。
(2)新しいプリンタドライバ30は機器情報19を取得すると機器情報19を取得した旨の情報510を記録しておく(後述するisUpgradeBidiを記録する)。
(3)また、新しいプリンタドライバ30は取得した新しい機器情報19をレジストリ21に反映させておく。
(4)アップグレードが終了すると制御が古いプリンタドライバ30に戻り、古いプリンタドライバ30は機器情報19を取得した旨の情報510を参照する。
(5)そして、機器情報19を取得した旨の情報510があれば、古いプリンタドライバ30は自分が管理する設定情報28(古い機器情報が含まれる)をレジストリ21に反映させない。これにより、新しいプリンタドライバ30が取得した機器情報19が上書きされることが防止できる。機器情報19を取得した旨の情報510がない場合には、アップグレードされていないので、古いプリンタドライバ30は自分が管理する設定情報28(古い機器情報が含まれる)をレジストリ21に反映させればよい。
このように本実施例のプリンタドライバ30は、デバイスプロパティ画面501が閉じられる際に、機器情報19を取得したかどうかの記録を参照する。これにより、古いバージョンのプリンタドライバ30で保持している設定情報28を保存するか又はしないかを制御できる。したがって、レジストリ21の新しい機器情報19が上書きされることを防止できる。
<構成例>
図5は、本実施形態に係る印刷システム1の構成図の一例を示す。印刷システム1は、ネットワーク2を介して接続されたPC10、及び、複数のプリンタ50を有している(以下、区別する場合はそれぞれをプリンタ50−n(nは自然数)と記載する)。
図5は、本実施形態に係る印刷システム1の構成図の一例を示す。印刷システム1は、ネットワーク2を介して接続されたPC10、及び、複数のプリンタ50を有している(以下、区別する場合はそれぞれをプリンタ50−n(nは自然数)と記載する)。
ネットワーク2は主に社内LANであるが、WAN又はインターネットを含んでいてもよい。また、ネットワーク2は全てが有線で構築されていてもよいし、一部又は全てが無線LAN、Bluetooth(登録商標)、などの無線にて構築されていてもよい。また、PC10とプリンタ50との間の接続は、ネットワーク2に限られず、例えばシリアル通信でPC10とプリンタ間を一連に接続してもよい。
PC10ではOS(Operating System)及びプリンタドライバ30が動作すると共に文書作成ソフトなどの後述するアプリケーションソフトが動作する。PC10はプリンタドライバ30が動作する情報処理装置の一例である。したがって、PC10以外でもプリンタドライバ30が動作するのであれば、タブレット型端末、携帯電話、スマートフォン、PDA(Personal Digital Assistant)、ウェアラブルPC、ゲーム機器、カーナビゲーション端末、プロジェクタなどの投影装置、又は、電子黒板などでもよい。
なお、PC10は図1におけるサーバPC100に相当するが、クライアントPC99でもよい。クライアントPC99でもプリンタドライバ30のアップグレードは可能である。一方、PC10がサーバPCであれば、プリンタドライバ30のアップグレードがクライアントPCにも反映されるという優位性がある。また、本実施例では極力、サーバPC100を管理する者を管理者と、クライアントPC99を操作する者をユーザと称するが、両者は厳密に区別されなくてよい。
プリンタ50は、PC10からの印刷指示に従って動作する画像形成装置である。印刷方式は、電子写真方式又は液滴吐出方式のどちらでもよいし、これら以外でもよい。また、プリンタ50は画像形成機能を有していれば、スキャナ機能、コピー機能、複写機能、FAX機能などの1つ以上を備えていてよく、スキャナ装置、コピー機、複写装置、FAX装置又は複合機などと呼ばれていてもよい。
図5では、説明の便宜上、PC10は1台のみを示すものであるが、PC10の数はこれに限られず、PC10は複数台でもよい。
<<ハードウェア>>
(PC)
図6は、PC10のハードウェア構成図の一例を示す。PC10は、それぞれバス110で相互に接続されているCPU101、ROM102、RAM103、外部I/F104、通信装置105、入力装置106、ディスプレイI/F107及び記憶装置108を有する。CPU101は、OS、アプリケーションソフト、及び、プリンタドライバ30を記憶装置108から読み出して、RAM103を作業メモリにして実行する。
(PC)
図6は、PC10のハードウェア構成図の一例を示す。PC10は、それぞれバス110で相互に接続されているCPU101、ROM102、RAM103、外部I/F104、通信装置105、入力装置106、ディスプレイI/F107及び記憶装置108を有する。CPU101は、OS、アプリケーションソフト、及び、プリンタドライバ30を記憶装置108から読み出して、RAM103を作業メモリにして実行する。
RAM103は必要なデータを一時保管する作業メモリ(主記憶メモリ)であり、ROM102はIPL(Initial Program Loader)やBIOSなどを記憶している。
外部I/F104はUSBケーブル等のケーブルや、可搬型の記憶媒体111を装着するインタフェースである。通信装置105は、LANカードやイーサネット(登録商標)カードであり、CPU101からの指示によりサーバ70やプリンタ50に印刷データを送信する。
入力装置106は、キーボード、マウスなど、ユーザの様々な操作指示を受け付けるユーザインタフェースである。タッチパネルや音声入力装置を入力装置とすることもできる。ディスプレイI/F107は、アプリケーションソフトが指示する画面情報に基づき所定の解像度や色数等でディスプレイ120に画面を描画する。ディスプレイ120(表示装置の一例)は、液晶や有機ELなどのFPD(Flat Panel Display)である。
記憶装置108は、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発メモリを実体とし、OS、プリンタドライバ30、及び、アプリケーションソフトを記憶している。
記憶媒体111は、例えば、SDカードやUSBメモリ、CD−ROMなど不揮発性のメモリである。OS、アプリケーションソフト、及び、プリンタドライバ30は、記憶媒体111に記録された状態又はプログラム配信用のサーバからダウンロードされる態様で配布される。
<機能構成>
次に、図7を用いて、PC10の機能構成について説明する。図7は、PC10の機能ブロック図の一例である。
次に、図7を用いて、PC10の機能構成について説明する。図7は、PC10の機能ブロック図の一例である。
<<PCの各機能構成>>
PC10は、アプリケーションソフト11、OS12、プリンタドライバ30及び通信部13を有する。アプリケーションソフト11は、プリンタドライバ30を呼び出してプリンタ50に印刷要求するものであればよい。アプリケーションソフト11はアプリケーションソフト11に応じた機能を備えている。例えば、ワープロ機能、ブラウザ機能などであるがどのような機能を有していてもよい。
PC10は、アプリケーションソフト11、OS12、プリンタドライバ30及び通信部13を有する。アプリケーションソフト11は、プリンタドライバ30を呼び出してプリンタ50に印刷要求するものであればよい。アプリケーションソフト11はアプリケーションソフト11に応じた機能を備えている。例えば、ワープロ機能、ブラウザ機能などであるがどのような機能を有していてもよい。
OS12は例えばWindows(登録商標。以下、省略する)シリーズのOSであり、PCがサーバPCであればサーバ用のWindowsが動作しており、クライアントPCではクライアント用のWindowsが動作している。WindowsシリーズのOS12としたのは本願のプリンタドライバ30が奏する効果がWindowsシリーズのOSに対し有効であるためである。また、WindowsシリーズのOSであればポイントアンドプリントを利用できる。しかしながら、OS12が必ずWindowsシリーズのOSである必要はなく、本実施形態のプリンタドライバ30が行うアップグレードが可能なOSであればよい。
OS12が有するGDI(Graphics Device Interface)23はOS12のモジュールの1つであり、OS12と一体であっても、OS12とは別に提供される機能であってもよい。GDI29はプリンタ50やディスプレイなどの表示デバイスの制御に用いられる体系的なAPIの総称である。GDI29はプリンタドライバ30がOS12と通信するためのインタフェース(API)となる。
プリンタドライバ30は、アプリケーションソフト11が作成した文書データ(文書が記述されたものには限られず、印刷可能なすべてのデータをいう)やPC10の記憶装置108に記憶された文書データから印刷データを作成してプリンタ50に送信する。印刷データはPDL(Page Description Language)で記述されたものでもよいし、レンダリングされた画像データの形式でもよい。
プリンタドライバ30は、さらに描画部15、画面表示部16、及び、設定管理モジュール17を有している。プリンタドライバ30が有する各部は、図6に示されている各構成要素のいずれかが記憶装置108からRAM103上に展開されたプリンタドライバ30やOS12に従ったCPU101からの命令によって動作することで実現される機能又は手段である。プリンタドライバ30についての詳細は後述する。
通信部13は、図6に示されているCPU101からの命令及び通信装置105によって実現され、ネットワーク2を介してプリンタ50と各種データの送受信を行う。
また、PC10は、図6に示されているCPU101及び記憶装置108等によって構築される不揮発性の記憶部14を有している。記憶部14にはレジストリ21、ローカルファイル23及び設定内容保存ファイル22が記憶又は構築されている。
レジストリ21は、WindowsシリーズのOS12においてシステムやアプリケーションソフトの設定データが記録される記憶領域である。プリンタドライバ30の設定もレジストリ21に保持される。レジストリ21はWindowsシリーズのOS12の用語なので、他のOSではレジストリに対応する記憶領域があり、レジストリ21と呼ばれていなくてもよい。
レジストリ21には機器情報19と印刷設定27が記憶されるものとする。機器情報19の具体例については後述する。機器情報19はプリンタドライバ30がプリンタ50から取得したプリンタ50の機能(保有するトレイ、フィニッシャー、両面印刷機能など)に関する情報である。印刷設定27はユーザが印刷のために設定する用紙サイズや部数などの設定であり、ユーザが最後に設定した内容や初期の設定が保存されている。レジストリ21の機器情報19と印刷設定27は図8にて説明するプリンタアイコンに設定される。これによりユーザはPC10においてプリンタアイコンをプリンタ50として扱える。
ローカルファイル23は、OS12のファイルシステムにより管理されている一般的なファイルである。ファイルに格納されるデータはアプリケーションソフト等により様々である。また、プリンタドライバ30が使用する機器情報19や印刷設定27がローカルファイル23に記憶されてもよい。このようなローカルファイル23として、例えば、iniファイル(アプリケーションソフトの情報ファイル)が知られているがこれに限るものではない。
設定内容保存ファイル22にはプリンタドライバ30のアップグレード時にプリンタドライバ30がプリンタ50と双方向通信をしたか否かの情報が記載される。
なお、アップグレード時にプリンタ50との双方向通信に成功したか否かの情報は、レジストリ21やローカルファイル23に記憶されてもよい。プリンタドライバ30が読み書きできる記憶領域に記憶されていればよい。
続いて、プリンタドライバ30の各機能について説明する。本実施例では、プリンタドライバ30がアップグレードされる際の処理が説明されるため、プリンタドライバ30の一部機能ではアップグレードされる前とされた後の機能の2つが存在する。図では説明の便宜上、アップグレードの前後で設定管理モジュール17が2つ存在するものとする。設定管理モジュール17は、現在インストールされているプリンタドライバ30のバージョンをレジストリ21などから読み出して、自分のバージョン情報と比較する。自分のバージョン情報は設定管理モジュール17が保持している。そして、自分が古いバージョンなのか新しいバージョンなのかを認識することにより、振る舞いを変える。つまり、設定管理モジュール17は古いバージョン用の機能と新しいバージョン用の機能を備えている。
設定管理モジュール17以外の描画部15や画面表示部16などについてはアップグレードの対象となるかどうかで2つ存在するか否かが変わるが、本実施形態の説明において描画部15や画面表示部16の数は1つ又は2つのどちらでも支障はないものとする。
プリンタドライバ30の描画部15は図6に示されているCPU101からの命令等により実現され、ユーザが設定した印刷設定27を参照する。そして、アプリケーションソフト11によって作成された印刷対象の文書データから印刷設定27を反映した印刷データを作成する。印刷データには描画データ(例えばPDLデータ)と制御データ(例えばPJLの印刷コマンド)が含まれる。
画面表示部16は図6に示されているCPU101からの命令及びディスプレイI/F107等によって実現され、ユーザがアプリケーションソフト11に対して文書の印刷操作を入力することで、印刷設定画面をディスプレイ120に表示する。なお、画面表示部16は機器情報19を参照することで、プリンタ50が有する機能のみをユーザが選択可能な印刷設定画面を表示する。ユーザは、印刷設定画面に対し、用紙サイズ、白黒/カラー、両面・集約・製本・変倍、ステープルやパンチ、部数等の印刷に関する印刷設定を行うことができる。画面表示部16はユーザからの印刷設定27を受け付け、レジストリ21に記憶させる。また、図2に示した基本的なアップグレード処理などはこの画面表示部16が行う。
また、画面表示部16は描画部15と直接的な通信ができない。このため、画面表示部16と描画部15はGDI29を介して通信する。また、描画部15は印刷設定27を参照して印刷データを作成するが、印刷設定27はDevModeなどの構造体に格納され、印刷設定27はGDI29を介して画面表示部16と描画部15間でやりとりされる。
画面表示部16は、印刷設定画面の他、図2のデバイスプロパティ画面501を作成してディスプレイ120に表示する。作成の際、画面表示部16はレジストリ21の機器情報19及び印刷設定27を使用する。このため、画面表示部16は機器情報19及び印刷設定27のコピーを一時的にキャッシュしている。また、ユーザが印刷設定を変更したり、キャッシュしている機器情報19のオプション構成を変更すると、コピーされている機器情報19及び印刷設定27はレジストリ21の機器情報19及び印刷設定27と異なったものとなる。本実施例ではこの画面表示部16が一時的にキャッシュしている機器情報19及び印刷設定27を設定情報28と称することにする。設定情報28は図6のRAM103や記憶装置108に記憶される。
設定管理モジュール17はさらに設定取得部24、設定反映部25、及び、設定管理部26を有している。設定取得部24は、図6に示されているCPU101からの命令等によって実現され、新しいバージョンの場合にのみ動作する。設定取得部24はプリンタ50と双方向通信を行い、その時点での最新の機器情報19を取得する。具体的には機器名、プリンタ50と接続されているフィニッシャー(フィニッシャーがある場合はフィニッシャーの種類)、トレイの種類、各トレイにセットされている用紙サイズなどが取得できる。設定取得部24は双方向通信に成功し機器情報19を取得できた場合は、設定内容保存ファイル22に「isUpgradeBidi=true」を記載する。なお、設定取得部24がアップグレード前の古いバージョンの場合、設定取得部24は何もしない。
設定反映部25は図6に示されているCPU101からの命令等によって実現され、新しいバージョンの場合にのみ動作する。設定反映部25は、設定取得部24が取得した機器情報19をレジストリ21に記憶させる(プリンタアイコンに反映させる)。なお、設定反映部25がアップグレード前の古いバージョンの場合、設定反映部25は何もしない。
設定管理部26は図6に示されているCPU101からの命令等によって実現され、古いバージョンの場合にのみ動作する。設定管理部26は、設定取得部24がアップグレード時の双方向通信をしたか否かを設定内容保存ファイル22に基づいて判定する。双方向通信していれば、設定管理部26は設定情報28をレジストリ21に保存しない。
<プリンタアイコン>
図8はプリンタアイコン40の一例を示す図である。プリンタアイコン40は、プリンタ50と対応づけられたプリンタドライバの実体である。プリンタアイコン40はプリンタ50のIPアドレスなどでプリンタ50と紐づけられ、プリンタ50から取得された機器情報とユーザがプリンタ50に処理内容を指示する印刷設定が設定される。
図8はプリンタアイコン40の一例を示す図である。プリンタアイコン40は、プリンタ50と対応づけられたプリンタドライバの実体である。プリンタアイコン40はプリンタ50のIPアドレスなどでプリンタ50と紐づけられ、プリンタ50から取得された機器情報とユーザがプリンタ50に処理内容を指示する印刷設定が設定される。
PC10にプリンタドライバ30がインストールされた場合、プリンタ50を視覚的に表示するために図示するようなプリンタ50を表す画像データも例えばローカルファイル23などにインストールされる。あるいは、予めこのような画像がOS12に用意されている。
プリンタドライバ30は画像データに自分が対応するプリンタ50のモデル名などを付与し、また、管理者側でモデル名などを編集できる。また、プリンタアイコン40にはプリンタ50の機器情報19及び印刷設定27が紐づけられる。この機器情報19は、インストール時双方向通信により取得されプリンタドライバ30のインストールと共にPC10に格納される(本実施例ではレジストリに格納される)。アップグレードされた場合は、プリンタ50から取得された機器情報19がレジストリ21に格納される。印刷設定27はインストールと共にレジストリ21に格納されたものか又はユーザが最後に設定したものがプリンタアイコン40に設定される。
これによりプリンタアイコン40は、単なる画像データでなくプリンタドライバ30が対応するプリンタ50の機能や設定を保持するようになり、ユーザはPC10のプリンタアイコン40を実際のプリンタ50のように扱うことができる。例えば、プリンタアイコン40をダブルクリックすることなどによりプリンタ50の機器情報19を表示させることができる。
また、プリンタアイコン40はプリンタドライバ30の実体なので、プリンタドライバ30のアップグレードは、プリンタアイコンのアップグレードを伴う。したがって、同一のプリンタドライバ30から複数のプリンタアイコンが作成されている場合は、すべてのプリンタアイコンがアップグレードされる。
<処理の詳細>
図9は、プリンタドライバ30がアップグレードされる際の機器情報19の保存手順などを示すフローチャート図の一例である。図9の手順は管理者がプリンタドライバ30のアップグレードを開始することでスタートする。また、上記のようにプリンタドライバ30はプリンタアイコン40と紐付いており、プリンタアイコン40はプリンタ50と紐付いている。図9では、アップグレード前の古いバージョンのプリンタドライバ30を「ドライバV1.0」、アップグレード後の新しいバージョンのプリンタドライバ30を「ドライバV2.0」とする。
図9は、プリンタドライバ30がアップグレードされる際の機器情報19の保存手順などを示すフローチャート図の一例である。図9の手順は管理者がプリンタドライバ30のアップグレードを開始することでスタートする。また、上記のようにプリンタドライバ30はプリンタアイコン40と紐付いており、プリンタアイコン40はプリンタ50と紐付いている。図9では、アップグレード前の古いバージョンのプリンタドライバ30を「ドライバV1.0」、アップグレード後の新しいバージョンのプリンタドライバ30を「ドライバV2.0」とする。
まず、管理者は「ドライバV1.0」のプリンタドライバ30と紐づけられたプリンタアイコン40を右クリックするなどしてメニューを表示させ、図2のデバイスプロパティ画面501を表示させる(S10)。
管理者は図2に示したようにデバイスプロパティ画面501の「新しいドライバ」ボタン503を押下する(S20)。これを契機にして「ドライバV1.0」のプリンタドライバ30はアップグレードを開始する。また、管理者により指定された「ドライバV2.0」のinfファイルへのパスにより、「ドライバV2.0」のプリンタドライバ30が起動する。
プリンタドライバ30のアップグレードが開始したことがOS12に伝えられると、OS12の仕組みとしてOS12はDrvUpgradePrinterというDDIコールをプリンタドライバ30に通知する。「ドライバV2.0」のプリンタドライバ30はそのDDIコールが呼ばれたときの処理(アップグレードに必要な引き継ぎ処理など)を開始する。本実施形態では、引き継ぎ処理の一つとして設定取得部24がプリンタアイコン40と紐づけられているプリンタ50と双方向通信を行い、プリンタ50の最新の機器情報19を取得する(S30)。表2を用いて双方向通信で得られる機器情報19について説明する。
ModelName…プリンタ50のモデル名を意味する。プリンタXがモデル名である。
Tray…プリンタ50に接続されているトレイを意味する。1,2,BypassはそれぞれTray1、Tray2、手差しトレイを意味する。
Finisher1…プリンタ50に接続されているフィニッシャーを意味する。onはFinisher1が接続されていることを意味する。
DuplexUnit…プリンタ50に接続されている両面印刷ユニットを意味する。OffはDuplexUnitが接続されていないことを意味する。
双方向通信に成功しない場合(S40のNo)、設定取得部24は設定内容保存ファイル22に、アップグレード時に双方向通信をしたが失敗したことを示す「isUpgradeBidi=false」を記載する(S70)。この後、処理はステップS80に進む。
双方向通信に成功した場合(S40のYes)、設定取得部24は設定内容保存ファイル22に、アップグレード時に双方向通信をして成功したことを示す「isUpgradeBidi=true」を記載する(S50)。
次に、設定反映部25は、機器情報19や印刷設定27などが記憶される記憶領域(本実施例ではレジストリ21)に、ステップS30で取得された機器情報19を反映させる(S60)。詳細は図10にて説明する。本実施例ではレジストリ21に最新の機器情報19が記憶され、かつ、印刷設定27も更新されてレジストリ21に記憶される。
機器情報19のレジストリ21への反映が完了したら、「ドライバV2.0」へのアップグレードは終了である。
続いて、「ドライバV1.0」のデバイスプロパティ画面501が表示されるので、管理者は図2に示したOKボタン504を押してデバイスプロパティ画面501を閉じる(S80)。デバイスプロパティ画面501が閉じられる場合、OS12の仕組みとしてOS12はDrvDevicePropertySheetsというDDIコールをプリンタドライバ30に通知する。このDDIコールは、OKボタン504でデバイスプロパティ画面501を閉じるときに必ず呼ばれる関数である。つまり、OKボタン504でデバイスプロパティ画面501が閉じられれば、アップグレードの有無に関係なくDDIコールが通知される。このため、プリンタドライバ30はアップグレード後にOKボタン504で閉じられたのか、OKボタン504で閉じられてもアップグレード以外で(例えばオプション構成の変更後)閉じられたのか)を判断できない。
管理者がオプション構成を変更した場合、変更した内容をレジストリ21に保存する必要がある。しかし、アップグレード時は変更した内容ではなく、「ドライバV2.0」のプリンタドライバ30が双方向通信して取得した機器情報19を優先させてレジストリ21に保存する必要がある。このため、アップグレード時に双方向通信が行われたか否かの情報が設定内容保存ファイル22に記載されていることが有効になる。
DrvDevicePropertySheetsというDDIコールを通知された「ドライバV1.0」の設定管理部26は設定内容保存ファイル22から「isUpgradeBidi」という記載を取得する(S90)。
設定内容保存ファイル22に「isUpgradeBidi=true」と記載されている場合(S100のYes)、機器情報19を取得してアップグレードが終了しデバイスプロパティ画面501が閉じられたことを示している。このため、設定管理部26は設定情報28をレジストリ21に保存しない(S120)。これにより、レジストリ21に反映されているアップグレード時の双方向通信により取得された機器情報19が、古いバージョンの機器情報19や印刷設定27で上書きされることを防止できる。
次に、設定取得部24は設定内容保存ファイル22の記載を消去する(S130)。つまり、「isUpgradeBidi=true」という記載の全体が消去される。これにより、次回のアップグレード時の双方向通信に備えることができる。
設定内容保存ファイル22に「isUpgradeBidi=false」と記載されている場合又は「isUpgradeBidi」の記載そのものがない場合(S100のNo)、少なくとも機器情報19がレジストリ21に記憶されていない。このため、画面表示部16が受け付けたオプション構成などの変更が含まれる設定情報28を設定管理部26がレジストリ21に保存する(S110)。
設定取得部24は設定内容保存ファイル22の記載を消去する(S130)。つまり、「isUpgradeBidi=false」という記載があっても全体を消去する。以上で、図9の処理が終了する。
なお、アップグレードの終了により「ドライバV1.0」の設定管理モジュール17やその他の古いプリンタドライバ30のモジュールはOS12により消去される。
<機器情報のプリンタドライバへの反映>
図9で説明したステップS60の処理について、図10を用いて説明する。図10は設定取得部24がプリンタ50から取得した機器情報19のレジストリ21への反映例を示す図である。図10(a)はアップグレード前のレジストリ21に記憶されている機器情報19を示し、図10(b)はアップグレード前のレジストリ21に記憶されている印刷設定27の一例を示す。この印刷設定27は最後にユーザが設定した印刷設定27又はユーザが使用していなければ初期設定のままの印刷設定27である。
図9で説明したステップS60の処理について、図10を用いて説明する。図10は設定取得部24がプリンタ50から取得した機器情報19のレジストリ21への反映例を示す図である。図10(a)はアップグレード前のレジストリ21に記憶されている機器情報19を示し、図10(b)はアップグレード前のレジストリ21に記憶されている印刷設定27の一例を示す。この印刷設定27は最後にユーザが設定した印刷設定27又はユーザが使用していなければ初期設定のままの印刷設定27である。
図10(a)の機器情報19によればプリンタ50はトレイとして、Tray1と手差しトレイを有している。図10(b)の印刷設定27ではTray1と手差しトレイのうちTray1が設定されている。また、機器情報19によればFinisher1はoffなので、印刷設定27においてもStapleとPunchはoffが設定されている。また、機器情報19によればDuplexUnitはonであり、印刷設定27においてはOpentoLeft(右閉じ用に両面印刷)が設定されている。
図10(c)はアップグレード後のレジストリ21に記憶されている機器情報19を示し、図10(d)はアップグレード後のレジストリ21に記憶されている印刷設定27の一例を示す。図10(c)の機器情報19は表2のものと同じであり、それがそのままレジストリ21に記憶されている。
しかし、機器情報19が変更されるとそれに伴い印刷設定27も変更する必要がある。変更しないとユーザが選択できない印刷設定27が印刷設定画面で表示され、プリンタ50が対応していない印刷設定27がプリンタ50に送信されるおそれが生じるためである。
図10(c)によればModelName(モデル名)が変更されているが、モデル名は印刷設定27には含まれないので図10(d)の印刷設定27に関しモデル名は反映されない。図10(c)の機器情報19ではTray2が追加されたが、印刷設定27ではTray1が設定されているため印刷設定27には変更がない。また、図10(c)のFinisher1がonになっているが、印刷設定27でもフィニッシャーは設定されていないので(ユーザが選択していないため自動的には設定しない)、印刷設定27のStapleとPunchはoffのままでよい。これに対し、図10(c)の機器情報19ではDuplexUnitがoffとなっているためプリンタ50はDuplex機能を使えない。このため、印刷設定27のDuplexはアップグレード後の設定反映部25によってoffに変更される。
このように、プリンタドライバ30はアップグレード時に取得された機器情報19により印刷設定27を更新することができる。
以上説明したように、本実施例のプリンタドライバ30は、デバイスプロパティ画面501が閉じられる際に、設定内容保存ファイル22を参照することで、古いバージョンのプリンタドライバ30が保持している設定情報28を保存するかしないかを制御できる。このため、古いバージョンのプリンタドライバ30が、新しいバージョンのプリンタドライバ30が取得した機器情報19を上書きすることを防止できる。また、アップグレード時の双方向通信の結果を印刷設定27に反映できるため、アップグレードにより変更になったプリンタ50の状態や新しくサポートするようになった機能をユーザが選択できるようになりユーザが期待するとおりの印刷ができる。さらに、アップグレード時に必要な変更をすべて更新してくれるため管理者の手間が非常に省ける。
本実施例では、アップグレード時に、古いバージョンのプリンタドライバ30に対するオプション構成の変更を受け付けることができるプリンタドライバ30について説明する。
なお、本実施例のPC10の機能ブロック図は実施例1の図7と同様でよい。このため、本実施例においては本実施例の主要な構成要素についてのみ説明する場合がある。以下であ、実施例1とその機能が異なっている図7の手段又は機能について説明する。
本実施例の設定反映部25(新しいバージョン)は、実施例1と同様に、設定取得部24が取得した機器情報19をレジストリ21に記憶させる(プリンタアイコン40に反映させる)。また、設定反映部25(古いバージョン)は、古いバージョンの画面表示部16が保持していた設定情報28(このうちの主に機器情報19)のうち変更があった項目を新しいバージョンのプリンタドライバ30でも読み取り可能な形式に変換する。そして、新しいバージョンのプリンタドライバ30と共有可能な記憶領域(本実施例ではレジストリ21)の機器情報19に変更があった項目を反映させる。
設定管理部26(新しいバージョン)は、アップグレードの前後で機器情報19に変更がある項目を検出し設定内容保存ファイル22に保存する。また、設定管理部26(新しいバージョン)は、保存形式を変更した機器情報19の項目を設定内容保存ファイル22に保存する。また、古いバージョンと新しいバージョン間で機器情報19の保存形式が変わった項目について、変更点を設定内容保存ファイル22に記載して保存する。設定管理部26(古いバージョン)は、設定内容保存ファイル22を読み出してどの項目をレジストリ21の機器情報19に反映させるべきかを判断し、該項目をレジストリ21に反映させる。
本実施例の設定内容保存ファイル22には、新しいバージョンの設定管理部26がレジストリ21から取得して保存した機器情報19、古い機器情報19と新しい機器情報19間で変更された項目、該項目のうち古いバージョンと新しいバージョンで機器情報19の保存形式が変わった項目について新しい保存形式、及び、該項目の保存場所が記載される。また、実施例1と同様に、設定取得部24はアップグレード時の双方向通信が成功したか否を記載する。
<処理の詳細>
図11、12は、本実施例において、プリンタドライバ30がアップグレードされる際の機器情報19の保存手順などを示すフローチャート図の一例である。なお、図11、12においては図9と異なるステップの処理についてのみ説明する場合がある。
図11、12は、本実施例において、プリンタドライバ30がアップグレードされる際の機器情報19の保存手順などを示すフローチャート図の一例である。なお、図11、12においては図9と異なるステップの処理についてのみ説明する場合がある。
ステップS60において、「ドライバV2.0」の設定反映部25はステップS30で取得された機器情報19をレジストリ21に反映させる。
次に、「ドライバV2.0」の設定管理部26は、2つの機器情報19を比較してこれらの変更点(項目とその値)を抽出し、設定内容保存ファイル22に記載する(S62)。なお、設定内容保存ファイル22には設定管理部26がレジストリ21から取得した機器情報19(上書きする前)も記載される。
ModelName…プリンタ50のモデル名を意味する。プリンタAがモデル名である。
Tray…プリンタ50に接続されているトレイを意味する。1,2はそれぞれTray1、Tray2を意味する。
Finisher1…プリンタ50に接続されているフィニッシャーを意味する。onはFinisher1が接続されていることを意味する。
Finisher2…プリンタ50に接続されているフィニッシャーを意味する。offはFinisher2が接続されていないことを意味する。
Tray1…トレイ1に格納されている紙種と用紙サイズを意味する。
Tray2…トレイ2に格納されている紙種と用紙サイズを意味する。
したがって、表3の機器情報19は下記のような意味である。
・トレイはトレイ1、トレイ2が装着されている。
・フィニッシャーにはフィニッシャー1が装着されている。
・フィニッシャー2を装着することも可能だが、現在は装着されていない。
・トレイ1にはA4の普通紙がセットされている。
・トレイ2にはA3の厚紙がセットされている。
・トレイはトレイ1、トレイ2が装着されている。
・フィニッシャーにはフィニッシャー1が装着されている。
・フィニッシャー2を装着することも可能だが、現在は装着されていない。
・トレイ1にはA4の普通紙がセットされている。
・トレイ2にはA3の厚紙がセットされている。
・現在のプリンタにはトレイ3が装着されていない。
・トレイ1にセットされている用紙サイズがA5からA4になった。
・トレイ2にセットされている紙種が普通紙から厚紙になった。
この変更を受けて、設定内容保存ファイル22のChangedSettingセクションには以下の内容が記載される。
・ChangedSettingセクション
変更された機器情報19の項目が記載される。
「Tray3=delete」のdeleteはオプションが外されたことを意味する。逆に、新しく装着された場合はputと記載される。フィニッシャーのようにon・offで示せるもので、onからoffに変更された場合はFinisher1=offのように記載される。
「Tray1_papersize」には、トレイ1にセットされている用紙サイズが変更されたためchangedと記載される。「Tray2_mediatype」には、トレイ2にセットされている紙種が変更されたためchangedと記載される。
変更された機器情報19の項目が記載される。
「Tray3=delete」のdeleteはオプションが外されたことを意味する。逆に、新しく装着された場合はputと記載される。フィニッシャーのようにon・offで示せるもので、onからoffに変更された場合はFinisher1=offのように記載される。
「Tray1_papersize」には、トレイ1にセットされている用紙サイズが変更されたためchangedと記載される。「Tray2_mediatype」には、トレイ2にセットされている紙種が変更されたためchangedと記載される。
次に、図11に戻り、「ドライバV2.0」の設定管理部26は、ステップS62で保存した設定内容保存ファイル22に記載された項目の中に「ドライバV1.0」と「ドライバV2.0」の間で保存形式が変わった項目がないかを確認する(S64)。
一般に、プリンタドライバ30は上位互換性を有しており、新しいバージョンのプリンタドライバ30は古いバージョンのプリンタドライバ30の機器情報19や印刷設定27などを読み出すことができる。これにより、どんなに古いバージョンからもアップグレード時に機器情報19や印刷設定27を引き継ぐことを可能にしている。このことは、自身のバージョンよりも古いプリンタドライバ30の設定保存形式を検出しており、読めることを意味する。
図13は、保存形式の変化を模式的に説明する図の一例である。図13(a)は古いバージョン(例えばVer1.0)のプリンタドライバ30による機器情報19の保存形式を示し、図13(b)は新しいバージョン(例えばVer2.0)のプリンタドライバ30による機器情報19の保存形式を示す。古いバージョンの保存形式(Tray1=plain,A5)では紙種、用紙サイズの順で保存される。これに対し、新しいバージョン保存形式(Tray1=A5,plain)では用紙サイズ、紙種の順で保存される。このように、機器情報19の同じ内容がプリンタドライバ30のバージョンによって異なる保存形式で保存される。
プリンタドライバ30は自身のバージョンよりも古いプリンタドライバ30の保存形式を解析できるように、図13(c)に示すような保存形式の対応情報を有している。図13(c)では、Tray1の保存形式について「ドライバV1.0」と「ドライバV2.0」の対応情報が記載されている。したがって、「ドライバV2.0」の設定管理部26は、図13(c)のような対応情報を参照して、ステップS62で保存した設定内容保存ファイル22に記載された項目の中に保存形式が変わった項目があるか否かを判断できる。
設定内容保存ファイル22に保存形式が異なる項目が存在する場合(S64のYes)、処理はステップS66に進む。存在しない場合(S64のNo)、「ドライバV2.0」におけるアップグレード処理は終了である。
次に、「ドライバV2.0」の設定管理部26は保存形式が変更された項目について、新しい保存形式とその保存場所を設定内容保存ファイル22に保存する(S66)。再び、表4を参照して説明する。
保存形式が変更された項目の新しい保存形式や保存場所は、表4のChangedDataFormatセクションに記載される。「Tray1_papersize_data」には、トレイ1の用紙サイズの新しい保存場所が記載されている。トレイ1の用紙サイズの保存場所は次のように表すことができる。
「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\プリンタA\PrinterDriverData\Tray1」
「ドライバV1.0」からのアップグレードであれば、「ドライバV2.0」はV1.0からV2.0の間に保存形式が変わった項目についてのみここに記載する。保存形式については省略されているが、図13(b)のような対応情報のうち新しいバージョンの保存形式がChangedDataFormatセクションに記載される。
「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\プリンタA\PrinterDriverData\Tray1」
「ドライバV1.0」からのアップグレードであれば、「ドライバV2.0」はV1.0からV2.0の間に保存形式が変わった項目についてのみここに記載する。保存形式については省略されているが、図13(b)のような対応情報のうち新しいバージョンの保存形式がChangedDataFormatセクションに記載される。
なお、この保存場所「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\プリンタ名\PrinterDriverData」は、アップグレード前後で引き継がれる。よって、ここにバージョンを記載しておけば新しいバージョンのプリンタアイコン40は古いバージョンのプリンタドライバ30のバージョンを知ることが可能である。
アップグレードが終了すると、管理者は「ドライバV1.0」のデバイスプロパティ画面501を操作できるようになるので、管理者はなんらかのオプション構成を変更する(S78)。必ずオプション構成を変更する必要はないが、本実施例では変更したものとする。
この後の、ステップS80〜S110の処理は実施例1と同様である。
設定内容保存ファイル22に「isUpgradeBidi= true」が記載されている場合(S100のYes)、「ドライバV1.0」の設定管理部26は、設定内容保存ファイル22の内容と、設定情報28に含まれる機器情報19の現在値を照らし合わせる。そして、レジストリ21に反映された機器情報19の変更が必要か否かを判定する(S102)。
まず、設定内容保存ファイル22にはアップグレードの前後で機器情報19の変更点が記載されている。次に、例えば、設定情報28に含まれる機器情報19の現在値にTray1=plane,Letterと設定されていたとする。設定内容保存ファイル22では古い機器情報19が記憶されているので(Tray1=plane,A5)、両者を比較すると管理者がオプション構成を変更したことが分かる(このTray1は変更項目の一例である。)。また、このTray1は保存形式が変更されたことが設定内容保存ファイル22に記載されている。したがって、設定情報28に含まれる機器情報19のTray1の用紙サイズでレジストリ21の機器情報19の変更が必要であると判断する。詳細は表5にて説明する。
レジストリ21に反映された機器情報19の変更が必要でない場合(S102のNo)、レジストリ21への反映は不要なので処理はステップS130に進む。
レジストリ21に反映された機器情報19の変更が必要である場合(S102のYes)、「ドライバV1.0」の設定反映部25は、新しいバージョンのプリンタドライバ30の保存形式を設定内容保存ファイル22から読み出す。そして、レジストリ21の機器情報19に対する設定情報28の変更を反映させる(S104)。
次に、「ドライバV1.0」の設定取得部24は設定内容保存ファイル22からisUpgradeBidiの記載を削除する(S130)。以上で、図11、12の処理が終了する。このように、アップグレード前のプリンタドライバ30とアップグレード後のプリンタドライバ30が連携して機器情報を適切にレジストリ21に保存できる。
詳細に説明する。「ドライバV1.0」の設定管理部26は、設定情報28に含まれる機器情報19の現在値(Tray1=plane,Letter)と、設定内容保存ファイル22の古い機器情報19から、設定情報28に含まれる機器情報19の現在値を管理者が変更したことを検出する。これにより、管理者がTray1のオプション構成を変更していた場合、レジストリ21の機器情報19に反映させる必要があることが分かる。すなわち、デバイスプロパティ画面501は「ドライバV1.0」に画面表示部16によって作成されているため、「ドライバV2.0」の機器情報19はデバイスプロパティ画面501に反映されていない。しかし、管理者が手動でオプション構成を変更するということは、その設定で使いたい可能性が高い。そこで、設定管理部26は管理者による変更に合わせてレジストリ21の機器情報19を更新する。これにより、管理者は「ドライバV1.0」のデバイスプロパティ画面501からオプション構成などを変更しても、アップグレードされた「ドライバV2.0」の機器情報19に管理者の設定を反映できる。
項目の変更が必要である場合、「ドライバV1.0」の設定管理部26は、設定内容保存ファイル22からトレイ1の保存形式に変更があるかどうかを判断して、変更後の保存形式を設定反映部25に渡す。設定内容保存ファイル22にはTray1の保存形式が変更されたこと(ChangeDataFormat)、保存形式及び保存場所が記載されている。変更が必要な旨と保存形式及び保存場所を受け取った設定反映部25(古いバージョン)は新しいバージョンの保存形式に従って、レジストリ21の機器情報19のTray1の用紙サイズをLetterに変更することができる。
以上のように本実施例によれば、アップグレード時に、古いバージョンのプリンタドライバ30に対するオプション構成の変更を受け付けることができる。実施例1にて説明したように、アップグレードにより、最新の機器情報19を反映するためにアップグレード時の双方向通信で取得した機器情報19をプリンタアイコンの機器情報19に反映させる。しかし、アップグレードのタイミングで管理者がオプション構成を変更しておきたい場合がある。変更した場合、管理者としてはアップグレード時でも、デバイスプロパティ画面501から設定した内容が保存されていると考えている。実施例1のように、アップグレード時の双方向通信の結果を優先して機器情報19に反映させてしまうと、管理者によるオプション構成の変更が反映されずに印刷設定画面が表示されてしまい、混乱させる要因となる。また、アップグレード時に取得した機器情報19は一時的なもので、管理者がオプション構成を変更した状態で今後プリンタ50を使用することもありうる。
このような場合に古いバージョンのプリンタドライバが持つオプション構成の現在値をアップグレード後に機器情報19に反映しようとしても、バージョンによって保存形式が違う場合には適切に保存できない問題が生じてしまう。
これに対し、本実施例によれば、アップグレード時の双方向通信で取得した機器情報19をプリンタアイコンの機器情報19に反映しつつ、管理者の画面を介した設定も適した保存形式で保存して印刷設定27に反映させることができる。
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、図7のPC10の機能ブロックは、PC10の処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本願発明が制限されることはない。PC10の処理は、処理内容に応じてさらに多くの処理単位に分割することもできる。また、1つの処理単位がさらに多くの処理を含むように分割することもできる。
また、例えば、設定管理モジュール17は画面表示部16ではなく描画部15とやりとりしてもいいし、プリンタドライバ30の既存モジュールを介さずに外部モジュール(OSなど)と直接やり取りしてもよい。またプリンタドライバ30の外部モジュールとして設定管理モジュール17をおき、プリンタドライバ30とやりとりしてもよい。
また、図7に示した各機能はソフトウェアにより実現される他、ICなどのハードウェアにより実現されてもよい。
また、本実施形態ではプリンタドライバ30を例にして説明したが、本実施形態はPC−FAXドライバにも同様に適用できる。
1 印刷システム
11 アプリケーションソフト
16 画面表示部
17 設定管理モジュール
21 レジストリ
22 設定内容保存ファイル
24 設定取得部
25 設定反映部
26 設定管理部
30 プリンタドライバ
50 プリンタ
99 クライアントPC
100 サーバPC
11 アプリケーションソフト
16 画面表示部
17 設定管理モジュール
21 レジストリ
22 設定内容保存ファイル
24 設定取得部
25 設定反映部
26 設定管理部
30 プリンタドライバ
50 プリンタ
99 クライアントPC
100 サーバPC
Claims (12)
- 機器へ処理を要求する情報処理装置を、
プログラムのアップグレードが開始されたことを契機に前記機器から機器情報を取得する際、前記機器情報を取得できたか否かを通信記録情報として記録する情報取得手段と、
前記情報取得手段が取得した前記機器情報を記憶部に記憶させる情報記憶手段と、
アップグレードの終了後、前記機器の機能が設定されている設定情報を前記記憶部に反映させる情報反映手段と、として機能させ、
前記情報反映手段は、前記設定情報を前記記憶部に反映させる際、前記通信記録情報の記録内容に応じて、前記記憶部に記憶された前記機器情報に前記設定情報を反映させるか否かを判断するプログラム。 - 前記通信記録情報に前記機器情報を取得できたと記録されている場合、前記情報反映手段は、前記記憶部に記憶された前記機器情報に前記設定情報を反映させず、
前記通信記録情報に前記機器情報を取得できたと記録されていない場合、前記情報反映手段は、前記記憶部に記憶された前記機器情報に前記設定情報を反映させる請求項1に記載のプログラム。 - 前記記憶部には前記機器に対し要求される処理内容が記憶されており、
前記情報記憶手段は、アップグレード前に前記記憶部に記憶されている前記機器情報と前記情報取得手段が取得した前記機器情報とを比較して、前記情報取得手段が取得した前記機器情報では前記機器が実行できない設定を前記処理内容から検出し、前記情報取得手段が取得した前記機器情報に応じて前記処理内容を変更する請求項1又は2に記載のプログラム。 - 前記情報取得手段及び前記情報記憶手段はアップグレード後のプログラムの機能として得られるものであり、
前記情報反映手段はアップグレード前のプログラムの機能として得られるものである請求項1〜3いずれか1項に記載のプログラム。 - アップグレード後のプログラムの機能として得られる前記情報反映手段は、アップグレードよりも前に前記記憶部に記憶されている前記機器情報の各項目と、前記情報取得手段が取得した前記機器情報の各項目を比較して変更された項目を前記通信記録情報に記録し、
アップグレード前のプログラムの機能として得られる前記情報反映手段は、前記通信記録情報に記録された前記項目のうち、アップグレード前に前記記憶部に記憶されている前記機器情報の各項目に対し前記設定情報の各項目が変更されている変更項目を検出し、
アップグレード前のプログラムの機能として得られる前記情報記憶手段は、前記変更項目の設定を、前記記憶部に記憶されている前記機器情報の前記項目に反映させる請求項2に記載のプログラム。 - アップグレード後のプログラムの機能として得られる前記情報反映手段は、アップグレード前に前記記憶部に記憶されている前記機器情報の各項目を前記通信記録情報に記録しておき、
アップグレード前のプログラムの機能として得られる前記情報反映手段は、前記通信記録情報を参照して、前記設定情報の各項目とアップグレード前に前記記憶部に記憶されている前記機器情報の各項目を比較して前記変更項目を検出する請求項5に記載のプログラム。 - 前記情報処理装置を、さらに、前記設定情報を表示装置に表示すると共に前記設定情報に対するユーザの設定を受け付けて前記設定情報に記録する操作受付手段として機能させ、
アップグレード後のプログラムの機能として得られる前記情報反映手段は、前記操作受付手段により設定の変更が受け付けられた前記設定情報の前記変更項目を、前記設定情報の各項目とアップグレード前に前記記憶部に記憶されている前記機器情報の各項目を比較することで検出する請求項5又は6に記載のプログラム。 - アップグレード後のプログラムの機能として得られる前記情報反映手段は、アップグレードの前後で前記項目の前記記憶部における保存形式が異なる場合、前記通信記録情報にアップグレード後の保存形式と前記項目を対応づけて記録し、
アップグレード前のプログラムの機能として得られる前記情報記憶手段は、前記通信記録情報に記録されているアップグレード後の保存形式に従って、前記変更項目の設定を前記記憶部に記憶されている前記機器情報の前記項目に反映させる請求項7に記載のプログラム。 - アップグレード後のプログラムの機能として得られる前記情報反映手段は、アップグレード後の保存形式と前記項目に加え、前記項目の前記記憶部における保存場所を前記通信記録情報に記録し、
アップグレード前のプログラムの機能として得られる前記情報記憶手段は、前記情報記憶手段は、前記保存場所に前記変更項目の設定を反映させる請求項8に記載のプログラム。 - 機器に対し処理を要求する情報処理装置であって、
プログラムのアップグレードが開始されたことを契機に機器から機器情報を取得する際、前記機器情報を取得できたか否かを通信記録情報として記録する情報取得手段と、
前記情報取得手段が取得した前記機器情報を記憶部に記憶させる情報記憶手段と、
アップグレードの終了後、前記機器の機能が設定されている設定情報を前記記憶部に反映させる情報反映手段と、を有し、
前記情報反映手段は、前記設定情報を前記記憶部に反映させる際、前記通信記録情報の記録内容に応じて、前記記憶部に記憶された前記機器情報に前記設定情報を反映させるか否かを判断する情報処理装置。 - 機器に対し処理を要求する情報処理装置によって行われる情報処理方法であって、
プログラムのアップグレードが開始されたことを契機に前記機器から機器情報を取得する際、前記機器情報を取得できたか否かを通信記録情報として記録する情報取得ステップと、
前記情報取得ステップにより取得された前記機器情報を記憶部に記憶させる情報記憶ステップと、
アップグレードの終了後、前記機器の機能が設定されている設定情報を前記記憶部に反映させる情報反映ステップと、を有し、
前記情報反映ステップでは、前記機器の機能が設定されている設定情報を前記記憶部に反映させる際、前記通信記録情報の記録内容に応じて、前記記憶部に記憶された前記機器情報に前記設定情報を反映させるか否かを判断する情報処理方法。 - 請求項1〜9いずれか1項に記載のプログラムを記憶した情報処理装置により読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015054025A JP2016173771A (ja) | 2015-03-17 | 2015-03-17 | プログラム、情報処理装置、情報処理方法、記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015054025A JP2016173771A (ja) | 2015-03-17 | 2015-03-17 | プログラム、情報処理装置、情報処理方法、記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016173771A true JP2016173771A (ja) | 2016-09-29 |
Family
ID=57009659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015054025A Pending JP2016173771A (ja) | 2015-03-17 | 2015-03-17 | プログラム、情報処理装置、情報処理方法、記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016173771A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019074793A (ja) * | 2017-10-12 | 2019-05-16 | コニカミノルタ株式会社 | 印刷指示装置 |
JP2020135124A (ja) * | 2019-02-14 | 2020-08-31 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
JP2021121896A (ja) * | 2020-01-31 | 2021-08-26 | キヤノン株式会社 | 情報処理装置及びプログラム |
-
2015
- 2015-03-17 JP JP2015054025A patent/JP2016173771A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019074793A (ja) * | 2017-10-12 | 2019-05-16 | コニカミノルタ株式会社 | 印刷指示装置 |
JP2020135124A (ja) * | 2019-02-14 | 2020-08-31 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
US10936259B2 (en) | 2019-02-14 | 2021-03-02 | Fuji Xerox Co., Ltd. | Information processing apparatus and non-transitory computer readable medium |
JP7286992B2 (ja) | 2019-02-14 | 2023-06-06 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及びプログラム |
JP2021121896A (ja) * | 2020-01-31 | 2021-08-26 | キヤノン株式会社 | 情報処理装置及びプログラム |
JP7493947B2 (ja) | 2020-01-31 | 2024-06-03 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、プログラム、および記憶媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8640148B2 (en) | Information processing apparatus, information processing method and storage medium | |
JP6787115B2 (ja) | 画像形成装置、機能追加方法、プログラム、 | |
KR20130089195A (ko) | 정보 처리 장치, 제어 방법 및 기록 매체 | |
JP4946141B2 (ja) | 構成変更プログラム、および情報処理装置 | |
JP6049299B2 (ja) | 画像処理装置、その制御方法およびプログラム。 | |
US20160092281A1 (en) | Information processing apparatus, method for controlling the same, and storage medium | |
JP4981936B2 (ja) | インストーラ及びプリンタドライバのインストール方法 | |
JP5522952B2 (ja) | 印刷制御装置、印刷制御方法、およびプログラム | |
US9606761B2 (en) | Information processing apparatus for controlling an output process and method for the same | |
JP2016173771A (ja) | プログラム、情報処理装置、情報処理方法、記憶媒体 | |
JP2016177432A (ja) | プログラム、情報処理装置、記憶媒体、画面作成方法 | |
JP2018084893A (ja) | 情報処理装置、制御方法およびプログラム | |
US20210109694A1 (en) | Image forming device, non-transitory computer readable medium, and information processing system | |
US8922823B2 (en) | Information processing apparatus and storage medium with the function of adding a cover letter to a print job | |
JP6803647B2 (ja) | 端末装置、プリンタ制御方法、およびコンピュータプログラム | |
JP5169718B2 (ja) | 情報処理装置、表示画面起動方法、及びプログラム | |
JP2016177351A (ja) | プログラム、情報処理装置、画面表示方法 | |
US9270853B2 (en) | Exporting and importing for display on an image forming apparatus environment setting information of an application | |
US10602011B2 (en) | Image forming apparatus, information processing method, and program | |
JP2009080793A (ja) | プリンタで開始される印刷方法および装置 | |
JP2008219087A (ja) | 機能実行装置 | |
JP2015197844A (ja) | 印刷装置、印刷装置のファームウェア検証方法、並びにプログラム | |
JP7071189B2 (ja) | 情報処理装置、情報処理装置の制御方法及びプログラム | |
JP6808520B2 (ja) | 画像形成装置、画像形成装置の制御方法、およびプログラム | |
JP7085920B2 (ja) | 印刷制御プログラム、情報処理装置とその制御方法、およびプログラム |