(57)【特許請求の範囲】
【請求項１】
ＵＳＢ規格に沿った手順でスキャナと通信するための第１の通信インターフェースと、ＵＳＢ規格とは異なる通信規格に沿った手順でスキャナと通信するための第２の通信インターフェースと、記憶手段と、表示部とを備えた情報処理装置上で機能するスキャナ制御システムであって、
前記情報処理装置上では、
前記第１の通信インターフェースまたは前記第２の通信インターフェースを介してスキャナを制御するスキャナドライバ部と、
スキャナを利用する旨の操作を利用者から受けたアプリケーション部から指令を受けると、前記スキャナドライバ部に対し、そのスキャナドライバ部が対応するスキャナに関する表示用情報を格納したスキャナデータ情報を要求し、その要求に応じて前記スキャナドライバ部から提供されるスキャナデータ情報を取得すると、そのスキャナデータ情報に基づいて、スキャナデータ情報に含まれる表示用情報を前記表示部に表示し、その表示に基づいて、一のスキャナを制御対象スキャナとする指令をユーザから受け付けると、指令された制御対象スキャナを示す制御対象情報をスキャナドライバ部に指定するシステム本体部と
が機能するように構成されており、
前記記憶手段には、あらかじめ、
スキャナに関する情報として、前記ＵＳＢ規格で定められた情報であって前記第１の通信インターフェースを介して接続しているスキャナからは前記第１の通信インターフェースを介して取得することが可能であるものの前記第２の通信インターフェースを介して接続しているスキャナからは前記第２の通信インターフェースを介して取得することが不能な情報であるデバイスの種類を判別する機種情報と、ユーザインターフェースに表示するための表示用情報と、を対応付けて格納した記述ファイルと、
情報処理装置と第２の通信インターフェースを介して接続可能なスキャナに関する情報として、そのスキャナの前記機種情報を格納した設定ファイルと、
が記憶されており、
前記スキャナドライバ部は、
前記システム本体部からの要求に応じて、前記情報処理装置と前記第１の通信インターフェースを介して接続しているスキャナが送信した、そのスキャナの前記機種情報を前記第１の通信インターフェースを介して受信する受信手段と、
前記システム本体部からの前記要求に応じて、前記記憶手段が記憶している前記設定ファイルが格納する、前記第２の通信インターフェースを介して接続しているスキャナの前記機種情報を取得する設定ファイル情報取得手段と、
前記システム本体部からの前記要求に応じて前記受信手段が前記第１の通信インターフェースを介して接続しているスキャナの前記機種情報を受信すると、その前記機種情報に対応する表示用情報を前記記述ファイルから取得し、前記システム本体部からの前記要求に応じて前記設定ファイル情報取得手段が前記第２の通信インターフェースを介して接続しているスキャナの前記機種情報を取得すると、その前記機種情報に対応する表示用情報を前記記述ファイルから取得する手段であって、前記受信手段が受信した前記第１の通信インターフェースを介して接続しているスキャナの前記機種情報に対応する表示用情報と、前記設定ファイル情報取得手段が取得した前記第２の通信インターフェースを介して接続しているスキャナの前記機種情報に対応する表示用情報との双方を取得すると、取得した双方の表示用情報を含んだ前記スキャナデータ情報を作成するスキャナデータ情報作成手段と、
前記スキャナデータ情報作成手段が前記双方の表示用情報を含んだ前記スキャナデータ情報を作成すると、そのスキャナデータ情報を前記システム本体部に提供するスキャナデータ情報提供手段と、
前記スキャナデータ情報提供手段が前記スキャナデータ情報を提供した前記システム本体部から前記制御対象情報を指定されると、当該制御対象情報に応じて、その制御対象情報に対応する機種情報を特定するとともに、前記制御対象情報が示す制御対象スキャナが前記第１の通信インターフェースまたは前記第２の通信インターフェースのいずれを介して通信可能かを判定し、前記第１の通信インターフェースを介して通信可能と判定された場合は、前記機種情報に対応して特定したコマンドを前記第１の通信インターフェースを介して前記制御対象スキャナへ送信する一方、前記第２の通信インターフェースを介して通信可能と判定された場合は、前記機種情報に対応して特定したコマンドを前記第２の通信インターフェースを介して前記制御対象スキャナへ送信するスキャン指令送信手段とを備える
ことを特徴とするスキャナ制御システム。
【請求項２】
前記スキャナデータ情報作成手段は、利用者が個々のスキャナに対して任意に付与するスキャナ名を含む前記スキャナデータ情報を作成する
ことを特徴とする請求項１に記載のスキャナ制御システム。
【請求項３】
前記スキャナデータ情報作成手段は、スキャナの機種名を含む前記スキャナデータ情報を作成する
ことを特徴とする請求項１または請求項２に記載のスキャナ制御システム。
【請求項４】
前記制御対象スキャナから送信されてくる画像データを、前記機種情報に応じて、前記制御対象スキャナの機種に依存したデータ形式から、前記システム本体部の仕様に合ったデータ形式に変換するデータ形式変換手段
を備えたことを特徴とする請求項１〜請求項３のいずれかに記載のスキャナ制御システム。
【請求項５】
前記記憶手段には、前記記述ファイルとして、
前記スキャナドライバ部が制御可能なスキャナの機種を示す対応機種情報が格納された機種記述ファイルと、
前記スキャナドライバ部が制御可能且つ前記機種記述ファイルには前記対応機種情報が格納されていないスキャナについて、当該スキャナの機種を示す情報であり且つ前記対応機種情報とは独立に追加および削除可能な情報である拡張対応機種情報が格納された拡張機種記述ファイルと
が記憶されており、
前記受信手段は、前記第１の通信インターフェースを介して送信されてくる機種情報が、前記対応機種情報または前記拡張対応機種情報のいずれかとして記憶されている場合に、前記送信されてくる機種情報を受信対象とする
ことを特徴とする請求項１〜請求項４のいずれかに記載のスキャナ制御システム。
【請求項６】
新たな前記記述ファイルをファイル単位で追加することにより、前記機種対応情報または前記拡張対応機種情報を追加可能、且つ前記記述ファイルをファイル単位で削除することにより、前記機種対応情報または前記拡張対応機種情報を削除可能に構成されている
ことを特徴とする請求項５に記載のスキャナ制御システム。
【請求項７】
ＵＳＢ規格に沿った手順でスキャナと通信するための第１の通信インターフェースと、ＵＳＢ規格とは異なる通信規格に沿った手順でスキャナと通信するための第２の通信インターフェースと、記憶手段と、表示部とを備えた情報処理装置上で機能するスキャナ制御システムの一部を構成するために利用されるプログラムであり、前記情報処理装置上では、前記第１の通信インターフェースまたは前記第２の通信インターフェースを介してスキャナを制御するスキャナドライバ部と、スキャナを利用する旨の操作を利用者から受けたアプリケーション部から指令を受けると、前記スキャナドライバ部に対し、そのスキャナドライバ部が対応するスキャナに関する表示用情報を格納したスキャナデータ情報を要求し、その要求に応じて前記スキャナドライバ部から提供されるスキャナデータ情報を取得すると、そのスキャナデータ情報に基づいて、スキャナデータ情報に含まれる表示用情報を前記表示部に表示し、その表示に基づいて、一のスキャナを制御対象スキャナとする指令をユーザから受け付けると、指令された制御対象スキャナを示す制御対象情報をスキャナドライバ部に指定するシステム本体部とが機能するように構成され、且つ、前記記憶手段には、あらかじめ、スキャナに関する情報として、前記ＵＳＢ規格で定められた情報であって前記第１の通信インターフェースを介して接続しているスキャナからは前記第１の通信インターフェースを介して取得することが可能であるものの前記第２の通信インターフェースを介して接続しているスキャナからは前記第２の通信インターフェースを介して取得することが不能な情報であるデバイスの種類を判別する機種情報と、ユーザインターフェースに表示するための表示用情報と、を対応付けて格納した記述ファイルと、情報処理装置と第２の通信インターフェースを介して接続可能なスキャナに関する情報として、そのスキャナの前記機種情報を格納した設定ファイルとが記憶されている前記スキャナ制御システムにおいて、前記情報処理装置を前記スキャナドライバ部として機能させるためのプログラムであって、
前記情報処理装置を、
前記システム本体部からの要求に応じて、前記情報処理装置と前記第１の通信インターフェースを介して接続しているスキャナが送信した、そのスキャナの前記機種情報を前記第１の通信インターフェースを介して受信する受信手段と、
前記システム本体部からの前記要求に応じて、前記記憶手段が記憶している前記設定ファイルが格納する、前記第２の通信インターフェースを介して接続しているスキャナの前記機種情報を取得する設定ファイル情報取得手段と、
前記システム本体部からの前記要求に応じて前記受信手段が前記第１の通信インターフェースを介して接続しているスキャナの前記機種情報を受信すると、その前記機種情報に対応する表示用情報を前記記述ファイルから取得し、前記システム本体部からの前記要求に応じて前記設定ファイル情報取得手段が前記第２の通信インターフェースを介して接続しているスキャナの前記機種情報を取得すると、その前記機種情報に対応する表示用情報を前記記述ファイルから取得する手段であって、前記受信手段が受信した前記第１の通信インターフェースを介して接続しているスキャナの前記機種情報に対応する表示用情報と、前記設定ファイル情報取得手段が取得した前記第２の通信インターフェースを介して接続しているスキャナの前記機種情報に対応する表示用情報との双方を取得すると、取得した双方の表示用情報を含んだ前記スキャナデータ情報を作成するスキャナデータ情報作成手段と、
前記スキャナデータ情報作成手段が前記双方の表示用情報を含んだ前記スキャナデータ情報を作成すると、そのスキャナデータ情報を前記システム本体部に提供するスキャナデータ情報提供手段と、
前記スキャナデータ情報提供手段が前記スキャナデータ情報を提供した前記システム本体部から前記制御対象情報を指定されると、当該制御対象情報に応じて、その制御対象情報に対応する機種情報を特定するとともに、前記制御対象情報が示す制御対象スキャナが前記第１の通信インターフェースまたは前記第２の通信インターフェースのいずれを介して通信可能かを判定し、前記第１の通信インターフェースを介して通信可能と判定された場合は、前記機種情報に対応して特定したコマンドを前記第１の通信インターフェースを介して前記制御対象スキャナへ送信する一方、前記第２の通信インターフェースを介して通信可能と判定された場合は、前記機種情報に対応して特定したコマンドを前記第２の通信インターフェースを介して前記制御対象スキャナへ送信するスキャン指令送信手段
として機能させることを特徴とするスキャナドライバプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャナと通信可能な情報処理装置上で機能するスキャナ制御システムと、このスキャナ制御システムの一部を構成するスキャナドライバ部として情報処理装置を機能させるためのスキャナドライバプログラムに関する。
【背景技術】
【０００２】
一般に、ＵＳＢ（Universal Serial Bus）規格に準拠したデバイス（以下、ＵＳＢデバイスと称する。）は、ベンダーＩＤ（以下、ＶＩＤと略称する。）やプロダクトＩＤ（以下、ＰＩＤと略称する。）と呼ばれる識別子を備えている。
【０００３】
これらＶＩＤやＰＩＤは、例えば、ＵＳＢデバイスがパーソナルコンピュータ（以下、ＰＣと略称する。）などの情報処理装置に接続された場合に、ＵＳＢデバイス側から情報処理装置側へと伝送することができ、これにより、情報処理装置側では、どのような機能を持つＵＳＢデバイスが接続されたのかを認識することができる（例えば、特許文献１参照）。
【０００４】
したがって、例えば、情報処理装置側では、ＵＳＢデバイスから伝送されてきたＶＩＤやＰＩＤ基づいて、ＵＳＢデバイスを制御するために必要なデバイスドライバのプログラムをメモリに読み込んで、そのデバイスドライバを機能させることができた。また、例えば、単一のデバイスドライバが、機能や性能の異なる複数通りの機種に対応しているような場合には、ＵＳＢデバイスが備える機能や性能をＰＩＤに基づいて特定し、特定した機能や性能に応じた適切な制御を実行することもできた。
【特許文献１】特開２００５−１８４３６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、Ｌｉｎｕｘ（登録商標）等のＵＮＩＸ（登録商標）系ＯＳ（Operating System）が搭載された情報処理装置においては、ＳＡＮＥ（Scanner Access Now Easy）と呼ばれるスキャナ制御システムが利用されている。このＳＡＮＥは、アプリケーション側ないし利用者側との間のインターフェースを提供するＳＡＮＥシステム本体部（以下、ＳＡＮＥ本体とも称する。）と、スキャナに対する制御を行うスキャナドライバ部とが協働して機能するように構成されている。ＳＡＮＥシステム本体部には、スキャナドライバ部から取得した情報を表示するとともに、利用者の入力操作に応じた情報をスキャナドライバ部へと伝送するユーザーインターフェース機能を提供するフロントエンド部（以下、フロントエンドとも称する。）が含まれている。また、このようなフロントエンド部に対して、上記スキャナドライバ部は、バックエンド部（以下、バックエンドとも称する。）とも呼ばれる。
【０００６】
このＳＡＮＥにおいては、新たにバックエンドを用意して、それを登録することにより、新たに対応する機種を増やすことができる。その際、新たに登録されたバックエンドは、その操作対象となる機種と、その機種がサポートする機能を、ＳＡＮＥ本体側に伝える能力を持つ。ＳＡＮＥ本体は、複数のスキャナが接続された場合にバックエンドから送られた機種の情報を列挙し、利用者に対象となる機種を選ばせる機能を有する。またＳＡＮＥ本体はバックエンドから送られた機種情報を基に、利用者にその機能を選択させるためのダイアログを表示し、利用者に機能を設定させる機能を有する。このＳＡＮＥに関しては、http://www.sane-project.org/（２００６年３月現在）において、その仕様、ソースコードが公開されているので、この明細書においては詳述しない。
【０００７】
このようなスキャナ制御システムにおいても、スキャナ系デバイス（例えば、単機能のイメージスキャナや、スキャナ機能に加えてスキャナ機能以外の機能をも兼ね備えた複合機；以下、これらを総称してスキャナと称する。）に対する制御を行う際、そのスキャナがＵＳＢ規格に準拠したもの（以下、このようなスキャナをＵＳＢスキャナと称する。）であれば、上述の背景技術同様、スキャナドライバ部が、様々なＵＳＢデバイスからＶＩＤやＰＩＤを取得し、取得したＶＩＤやＰＩＤに基づいて、スキャナドライバ部の対応しているＵＳＢスキャナを検出していた。また、単一のスキャナドライバ部が、機能や性能の異なる複数通りの機種に対応しているような場合には、個々のＵＳＢスキャナが備える機能や性能をＰＩＤに基づいて特定し、特定した機能や性能に応じた適切な制御を実行していた。
【０００８】
しかし、情報処理装置とスキャナとの間の通信インターフェースが、ＵＳＢとは異なる規格の通信インターフェースになっている場合、情報処理装置はＶＩＤやＰＩＤをスキャナから取得することができなかった。
【０００９】
より具体的な例を挙げれば、上記のようなＵＳＢスキャナの中には、ＵＳＢ以外の通信インターフェースを兼ね備えている機種があり、代表的な例を挙げれば、例えば、ＩＥＥＥ８０２系(IEEE802.3/IEEE802.3u/IEEE802.3ab等)の規格に準拠した通信インターフェース（以下、ＬＡＮ（Local Area Network）インターフェースと称する）を備えている機種がある。このような機種は、ＵＳＢスキャナとして運用する以外に、ＬＡＮインターフェースを介して情報処理装置と通信可能なスキャナ（以下、ネットワークスキャナと称する。）としての運用も可能である。
【００１０】
しかし、このようなスキャナをネットワークスキャナとして運用した場合、情報処理装置は、上述のようなＶＩＤやＰＩＤをネットワークスキャナから取得することができなかった。これは、ＵＳＢ規格とＩＥＥＥ８０２系規格との違いに起因するもので、そもそもＶＩＤやＰＩＤは、ＵＳＢ規格で利用するために実装されたＩＤであるのに対し、ＩＥＥＥ８０２系規格ではＶＩＤやＰＩＤを取得するための通信プロトコルが用意されていないからである。そのため、従来は、ＵＳＢスキャナを制御可能なスキャナドライバ部であっても、ネットワークスキャナをＵＳＢスキャナと同等に制御することはできない、という問題があった。
【００１１】
本発明は、上記問題を解決するためになされたものであり、その目的は、スキャナの機能を特定するために必要な情報を、情報処理装置が第１の通信インターフェースを介して通信可能なスキャナからは取得でき、第２の通信インターフェースを介して通信可能なスキャナからは取得できない環境であっても、どちらのスキャナについても同等に制御可能なスキャナ制御システムと、そのようなスキャナ制御システムの一部を構成するスキャナドライバ部として情報処理装置を機能させるためのスキャナドライバプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
以下、本発明において採用した特徴的構成について説明する。
本発明のスキャナ制御システムは、ＵＳＢ規格に沿った手順でスキャナと通信するための第１の通信インターフェースと、ＵＳＢ規格とは異なる通信規格に沿った手順でスキャナと通信するための第２の通信インターフェースと、記憶手段と、表示部とを備えた情報処理装置上で機能するスキャナ制御システムであって、前記情報処理装置上では、前記第１の通信インターフェースまたは前記第２の通信インターフェースを介してスキャナを制御するスキャナドライバ部と、スキャナを利用する旨の操作を利用者から受けたアプリケーション部から指令を受けると、前記スキャナドライバ部に対し、そのスキャナドライバ部が対応するスキャナに関する表示用情報を格納したスキャナデータ情報を要求し、その要求に応じて前記スキャナドライバ部から提供されるスキャナデータ情報を取得すると、そのスキャナデータ情報に基づいて、スキャナデータ情報に含まれる表示用情報を前記表示部に表示し、その表示に基づいて、一のスキャナを制御対象スキャナとする指令をユーザから受け付けると、指令された制御対象スキャナを示す制御対象情報をスキャナドライバ部に指定するシステム本体部とが機能するように構成されており、前記記憶手段には、あらかじめ、スキャナに関する情報として、前記ＵＳＢ規格で定められた情報であって前記第１の通信インターフェースを介して接続しているスキャナからは前記第１の通信インターフェースを介して取得することが可能であるものの前記第２の通信インターフェースを介して接続しているスキャナからは前記第２の通信インターフェースを介して取得することが不能な情報であるデバイスの種類を判別する機種情報と、ユーザインターフェースに表示するための表示用情報と、を対応付けて格納した記述ファイルと、情報処理装置と第２の通信インターフェースを介して接続可能なスキャナに関する情報として、そのスキャナの前記機種情報を格納した設定ファイルと、が記憶されており、前記スキャナドライバ部は、前記システム本体部からの要求に応じて、前記情報処理装置と前記第１の通信インターフェースを介して接続しているスキャナが送信した、そのスキャナの前記機種情報を前記第１の通信インターフェースを介して受信する受信手段と、前記システム本体部からの前記要求に応じて、前記記憶手段が記憶している前記設定ファイルが格納する、前記第２の通信インターフェースを介して接続しているスキャナの前記機種情報を取得する設定ファイル情報取得手段と、前記システム本体部からの前記要求に応じて前記受信手段が前記第１の通信インターフェースを介して接続しているスキャナの前記機種情報を受信すると、その前記機種情報に対応する表示用情報を前記記述ファイルから取得し、前記システム本体部からの前記要求に応じて前記設定ファイル情報取得手段が前記第２の通信インターフェースを介して接続しているスキャナの前記機種情報を取得すると、その前記機種情報に対応する表示用情報を前記記述ファイルから取得する手段であって、前記受信手段が受信した前記第１の通信インターフェースを介して接続しているスキャナの前記機種情報に対応する表示用情報と、前記設定ファイル情報取得手段が取得した前記第２の通信インターフェースを介して接続しているスキャナの前記機種情報に対応する表示用情報との双方を取得すると、取得した双方の表示用情報を含んだ前記スキャナデータ情報を作成するスキャナデータ情報作成手段と、前記スキャナデータ情報作成手段が前記双方の表示用情報を含んだ前記スキャナデータ情報を作成すると、そのスキャナデータ情報を前記システム本体部に提供するスキャナデータ情報提供手段と、前記スキャナデータ情報提供手段が前記スキャナデータ情報を提供した前記システム本体部から前記制御対象情報を指定されると、当該制御対象情報に応じて、その制御対象情報に対応する機種情報を特定するとともに、前記制御対象情報が示す制御対象スキャナが前記第１の通信インターフェースまたは前記第２の通信インターフェースのいずれを介して通信可能かを判定し、前記第１の通信インターフェースを介して通信可能と判定された場合は、前記機種情報に対応して特定したコマンドを前記第１の通信インターフェースを介して前記制御対象スキャナへ送信する一方、前記第２の通信インターフェースを介して通信可能と判定された場合は、前記機種情報に対応して特定したコマンドを前記第２の通信インターフェースを介して前記制御対象スキャナへ送信するスキャン指令送信手段とを備えることを特徴とする。
【００１３】
このスキャナ制御システムにおいて、第１の通信インターフェースは、ＵＳＢ規格に沿った手順でスキャナからスキャナ情報を取得可能な通信インターフェースである。第２の通信インターフェースは、ＵＳＢ規格とは規格が異なるものであり、代表的な例としては、ＩＥＥＥ８０２系のＬＡＮインターフェースを挙げることができる。
【００１４】
また、このスキャナ制御システムにおいて、システム本体部の一例としては、ＵＮＩＸ（登録商標）系ＯＳが搭載された情報処理装置の場合であれば、ＳＡＮＥと呼ばれるスキャナ制御システムを利用することができる。このＳＡＮＥを利用すれば、新たにスキャナドライバ部を用意するだけで本発明のスキャナ制御システムを構成することができる。ただし、ＳＡＮＥと同等な機能を有するシステムは、他のＯＳ上で機能するものを用意することも可能である。例えば、Ｗｉｎｄｏｗｓ（登録商標）、ＭａｃＯＳ（登録商標）などをプラットフォームとするシステム本体部およびスキャナドライバ部を用意すれば、ＵＮＩＸ（登録商標）系以外のＯＳが搭載された情報処理装置でも、本発明のスキャナ制御システムを構成することができる。
【００１５】
また、機種情報は、ＵＳＢ規格で定められた、デバイスの種類を判別するための情報であり、ＵＳＢ規格においてＶＩＤやＰＩＤと呼ばれる情報が、本発明でいう機種情報に相当する。この機種情報は、第１の通信インターフェースを介して情報処理装置と接続しているスキャナから取得できる。
【００１６】
一方、第２の通信インターフェースは、ＵＳＢ規格とは規格が異なるため、第２の通信インターフェースを介してスキャナから機種情報（ＵＳＢ規格で規定されたＶＩＤやＰＩＤ）を取得することはできない。ただし、本発明においては、情報処理装置と第２の通信インターフェースを介して接続可能なスキャナに関する情報として、そのスキャナの機種情報を格納した設定ファイルがあらかじめ記憶手段に記憶されているので、記憶手段に記憶された設定ファイルから機種情報を取得することができる。
【００１７】
したがって、本発明のスキャナ制御システムによれば、第２の通信インターフェースを介して機種情報を取得することができない場合でも、第２の通信インターフェースを介する通信を行うことなく、記憶手段に記憶された設定ファイルから機種情報を取得してシステム本体部に渡すことができる。
より詳しくは、システム本体部からの要求があるとスキャナドライバ部においては、その要求に応じて、受信手段は、情報処理装置と第１の通信インターフェースを介して接続しているスキャナが送信した、そのスキャナの機種情報を第１の通信インターフェースを介して受信する。また、同要求に応じて、設定ファイル情報取得手段は、記憶手段が記憶している設定ファイルが格納する機種情報を取得する。
そして、スキャナデータ情報作成手段は、システム本体部からの前記要求に応じて受信手段が第１の通信インターフェースを介して接続しているスキャナの前記機種情報を受信すると、その機種情報に対応する表示用情報を記述ファイルから取得し、システム本体部からの前記要求に応じて設定ファイル情報取得手段が第２の通信インターフェースを介して接続しているスキャナの機種情報を設定ファイルから取得すると、その機種情報に対応する表示用情報を記述ファイルから取得する。さらに、スキャナデータ情報作成手段は、受信手段が受信した前記第１の通信インターフェースを介して接続しているスキャナの前記機種情報に対応する表示用情報と、前記設定ファイル情報取得手段が取得した前記第２の通信インターフェースを介して接続しているスキャナの前記機種情報に対応する表示用情報との双方を取得すると、取得した双方の表示用情報を含んだ前記スキャナデータ情報を作成する。スキャナデータ情報提供手段は、スキャナデータ情報作成手段が前記双方の表示用情報を含んだ前記スキャナデータ情報を作成すると、そのスキャナデータ情報をシステム本体部に提供する。
このようなスキャナデータ情報が提供されたシステム本体部では、スキャナデータ情報に基づいて、スキャナデータ情報に含まれる表示用情報を前記表示部に表示し、その表示に基づいて、一のスキャナを制御対象スキャナとする指令をユーザから受け付けた場合には、指令された制御対象スキャナを示す制御対象情報をスキャナドライバ部に指定する。
スキャナデータ情報提供手段が前記スキャナデータ情報を提供したシステム本体部から前記制御対象情報を指定されると、スキャナドライバ部において、スキャン指令送信手段は、指定された制御対象情報に応じて、その制御対象情報に対応する機種情報を特定するとともに、前記制御対象情報が示す制御対象スキャナが前記第１の通信インターフェースまたは前記第２の通信インターフェースのいずれを介して通信可能かを判定し、前記第１の通信インターフェースを介して通信可能と判定された場合は、前記機種情報に対応して特定したコマンドを前記第１の通信インターフェースを介して前記制御対象スキャナへ送信する一方、前記第２の通信インターフェースを介して通信可能と判定された場合は、前記機種情報に対応して特定したコマンドを前記第２の通信インターフェースを介して前記制御対象スキャナへ送信する。
したがって、このような仕組みをスキャナドライバ部が提供すれば、システム本体部では、第１，第２の通信インターフェースのいずれを介して接続しているスキャナであってもまったく同様に扱うことができるようになる。
【００１８】
その結果、例えば、情報処理装置上で機能するアプリケーションソフトウェアから、本発明のスキャナ制御システムを介してスキャナを利用する際には、第１の通信インターフェース介して接続されたスキャナであればもちろんのこと、第２の通信インターフェース介して接続されたスキャナであっても利用できるので、アプリケーションソフトウェア側では、通信インターフェースの規格の違いを何ら意識することなく、所望のスキャナを利用できるようになる。
【００１９】
ところで、本発明のスキャナ制御システムにおいて、前記スキャナデータ情報作成手段は、利用者が個々のスキャナに対して任意に付与するスキャナ名を含む前記スキャナデータ情報を作成するとよい。
【００２０】
このように構成されたスキャナ制御システムによれば、システム本体部側においてスキャナ名を表示できるようになるので、例えば同型のスキャナが複数あるような場合であっても、利用者は所望のスキャナを選択しやすくなる。
【００２１】
また、本発明のスキャナ制御システムにおいて、前記スキャナデータ情報作成手段は、スキャナの機種名を含む前記スキャナデータ情報を作成するとよい。
このように構成されたスキャナ制御システムによれば、システム本体部側において機種名を表示できるようになるので、利用者は所望の機能を備えた機種を選択しやすくなる。
【００２２】
【００２３】
また、本発明のスキャナ制御システムは、前記制御対象スキャナから送信されてくる画像データを、前記機種情報に応じて、前記制御対象スキャナの機種に依存したデータ形式から、前記システム本体部の仕様に合ったデータ形式に変換するデータ形式変換手段を備えるとよい。
【００２４】
このように構成されたスキャナ制御システムによれば、制御対象スキャナの機種によって、制御対象スキャナから送信されてくる画像データのデータ形式が異なる場合でも、そのような違いをシステム本体部側では意識することなく、画像データを受け取ることができる。
【００２５】
また、本発明のスキャナ制御システムは、前記記憶手段には、前記記述ファイルとして、前記スキャナドライバ部が制御可能なスキャナの機種を示す対応機種情報が格納された機種記述ファイルと、前記スキャナドライバ部が制御可能且つ前記機種記述ファイルには前記対応機種情報が格納されていないスキャナについて、当該スキャナの機種を示す情報であり且つ前記対応機種情報とは独立に追加および削除可能な情報である拡張対応機種情報が格納された拡張機種記述ファイルとが記憶されており、前記受信手段は、前記第１の通信インターフェースを介して送信されてくる機種情報が、前記対応機種情報または前記拡張対応機種情報のいずれかとして記憶されている場合に、前記送信されてくる機種情報を受信対象とするとよい。
【００２６】
このように構成されたスキャナ制御システムによれば、初期公開時において、機能が確定している機種の情報を対応機種情報として公開し、その後、新たに機能が確定した機種に関しては、新たにその機種の情報を拡張対応機種情報とする。このようにすることにより、対応機種を順次増やすことができる。
【００２７】
しかも、追加した機種を削除する際には、対応機種情報の内容を直に書き換えなくても、その追加した拡張対応機種情報のみを削除すればよく、この削除による影響を、削除されなかった対応機種情報または拡張対応機種情報に与えることがない。また、例えば、２回にわたって機種拡張をした場合であって、初めに追加した機種のみを削除する場合などにあっても、２回目の拡張を無効とすることなく、初めに追加した機種を容易に削除することができる。また、拡張された機種をすべて削除した場合に、初期のファイル内容が保証されるので、元通りの状態になることが確実に保証されるといった利点がある。
【００２８】
また特に、新たな前記記述ファイルをファイル単位で追加することにより、前記機種対応情報または前記拡張対応機種情報を追加可能、且つ前記記述ファイルをファイル単位で削除することにより、前記機種対応情報または前記拡張対応機種情報を削除可能に構成されていれば、初期のファイルの書き換えを行わなくても、新たなファイルを追加するだけで、簡単に対応機種の追加を行うことができる。
【００２９】
さらに、本発明のスキャナドライバプログラムは、ＵＳＢ規格に沿った手順でスキャナと通信するための第１の通信インターフェースと、ＵＳＢ規格とは異なる通信規格に沿った手順でスキャナと通信するための第２の通信インターフェースと、記憶手段と、表示部とを備えた情報処理装置上で機能するスキャナ制御システムの一部を構成するために利用されるプログラムであり、前記情報処理装置上では、前記第１の通信インターフェースまたは前記第２の通信インターフェースを介してスキャナを制御するスキャナドライバ部と、スキャナを利用する旨の操作を利用者から受けたアプリケーション部から指令を受けると、前記スキャナドライバ部に対し、そのスキャナドライバ部が対応するスキャナに関する表示用情報を格納したスキャナデータ情報を要求し、その要求に応じて前記スキャナドライバ部から提供されるスキャナデータ情報を取得すると、そのスキャナデータ情報に基づいて、スキャナデータ情報に含まれる表示用情報を前記表示部に表示し、その表示に基づいて、一のスキャナを制御対象スキャナとする指令をユーザから受け付けると、指令された制御対象スキャナを示す制御対象情報をスキャナドライバ部に指定するシステム本体部とが機能するように構成され、且つ、前記記憶手段には、あらかじめ、スキャナに関する情報として、前記ＵＳＢ規格で定められた情報であって前記第１の通信インターフェースを介して接続しているスキャナからは前記第１の通信インターフェースを介して取得することが可能であるものの前記第２の通信インターフェースを介して接続しているスキャナからは前記第２の通信インターフェースを介して取得することが不能な情報であるデバイスの種類を判別する機種情報と、ユーザインターフェースに表示するための表示用情報と、を対応付けて格納した記述ファイルと、情報処理装置と第２の通信インターフェースを介して接続可能なスキャナに関する情報として、そのスキャナの前記機種情報を格納した設定ファイルとが記憶されている前記スキャナ制御システムにおいて、前記情報処理装置を前記スキャナドライバ部として機能させるためのプログラムであって、前記情報処理装置を、前記システム本体部からの要求に応じて、前記情報処理装置と前記第１の通信インターフェースを介して接続しているスキャナが送信した、そのスキャナの前記機種情報を前記第１の通信インターフェースを介して受信する受信手段と、前記システム本体部からの前記要求に応じて、前記記憶手段が記憶している前記設定ファイルが格納する、前記第２の通信インターフェースを介して接続しているスキャナの前記機種情報を取得する設定ファイル情報取得手段と、前記システム本体部からの前記要求に応じて前記受信手段が前記第１の通信インターフェースを介して接続しているスキャナの前記機種情報を受信すると、その前記機種情報に対応する表示用情報を前記記述ファイルから取得し、前記システム本体部からの前記要求に応じて前記設定ファイル情報取得手段が前記第２の通信インターフェースを介して接続しているスキャナの前記機種情報を取得すると、その前記機種情報に対応する表示用情報を前記記述ファイルから取得する手段であって、前記受信手段が受信した前記第１の通信インターフェースを介して接続しているスキャナの前記機種情報に対応する表示用情報と、前記設定ファイル情報取得手段が取得した前記第２の通信インターフェースを介して接続しているスキャナの前記機種情報に対応する表示用情報との双方を取得すると、取得した双方の表示用情報を含んだ前記スキャナデータ情報を作成するスキャナデータ情報作成手段と、前記スキャナデータ情報作成手段が前記双方の表示用情報を含んだ前記スキャナデータ情報を作成すると、そのスキャナデータ情報を前記システム本体部に提供するスキャナデータ情報提供手段と、前記スキャナデータ情報提供手段が前記スキャナデータ情報を提供した前記システム本体部から前記制御対象情報を指定されると、当該制御対象情報に応じて、その制御対象情報に対応する機種情報を特定するとともに、前記制御対象情報が示す制御対象スキャナが前記第１の通信インターフェースまたは前記第２の通信インターフェースのいずれを介して通信可能かを判定し、前記第１の通信インターフェースを介して通信可能と判定された場合は、前記機種情報に対応して特定したコマンドを前記第１の通信インターフェースを介して前記制御対象スキャナへ送信する一方、前記第２の通信インターフェースを介して通信可能と判定された場合は、前記機種情報に対応して特定したコマンドを前記第２の通信インターフェースを介して前記制御対象スキャナへ送信するスキャン指令送信手段として機能させることを特徴とする。
【００３０】
このようなスキャナドライバプログラムを利用して、情報処理装置を上記スキャナドライバ部が備える各手段として機能させれば、同じ情報処理装置上で機能する上記システム本体部、記憶手段および表示部とともに、請求項１に記載したスキャナ制御システムを構成することができる。
【００３１】
なお、本発明のスキャナドライバプログラムは、上記請求項２〜請求項６それぞれに記載した各手段を備えるスキャナドライバ部として、情報処理装置を機能させるように構成されていてもよく、その場合、上記請求項２〜請求項６それぞれに記載したスキャナ制御システムを構成することができる。
【００３２】
【００３３】
【００３４】
【００３５】
【発明を実施するための最良の形態】
【００３６】
次に、本発明の実施形態について一例を挙げて説明する。
［ＰＣおよび複合機の構成］
図１は、本発明でいう情報処理装置の一例に相当するパーソナルコンピュータ１（以下、ＰＣ１という）と、本発明でいうスキャナの一例に相当する複合機３の概略構成を示したブロック図である。
【００３７】
複合機３は、本実施形態においては、後述する処理の中でスキャナとして利用されるデバイスであるが、イメージスキャナ機能の他に、プリンタ機能、コピー機能、ファクシミリ機能、および電話機能等を兼ね備えている。また、複合機３は、ＵＳＢ規格に準拠した通信ケーブル７を介してＰＣ１と通信することができ、また、ＩＥＥＥ８０２系規格のＬＡＮ８を介してＰＣ１と通信することもできる。図１においては、２台の複合機３が通信ケーブル７を介してＰＣ１と通信可能に構成され、３台の複合機３がＬＡＮ８を介してＰＣ１と通信可能に構成された例を図示してあるが、これらの台数は任意である。
【００３８】
以上のような機器の内、ＰＣ１は、図１に示すように、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ハードディスク装置１５（以下、ＨＤＤ１５という）、操作部１６、表示部１７、ＵＳＢインターフェース１８（以下、ＵＳＢ  Ｉ／Ｆ１８という）、ＬＡＮインターフェース１９（以下、ＬＡＮ  Ｉ／Ｆ１９という）などのハードウェアを備え、これらのハードウェアを制御するためのＯＳ（Operating System）として、Ｌｉｎｕｘ（登録商標）を搭載したものである。
【００３９】
ＣＰＵ１１は、ＲＯＭ１２やＲＡＭ１３に記憶されたプログラムに従って、ＰＣ１各部に対する制御および各種演算を実行する装置で、後述するアプリケーション部、システム本体部、およびスキャナドライバ部としての処理は、このＣＰＵ１１によって実行される。
【００４０】
ＲＯＭ１２は、ＰＣ１の電源スイッチを切っても記憶内容を保持可能な記憶装置で、ＢＩＯＳ（Basic Input Output System）や通常であれば更新されない読み出し用のデータ等を記憶している。
【００４１】
ＲＡＭ１３は、ＣＰＵ１１から直接アクセスされるメインメモリ等として利用される記憶装置である。このＲＡＭ１３には、ＯＳ（Operating System）や各種アプリケーションなどのソフトウェアがＨＤＤ１５から読み込まれ、また、ＣＰＵ１１による各種演算の結果やＨＤＤ１５から読み込まれたデータもＲＡＭ１３に記憶されるようになっている。後述するアプリケーション部、システム本体部、およびスキャナドライバ部としての処理をＣＰＵ１１が実行する際には、各処理をＣＰＵ１１に実行させるためのプログラム（アプリケーションプログラム、フロントエンドプログラム、スキャナドライバプログラム）がＨＤＤ１５からＲＡＭ１３に読み込まれ、ＲＡＭ１３に記憶されたプログラムに従って、ＣＰＵ１１が各処理を実行することになる。
【００４２】
ＨＤＤ１５は、ＯＳ、各種アプリケーションプログラム、および各種データファイルを保存しておくための装置で、上記アプリケーションプログラム、フロントエンドプログラム、スキャナドライバプログラムなどもＨＤＤ１５に保存されている。
【００４３】
操作部１６は、利用者からの各種指示を入力するための入力装置であり、例えば、キーボードや各種ポインティングデバイス（例えば、マウス）等によって構成される。
表示部１７は、各種情報を利用者に提示するための出力装置であり、例えば、カラー画像を表示可能な液晶ディスプレイ等によって構成される。
【００４４】
ＵＳＢ  Ｉ／Ｆ１８は、ＵＳＢ規格準拠のシリアルインターフェースである。このＵＳＢ  Ｉ／Ｆ１８には、通信ケーブル７を介して、様々なデバイス（例えば、プリンタ、キーボード、マウス、スキャナ、スピーカー、各種ストレージデバイスなど）を接続することができるが、本実施形態においては、複合機３が接続されている。
【００４５】
ＬＡＮ  Ｉ／Ｆ１９は、ＩＥＥＥ８０２系規格準拠の通信インターフェースである。このＬＡＮ  Ｉ／Ｆ１９には、ＬＡＮ８を介して、様々なデバイス（例えば、プリンタ、スキャナ、各種ストレージデバイスなど）を接続することができるが、本実施形態においては、複合機３が接続されている。
【００４６】
また、本実施形態において、ＰＣ１に搭載されたＯＳはマルチタスク機能を備えており、ＯＳのマルチタスク機能により、複数のソフトウェアに基づく処理を時分割で並列に実行することができる。これにより、後から詳述するアプリケーション部、システム本体部、およびスキャナドライバ部などが、ＰＣ１上で機能するようになっている。なお、マルチタスク機能など、ＯＳによって提供される各種機能そのものは公知なので、ここでの詳細な説明は省略するが、以下の説明においては、ＰＣ１が、Ｌｉｎｕｘ（登録商標）によって提供される各種機能を有するとの前提で説明を続ける。
【００４７】
複合機３は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、不揮発性ＲＡＭ３４、ハードディスク装置３５（以下、ＨＤＤ３５という）、操作部３６、表示部３７、ＵＳＢ  Ｉ／Ｆ３８、ＬＡＮ  Ｉ／Ｆ３９、印刷部４１、読取部４２、およびモデム４３などを備えている。
【００４８】
ＣＰＵ３１は、ＲＯＭ３２に記憶されている制御プログラムに従って複合機３各部の制御および各種演算を実行する装置である。
ＲＯＭ３２は、複合機３の電源スイッチを切っても記憶内容を保持可能な記憶装置で、上記制御プログラムの他、通常であれば更新されない読み出し用の各種データを記憶している。このＲＯＭ３２には、複合機３の製造者を示すＶＩＤ（ベンダーＩＤ）やＰＩＤ（プロダクトＩＤ）などが記憶されている。
【００４９】
ＲＡＭ３３は、ＣＰＵ３１から直接アクセスされるメインメモリ等として利用される記憶装置で、ＣＰＵ３１が処理中に算出する各種データなどが一時的にＲＡＭ３３に記憶されるようになっている。
【００５０】
不揮発性ＲＡＭ３４は、この複合機３に関する設定等、電力供給が断たれたときにも消失させたくないデータを記憶する記憶装置である。
ＨＤＤ３５は、ファクシミリ機能により送受信する画像、イメージスキャナ機能により読み取った画像、プリンタ機能により印刷する画像など、比較的サイズが大きい画像データを記憶する装置である。
【００５１】
操作部３６は、利用者がマニュアル操作で複合機３に対して指令を与える場合に操作する入力装置である。
表示部３７は、小型液晶ディスプレイによって構成された装置で、複合機３の設定や状態などの情報を表示できるようになっている。
【００５２】
ＵＳＢ  Ｉ／Ｆ３８は、ＵＳＢ規格準拠のシリアルインターフェースで、このＵＳＢ  Ｉ／Ｆ３８を利用して、ＰＣ１との間でデータ通信を実行できるようになっている。
ＬＡＮ  Ｉ／Ｆ３９は、ＩＥＥＥ８０２系規格準拠の通信インターフェースで、このＬＡＮ  Ｉ／Ｆ３９を利用しても、ＰＣ１との間でデータ通信を実行できるようになっている。
【００５３】
印刷部４１は、シート状の媒体（例えば記録用紙）に対する印刷を実行可能な装置で、プリンタ機能による印刷データの印刷、ファクシミリ機能による受信画像の印刷、コピー機能によるコピー画像の印刷等を行う際に作動する。
【００５４】
読取部４２は、自動原稿送り装置（図示略）にセットされた原稿またはフラットベッドのコンタクトガラス上に置かれた原稿から画像を読み取り可能な装置で、イメージスキャナ機能による画像の読み取り、ファクシミリ機能による送信画像の読み取り等を行う際に作動する。
【００５５】
モデム４３は、複合機３側で作成されたディジタルデータを音声信号に変換して公衆回線側に送信したり、公衆回線側から受信した音声信号をディジタルデータに変換して複合機３側で処理できるようにするための装置で、ファクシミリ機能による画像の送受信、電話機能による通話を行う際に作動する。
【００５６】
［ＰＣ１が備えるソフトウェアの構成］
次に、ＰＣ１が備えるソフトウェアの構成について、図２に基づいて説明する。
ＰＣ１が備えるＣＰＵ１１は、上述した通り、複数のソフトウェアに基づく処理を時分割で並列に実行することができ、これにより、図２に示すアプリケーション部７１Ａ，７１Ｂ、システム本体部７２、スキャナドライバ部７３Ａ，７３Ｂ、設定ツール７４などが、ＰＣ１上で機能するようになっている。
【００５７】
これらの内、アプリケーション部７１Ａ，７１Ｂは、スキャナ（本実施形態の場合、複合機３，５）から伝送されてくる画像データを入力する機能を有するソフトウェアによって構成される。なお、図２おいては、２つのアプリケーション部７１Ａ，７１Ｂを例示してあるが、ＰＣ１上で機能するアプリケーション部の数は任意である。
【００５８】
システム本体部７２は、本実施形態の場合、ＳＡＮＥと呼ばれるシステムの一部に相当するものである。このシステム本体部７２は、アプリケーション部７１Ａ，７１Ｂからの指令に応じた情報をスキャナドライバ部７３Ａ，７３Ｂへと伝送するとともに、スキャナドライバ部７３Ａ，７３Ｂから送信されてくる画像データを受信してアプリケーション部７１Ａ，７１Ｂへと送信するアプリケーションインターフェース機能を備えている。また、システム本体部７２は、スキャナドライバ部７３Ａ，７３Ｂから取得した情報を表示部１７に表示するとともに、利用者による操作部１６からの入力操作に応じた情報をスキャナドライバ部７３Ａ，７３Ｂへと伝送するユーザーインターフェース機能を提供するフロントエンド部７２Ａを備えている。
【００５９】
スキャナドライバ部７３Ａ，７３Ｂは、前記ＳＡＮＥのバックエンドとして働く部分である。このスキャナドライバ部７３Ａ，７３Ｂ用のプログラムは、システム本体部７２を構成するためのプログラムとは別プログラムとして構成され、システム本体部７２にスキャナドライバ部７３Ａ，７３Ｂを登録することにより、システム本体部７２と協働してスキャナ制御システム（ＳＡＮＥシステム）を構成可能なソフトウェアである。図２おいては、２つのスキャナドライバ部７３Ａ，７３Ｂを例示してあるが、ＰＣ１上で機能するスキャナドライバ部の数は２つとは限らない。本実施形態の場合、スキャナドライバ部７３Ａとスキャナドライバ部７３Ｂとでは、制御対象となるスキャナのメーカー（製造者）が異なっている。また、本実施形態において、スキャナドライバ部７３Ａは、同メーカーの複数機種のスキャナを制御可能に構成されているが、同メーカーのスキャナであっても、機種が異なっている場合には、機種毎に別のスキャナドライバ部が必要となることもある。つまり、ＰＣ１上で機能するスキャナドライバ部の数は、ＰＣ１から利用したいスキャナのメーカーや機種に応じて決まることになる。
【００６０】
設定ツール７４は、ＬＡＮ８を介して通信可能な複合機３を、スキャナドライバ部７３Ａにおいて認識可能とするために利用されるソフトウェアであるが、その機能の詳細については後述する。
【００６１】
［ＰＣ１が備えるデータの構成］
次に、ＰＣ１が備えるデータの構成について、図２に基づいて説明する。
ＰＣ１が備えるＨＤＤ１５には、機種記述ファイル格納ディレクトリ８１が用意され、この機種記述ファイル格納ディレクトリ８１の中には、機種記述ファイル８２が格納されている。この機種記述ファイル８２には、このスキャナドライバ部７３Ａが標準でサポートする機種の情報が格納されている。この機種記述ファイル格納ディレクトリ８１には、さらに拡張機種記述ファイルを置くことができる。これはスキャナドライバの初期公開時にまだ確定していなかった機種の情報を、後から追加するためのもので、前記スキャナドライバとは別体で提供されるものである。ここでは、既に拡張機種記述ファイル８３Ａ，８３Ｂが追加されているものとして説明する。
【００６２】
機種記述ファイル８２、および拡張機種記述ファイル８３Ａ，８３Ｂは、いずれもスキャナドライバ部７３Ａの対応機種（スキャナドライバ部７３Ａによる制御が可能なスキャナの機種）に関する情報が記述されたファイルである。機種記述ファイル８２に記述された機種は、スキャナドライバ部７３Ａが最初から対応していた機種であり、拡張機種記述ファイル８３Ａ，８３Ｂに記述された機種は、後から追加でスキャナドライバ部７３Ａが対応することになった機種に相当する。
【００６３】
機種記述ファイル８２、および拡張機種記述ファイル８３Ａ，８３Ｂ内に記述される情報は、図３（ａ）に例示したような書式の情報である。ここに記述された１行分情報は、スキャナドライバ部７３Ａが対応している１機種分の情報に相当する（図３（ａ）に例示した情報の場合、３機種分の情報）。各行の情報は、ＰＩＤ（図３（ａ）中の「０ｘ０３」等）、機種名（図３（ａ）中の「Ｍ−７８２０Ｎ−Ｎ」等）、その他の関連情報群（図３（ａ）中の「関連情報１，関連情報２，…）で構成される。
【００６４】
また、ＨＤＤ１５には、設定ファイル８４も格納されている。この設定ファイル８４には、設定ツール７４の機能により、ＬＡＮ８を介して通信可能な複合機３をスキャナドライバ部７３Ａにおいて認識可能とするための情報が書き込まれるが、この情報の利用方法については後述する。
【００６５】
設定ファイル８４内に記述される情報は、図３（ｂ）に例示したような書式の情報である。ここに記述された１行分情報は、ＬＡＮ８を介して通信可能な１台の複合機３に対応する情報である（図３（ｂ）に例示した情報の場合、ＬＡＮ８を介して通信可能な４台分の複合機３に関する情報）。各行の情報は、利用者が任意に付与したスキャナ名（図３（ｂ）中の「ＮＥＴ＿ＮＯＤＥ」等）、機種名（図３（ｂ）中の「Ｍ−７８２０Ｎ−Ｎ」等）、ＬＡＮ８上でのノード名またはＩＰアドレス（図３（ｂ）中の「ＢＲＮ＿４８７ＢＤＢ」等）、ＶＩＤ（図３（ｂ）中の「０ｘ４ｆ９」等）およびＰＩＤ（図３（ｂ）中の「０ｘ３８１」等）で構成される。
【００６６】
なお、詳しくは後述するが、ＰＣ１および複合機３が、ＵＳＢ経由で（すなわち、ＵＳＢ  Ｉ／Ｆ１８，３８および通信ケーブル７を介して）接続された場合、ＰＣ１は、複合機３のＲＯＭ３２に記憶されたＶＩＤやＰＩＤを、複合機３から取得することができる。したがって、ＰＣ１側では、複合機３から取得したＶＩＤやＰＩＤに基づいて複合機３のメーカー（製造者）や機種を特定することができる。
【００６７】
一方、ＰＣ１および複合機３が、ＬＡＮ経由で（すなわち、ＬＡＮ  Ｉ／Ｆ１９，３９およびＬＡＮ８を介して）接続された場合、ＰＣ１は、複合機３のＲＯＭ３２に記憶されたＶＩＤやＰＩＤを、複合機３から取得することができない。
【００６８】
しかし、本実施形態においては、ＰＣ１および複合機３が、ＬＡＮ経由で（すなわち、ＬＡＮ  Ｉ／Ｆ１９，３９およびＬＡＮ８を介して）接続された場合、ＰＣ１は、設定ファイル８４に記憶されたＶＩＤやＰＩＤを取得する。すなわち、設定ファイル８４には、ＬＡＮ経由で通信可能な複合機３のＶＩＤやＰＩＤが記録されているので、ＰＣ１は、設定ファイル８４に記憶されたＶＩＤやＰＩＤを取得することができ、そのＶＩＤやＰＩＤに基づいて複合機３のメーカーや機種を特定することができる。
【００６９】
［スキャナ制御システムの詳細］
次に、システム本体部７２およびスキャナドライバ部７３Ａによって構成されるスキャナ制御システムの詳細について説明する。
【００７０】
なお、以下の説明においては、複合機３の接続形態を明示するため、ＵＳＢ経由で（すなわち、ＵＳＢ  Ｉ／Ｆ１８，３８および通信ケーブル７を介して）接続された複合機３のことを「ＵＳＢスキャナ」と称することにする。また、ＬＡＮ経由で（すなわち、ＬＡＮ  Ｉ／Ｆ１９，３９およびＬＡＮ８を介して）接続された複合機３のことを「ネットワークスキャナ」と称することにする。さらに、これらＵＳＢスキャナおよびネットワークスキャナを総称する場合には、単に「スキャナ」と称することにする。
【００７１】
まず、スキャナリスト提供処理について、図４〜図６のフローチャートに基づいて説明する。このスキャナリスト提供処理は、システム本体部７２が、スキャナドライバ部７３Ａ，７３Ｂに対して、利用可能なスキャナのリストを要求した際に、スキャナドライバ部７３Ａが実行する処理である。
【００７２】
より詳しくは、例えば、アプリケーション部７１Ａが実行する処理の中で、利用者がスキャナを利用する旨の操作を行った場合、その操作に応じてアプリケーション部７１Ａは、システム本体部７２に対してスキャナを利用する旨の指令を出す。そして、アプリケーション部７１Ａからの指令を受けたシステム本体部７２は、すべてのスキャナドライバ部（図２に例示したものの場合、スキャナドライバ部７３Ａ，７３Ｂ）に対し、利用可能なスキャナのリストを要求する。この要求を受けたスキャナドライバ部７３Ａ，７３Ｂは、それぞれがシステム本体部７２からの要求に応じた処理を行うことになるが、ここでスキャナドライバ部７３Ａが実行する処理が、以下に説明するスキャナリスト提供処理となる。
【００７３】
スキャナリスト提供処理を開始すると、スキャナドライバ部７３Ａは、まず、機種記述データ配列作成処理を実行する（Ｓ１０１）。機種記述データ配列作成処理は、機種記述ファイル８２、および拡張機種記述ファイル８３Ａ，８３Ｂ内に記述された情報を統合した配列データを作成するための処理で、詳しくは図５に示すような処理となる。
【００７４】
すなわち、機種記述データ配列作成処理を開始すると、スキャナドライバ部７３Ａは、機種記述ファイル格納ディレクトリ８１をサーチする（Ｓ２０１）。そのサーチの結果、未処理の拡張機種記述ファイルがあった場合は（Ｓ２０３：ＹＥＳ）、その拡張機種記述ファイル中のすべてのスキャナ情報を機種記述データ配列に記憶する（Ｓ２０５）。なお、機種記述データ配列は、スキャナドライバ部７３Ａがメモリ（ＲＡＭ１３）上に確保した配列型の記憶領域である。
【００７５】
そして、Ｓ２０５の処理を終えたら、Ｓ２０１の処理へと戻ることにより、未処理の拡張機種記述ファイルがある限り、Ｓ２０１〜Ｓ２０５の処理を繰り返す。この繰り返し処理により、拡張機種記述ファイル８３Ａ，８３Ｂは、順に処理されてゆくことになる。
【００７６】
また、この繰り返し処理の結果、未処理の拡張機種記述ファイルが無くなれば（Ｓ２０３：ＮＯ）、最後に機種記述ファイル８２中のすべてのスキャナ情報を機種記述データ配列に記憶して（Ｓ２０７）、機種記述データ配列作成処理を終える。なお、以上のような処理によって作成される機種記述データ配列は、先に拡張機種記述ファイル８３Ａ，８３Ｂ内の情報が配列中に格納され、最後に機種記述ファイル８２内の情報が配列中に格納されたものとなる。
【００７７】
さて、機種記述データ配列作成処理を終えると、図４中に示したＳ１０１の処理を終えたことになるので、引き続いて、スキャナドライバ部７３Ａは、スキャナデータ情報配列作成処理を実行する（Ｓ１０３）。スキャナデータ情報配列作成処理は、ＵＳＢデバイスとの通信によって検出したＵＳＢスキャナの情報と設定ファイル８４に登録されたネットワークスキャナの情報を統合した配列データを作成するための処理で、詳しくは図６に示すような処理となる。
【００７８】
すなわち、スキャナデータ情報配列作成処理を開始すると、スキャナドライバ部７３Ａは、まず、ＵＳＢ対応バス上のＵＳＢデバイスをサーチする（Ｓ３０１）。ＰＣ１に様々なＵＳＢデバイスが接続されている場合、Ｓ３０１の処理では、それら様々なＵＳＢデバイスが検出されることになるので、それら検出されたＵＳＢデバイスから取得したＶＩＤおよびＰＩＤに基づいて、ＵＳＢスキャナだけを抽出する。このサーチの結果、ＵＳＢスキャナがあった場合は（Ｓ３０３：ＹＥＳ）、そのスキャナのデータを機種記述ファイル群（機種記述ファイル８２、および拡張機種記述ファイル８３Ａ，８３Ｂ）のデータと照合する（Ｓ３０５）。
【００７９】
そして、照合できた場合は（Ｓ３０７：ＹＥＳ）、スキャナドライバ部７３Ａが対応しているＵＳＢスキャナであることを意味するので、照合された機種記述ファイル群のデータをスキャナデータ情報配列に書き込んで（Ｓ３０９）、Ｓ３０１の処理へと戻る。なお、スキャナデータ情報配列は、スキャナドライバ部７３Ａがメモリ（ＲＡＭ１３）上に確保した配列型の記憶領域である。
【００８０】
一方、照合できなかった場合は（Ｓ３０７：ＮＯ）、スキャナドライバ部７３Ａが対応しているＵＳＢスキャナではないことを意味するので、Ｓ３０９の処理はスキップして、そのままＳ３０１の処理へと戻る。
【００８１】
こうしてＳ３０１の処理へ戻ると、バス上で検出したＵＳＢスキャナがある限り、Ｓ３０１〜Ｓ３０９の処理を繰り返すことになり、この繰り返し処理により、バス上で検出したＵＳＢスキャナは、順に処理されてゆくことになる。
【００８２】
さて、この繰り返し処理の結果、バス上で検出したＵＳＢスキャナが無くなれば（Ｓ３０３：ＮＯ）、引き続いて、スキャナドライバ部７３Ａは、設定ファイル８４よりネットワークスキャナ情報を１行ずつ読み出す（Ｓ３１１）。
【００８３】
Ｓ３１１の処理で、１行分のネットワークスキャナ情報が読み出せた場合は、それに対応する１台のネットワークスキャナがあることを意味する（Ｓ３１１：ＹＥＳ）。そこで、その場合は、そのスキャナのデータを機種記述ファイル群（機種記述ファイル８２、および拡張機種記述ファイル８３Ａ，８３Ｂ）のデータと照合する（Ｓ３１５）。
【００８４】
そして、照合できた場合は（Ｓ３１７：ＹＥＳ）、スキャナドライバ部７３Ａが対応しているネットワークスキャナであることを意味するので、照合された機種記述ファイル群のデータをスキャナデータ情報配列に書き込んで（Ｓ３１９）、Ｓ３１１の処理へと戻る。
【００８５】
一方、照合できなかった場合は（Ｓ３１７：ＮＯ）、スキャナドライバ部７３Ａが対応しているネットワークスキャナではないことを意味するので、Ｓ３１９の処理はスキップして、そのままＳ３１１の処理へと戻る。
【００８６】
こうしてＳ３１１の処理へ戻ると、設定ファイル８４に登録されているネットワークスキャナがある限り、Ｓ３１１〜Ｓ３１９の処理を繰り返すことになり、この繰り返し処理により、設定ファイル８４に登録されているネットワークスキャナは、順に処理されてゆくことになる。
【００８７】
そして、この繰り返し処理の結果、設定ファイル８４に登録されているネットワークスキャナが無くなれば（Ｓ３１３：ＮＯ）、スキャナデータ情報配列作成処理を終える。
さて、機種記述データ配列作成処理を終えると、図４中に示したＳ１０３の処理を終えたことになるので、引き続いて、スキャナドライバ部７３Ａは、リスト作成用のメモリブロックを確保する（Ｓ１０５）。ここで、確保されるメモリブロックは、システム本体部７２から参照可能な記憶領域内に確保され、そのサイズは（スキャナ数と１つのスキャナに対応するデータ構造のバイト数とにより決定される数）とされる。なお、１つのスキャナに対応するデータ構造は、システム本体部７２の仕様（本実施形態の場合、ＳＡＮＥの仕様）としてあらかじめ決められているものである。
【００８８】
メモリブロックを確保したら、スキャナドライバ部７３Ａは、スキャナデータ情報配列から有効なスキャナの情報を読み出して、メモリブロックに書き込む（Ｓ１０７）。そして、メモリブロックに作成されたリストをシステム本体部７２に返して（Ｓ１０９）、スキャナリスト提供処理を終了する。なお、Ｓ１０９の処理では、Ｓ１０５の処理で確保したメモリブロックをシステム本体部７２側で参照する上で必要な情報（例えば、メモリブロックの先頭アドレスおよびサイズ（あるいはサイズ相当の情報；例えば、メモリブロックの最終アドレス、スキャナ数等でも可））が返される。
【００８９】
以上のようなスキャナリスト提供処理がスキャナドライバ部７３Ａにおいて実行される結果、スキャナドライバ部７３Ａからシステム本体部７２へは、スキャナドライバ部７３Ａによって制御可能なスキャナのリストが提供されることになる。また、スキャナドライバ部７３Ａとスキャナドライバ部７３Ｂとでは、両者の内部処理は必ずしも同じではないが、スキャナドライバ部７３Ｂからも、システム本体部７２に対してスキャナドライバ部７３Ｂによって制御可能なスキャナのリストが提供されることになる。
【００９０】
なお、システム本体部７２については、公知のＳＡＮＥプログラムを利用しているので、その内部処理についての詳細な説明は省略するが、スキャナドライバ部７３Ａ，７３Ｂからスキャナリストが提供され、且つ、それらにより複数のスキャナが利用可能であると認識された場合、システム本体部７２が備えるフロントエンド部７２Ａは、図７に示すようなデバイス選択ダイアログ９１を表示部１７に表示して、利用者からの入力を受け付ける状態になる。
【００９１】
デバイス選択ダイアログ９１内には、デバイス表示欄９２、ＯＫボタン９３、キャンセルボタン９４などが設けられており、デバイス表示欄９２には、使用可能なスキャナの一覧として、スキャナドライバ部７３Ａ，７３Ｂから提供されたスキャナリストに基づく情報が統合して表示される。
【００９２】
より詳しくは、図７に例示したデバイス選択ダイアログ９１の場合、デバイス表示欄９２には５台のスキャナについて情報が表示されているが、これらの情報は、何台分かがスキャナドライバ部７３Ａから提供されたスキャナリストに基づく情報であり、残りがスキャナドライバ部７３Ｂから提供されたスキャナリストに基づく情報となっている。
【００９３】
また、デバイス表示欄９２には、１台のスキャナを択一的に選択するためのラジオボタン９２Ａ、メーカー名表示欄９２Ｂ、機種名表示欄９２Ｃ、利用者が個々のスキャナに対して任意に付与した名称を表示するためのスキャナ名表示欄９２Ｄ、ＰＣ１上で個々のスキャナを特定するために利用される識別名を表示するための識別名表示欄９２Ｅなどが設けられている。
【００９４】
ここで、利用者は、デバイス選択ダイアログ９１内に表示された情報を参照し、操作部１６での操作により、ラジオボタン９２Ａを使って所望のスキャナを１つ選択し、ＯＫボタン９３を押下する操作（ＯＫボタン９３をマウスなどのポインティングデバイスを使ってクリックする操作、あるいは当該操作と同等の機能が割り当てられたショートカットキーを押す操作など）を行うことにより、フロントエンド部７２Ａを介して、システム本体部７２に対して、どのスキャナを使用したいのか（どのスキャナを制御対象スキャナとしたいのか）について指令を与えることができる。
【００９５】
また、スキャナリストにより、単一のスキャナのみが利用可能であると認識された場合にあっては、上記デバイス選択ダイアログ９１は表示されず、そのスキャナが選択される。
【００９６】
そして、この指令を受けたシステム本体部７２は、利用者が指定した制御対象スキャナに対応するスキャナドライバ部（例えば、スキャナドライバ部７３Ａ，７３Ｂのいずれか）に対し、選択されたスキャナに対する利用者が設定可能なオプションについての情報を提供するように要求し、この要求に応じてスキャナドライバ部から情報が返されたら、システム本体部７２が備えるフロントエンド部７２Ａは、図８に示すような、オプション設定用ダイアログ９６を表示部１７に表示して、利用者からの入力を受け付ける状態になる。
【００９７】
オプション設定用ダイアログ９６内には、オプション設定欄９７、スキャンボタン９８、キャンセルボタン９９などが設けられている。ここで、利用者は、オプション設定用ダイアログ９６内に表示された情報を参照し、操作部１６での操作により、オプション設定欄９７で任意に各種オプションを設定し、スキャンボタン９８を押下する操作を行うことにより、フロントエンド部７２Ａを介して、システム本体部７２に対して、スキャンの開始を指令することができる。
【００９８】
以上説明したシステム本体部７２側での処理、および、その中でスキャナドライバ部がオプションについての情報をシステム本体部７２側へ提供する処理は、公知のＳＡＮＥプログラムにより実行されている処理となる。
【００９９】
また、このときのスキャナドライバにおける選択されたスキャナに対する利用者が設定可能なオプションについての情報を提供する処理は、図９のＳ４０５の処理に対応する。この処理に関しては後に詳述する。ここで提供された情報を基に、システム本体部７２（あるいはシステム本体部７２が備えるフロントエンド部７２Ａ）は、そのダイアログの各項目の選択肢を決定している。
【０１００】
さて、スキャナドライバ部７３Ａがシステム本体部７２からスキャンの開始を指令された場合に実行する処理は、本実施形態における特有の処理となるので、以下、図９のフローチャートに基づいて詳細に説明する。なお、この処理はＳＡＮＥプログラムが必要に応じてスキャナドライバの提供するサブルーチンプログラムを順次呼び出すことによりなされるが、便宜上、一連の処理として説明している。
【０１０１】
スキャナドライバ部７３Ａは、システム本体部７２からスキャンの開始を指令されると、まず、システム本体部７２によって指定された情報から、スキャナを特定する（Ｓ４０１）。システム本体部７２によって指定された情報の中には、制御対象スキャナ（利用者がシステム本体部７２のユーザーインターフェース機能を利用して選択したスキャナ）を示す制御対象情報が含まれているので、Ｓ４０１の処理では、利用者が選択した１台のスキャナが特定される。
【０１０２】
制御対象スキャナを特定したら、続いて、スキャナドライバ部７３Ａは、スキャナデータ情報配列より対応するデータ（ＶＩＤ／ＰＩＤを含む）を取り出す（Ｓ４０３）。既に説明した通り、スキャナデータ情報配列には、ＵＳＢバス上で検出したＵＳＢスキャナ、または、設定ファイル８４に登録されているネットワークスキャナ、いずれかの情報が含まれており、これらの情報には、ＵＳＢ／ネットワークどちらの場合でも、ＶＩＤおよびＰＩＤが含まれている。したがって、Ｓ４０３の処理では、ＶＩＤ／ＰＩＤを含む情報を取り出すことができる。
【０１０３】
スキャナデータ情報配列よりデータを取り出したら、続いて、スキャナドライバ部７３Ａは、ＶＩＤ／ＰＩＤに応じた送信先情報（アドレスなど）、コマンド情報、受信データのデコード情報を読み取る（Ｓ４０５）。これらの情報は、一部はスキャナデータ情報配列より取り出したデータに含まれており、また、残りの一部はスキャナドライバ部７３Ａが利用するためにあらかじめ用意されたデータの中に含まれている。また、この情報の一部は、対応スキャナの機能リストとして、システム本体部７２に返される。前述した通り、システム本体部７２は、この機能リストを基に図８に示すオプション設定用ダイアログ９６を表示し、利用者に機能の動作パラメータ設定を行わせる。すなわち、利用者は機能リストが示す対応スキャナの機能に応じてシステム本体部７２が図８の画面で設定可能と定めた範囲の動作パラメータを設定できることになる。これにより、対応スキャナが動作不可能なパラメータを設定するおそれはなくなる。また、利用者は図８の画面にて、対応スキャナがどんな機能を備えるのかを見てとることができる。そして、設定された内容をさらにスキャナドライバ部７３Ａに返す。
【０１０４】
この際に、ＵＳＢ・ネットワークのいずれであっても、同一のＶＩＤ／ＰＩＤを基に各種情報を取り出すため、同一のデータベースあるいはプログラムにより、この処理が行われる。
【０１０５】
そして、制御対象スキャナがネットワークスキャナかＵＳＢスキャナかを判定する（Ｓ４０７）。
ＵＳＢスキャナであった場合は（Ｓ４０７：ＵＳＢ）、上記Ｓ４０５の処理において読み取られたコマンド情報（ＶＩＤ／ＰＩＤに対応したコマンド情報）および前記フロントエンド画面にて利用者が選択した機能に対応するスキャナ制御用コマンドを決定し、ＵＳＢ対応バスにスキャナ制御用のコマンドを送信する（Ｓ４０９）。このコマンドは、ＵＳＢスキャナ側で受信され、その結果、ＵＳＢスキャナは、読取対象物から画像を読み取るための処理を実行する。そして、この処理によって読み取られた画像データが、ＵＳＢスキャナ側からスキャナドライバ部７３Ａへと送信されてくるので、スキャナドライバ部７３Ａは、ＵＳＢ対応バスから画像データを受信する（Ｓ４１１）。
【０１０６】
一方、ネットワークスキャナであった場合は（Ｓ４０７：ネットワーク）、上記Ｓ４０５の処理において読み取られたコマンド情報（ＶＩＤ／ＰＩＤに対応したコマンド情報）に基づき、ネットワークの対応アドレス・対応ポートにスキャナ制御用のコマンドを送信する（Ｓ４１３）。このコマンドは、ネットワークスキャナ側で受信され、その結果、ネットワークスキャナは、読取対象物から画像を読み取るための処理を実行する。そして、この処理によって読み取られた画像データが、ネットワークスキャナ側からスキャナドライバ部７３Ａへと送信されてくるので、スキャナドライバ部７３Ａは、ネットワークの対応アドレス・対応ポートから画像データを受信する（Ｓ４１５）。
【０１０７】
こうしてＳ４１１またはＳ４１５の処理によって画像データを受信したら、スキャナドライバ部７３Ａは、上記Ｓ４０５の処理において読み取られたエンコード情報（ＶＩＤ／ＰＩＤに対応したエンコード情報）に基づき、受信データをエンコード（データ加工）する（Ｓ４１７）。このＳ４１７の処理では、画像データが制御対象スキャナの機種に依存したデータ形式からシステム本体部７２の仕様に合ったデータ形式に変換される。
【０１０８】
そして、Ｓ４１７の処理を終えたら、Ｓ４１７の処理によって変換された画像データをシステム本体部７２に渡して、図９に示した処理を終了する。
以上の処理の結果、システム本体部７２側では、システム本体部７２の仕様に合ったデータ形式に変換された画像データを受信するので、その画像データをアプリケーション部７１Ａ側へと伝送することになる。
【０１０９】
［上記スキャナ制御システムによる効果］
以上説明したように、上記スキャナ制御処理を実行するシステム本体部７２およびスキャナドライバ部７３Ａからなるスキャナ制御システム（本発明のスキャナ制御システムの一例に相当）によれば、ＬＡＮ８経由の通信では、ネットワークスキャナ（複合機３）からＶＩＤ／ＰＩＤを取得できないものの、ネットワークスキャナと通信を行うことなく、設定ファイル８４からＶＩＤ／ＰＩＤ（本発明でいう機種情報の一例に相当）を取得してシステム本体部７２に渡すことができるので、システム本体部７２では、ＵＳＢスキャナおよびネットワークスキャナのいずれであっても、まったく同様に扱うことができるようになる。
【０１１０】
この際に、ＵＳＢ・ネットワークのいずれであっても、同一のＶＩＤ／ＰＩＤを元に各種情報を取り出すため、同一のデータベースあるいはプログラムにより、この処理を行うことができ、装置の簡略化が図れる。
【０１１１】
その結果、例えば、アプリケーション部７１Ａがシステム本体部７２およびスキャナドライバ部７３Ａを介してスキャナを利用する際には、ＵＳＢスキャナ（本発明でいう第１の通信インターフェース介して接続されたスキャナの一例に相当）であればもちろんのこと、ネットワークスキャナ（本発明でいう第２の通信インターフェース介して接続されたスキャナの一例に相当）であっても利用できるので、アプリケーション部７１Ａ側では、通信インターフェースの規格の違いを何ら意識することなく、所望のスキャナを利用できるようになる。
【０１１２】
また、Ｓ１０１〜Ｓ１０９の処理を実行するスキャナドライバ部７３Ａは、利用者が個々のスキャナに対して任意に付与したスキャナ名を含むリストを、システム本体部７２へと提供する。したがって、システム本体部７２がスキャナ名を表示できるようになり、例えば同型のスキャナが複数あるような場合であっても、利用者は所望のスキャナを選択しやすくなる。
【０１１３】
また、Ｓ１０１〜Ｓ１０９の処理を実行するスキャナドライバ部７３Ａは、スキャナの機種名を含むリストを、システム本体部７２へと提供するので、システム本体部７２が機種名を表示できるようになり、利用者は所望の機能を備えた機種を選択しやすくなる。
【０１１４】
また、Ｓ４０９またはＳ４１３の処理を実行するスキャナドライバ部７３Ａは、ＶＩＤ／ＰＩＤ（本発明でいう機種情報の一例に相当）に応じて決まるコマンドを制御対象スキャナへと送信することにより、制御対象スキャナを制御する。したがって、制御対象スキャナの機種が異なる場合でも、それに応じて最適なコマンドを制御対象スキャナに送信できる。
【０１１５】
また、Ｓ４１７の処理を実行するスキャナドライバ部７３Ａは、Ｓ４１１またはＳ４１５の処理によって受信した画像データを、ＶＩＤ／ＰＩＤに応じて、制御対象スキャナの機種に依存したデータ形式から、システム本体部７２の仕様に合ったデータ形式に変換してから、システム本体部７２へと送信する。したがって、制御対象スキャナの機種によって、制御対象スキャナから送信されてくる画像データのデータ形式が異なる場合でも、そのような違いをシステム本体部７２側では意識することなく、画像データを受け取ることができる。
【０１１６】
また、機種記述ファイル８２、および拡張機種記述ファイル８３Ａ，８３Ｂは、同一の機種記述ファイル格納ディレクトリ８１の中に格納されており、Ｓ３０１〜Ｓ３０９の処理を実行するスキャナドライバ部７３Ａは、Ｓ３０３の処理でスキャナありと判定した場合でも、ＶＩＤ／ＰＩＤが、機種記述ファイル８２または拡張機種記述ファイル８３Ａ，８３Ｂのいずれかに記憶された対応機種情報の中に含まれているＶＩＤ／ＰＩＤである場合に、取得したスキャナ情報を有効なものとして扱う。したがって、機種記述ファイル８２または拡張機種記述ファイル８３Ａ，８３Ｂのいずれかに記憶された対応機種のみが、スキャナドライバ部７３Ａの処理対象となり、拡張機種記述ファイルを追加するだけで、簡単に対応機種の追加を行うことができる。また、拡張機種を削除する際には、追加された拡張機種記述ファイルを削除するのみでよい。その際、元のファイル（機種記述ファイル）は無修正で残っているので、拡張前の状態が保存されており、確実に元の状態に戻すことができる。また、複数回にわたり機種拡張が行われた場合にあっても、任意の回に拡張された機種のみを削除することもできる。
【０１１７】
また特に、機種記述ファイル８２および拡張機種記述ファイル８３Ａ，８３Ｂは、それぞれがファイルとして構成されるとともに、それらのファイルが同一の機種記述ファイル格納ディレクトリ８１に格納されている。したがって、機種記述ファイル８２そのものの書き換えを行わなくても、拡張機種記述ファイル８３Ａ，８３Ｂに相当するファイルを機種記述ファイル格納ディレクトリ８１に追加するだけで、簡単に対応機種の追加を行うことができる。
【０１１８】
［設定ツールの詳細］
次に、設定ツール７４の詳細について説明する。
上述のスキャナ制御システムにおいて、設定ツール７４が用意されているのは、次のような理由によるものである。
【０１１９】
すなわち、上述のスキャナ制御システムにおいて、スキャナドライバ部７３Ａがネットワークスキャナを扱えるようにするためは、設定ファイル８４にＶＩＤ／ＰＩＤをあらかじめ登録しておく必要がある。しかし、ＶＩＤ／ＰＩＤは、利用者側から見るときわめて内部的な情報であり、ごく一般的な利用者にとっては、新たにネットワークスキャナとして利用したい複合機３があったとしても、その複合機３のＶＩＤ／ＰＩＤを調べることは容易ではない。そのため、利用者が複合機３のＶＩＤ／ＰＩＤを設定ファイル８４内に直接記述するようなことはきわめて困難であるという問題がある。
【０１２０】
設定ツール７４は、この問題を解決するために提供されるツールであり、ネットワークスキャナ（本発明でいう第２のネットワークを介して通信可能なスキャナ）を識別するために必要なスキャナ情報の具体的な内容を利用者が知らない場合でも、ネットワークスキャナのスキャナ情報を設定ファイル８４（本発明でいうスキャナ情報記憶手段の一例）に登録可能とすることを目的として提供されるものである。
【０１２１】
より詳しくは、設定ツール７４は、ネットワークスキャナに関する情報を設定ファイル８４に追加登録する機能、設定ファイル８４に登録された情報を変更する機能、設定ファイル８４に登録された情報を削除する機能、設定ファイル８４に登録されたネットワークスキャナを診断する機能、機種記述ファイル８２、拡張機種記述ファイル８３Ａ，８３Ｂ、設定ファイル８４に登録された情報を表示する機能などを備えている。これらの機能の内、どの機能を利用するかは、設定ツール７４を起動するときに利用者が操作部１６から入力するコマンドラインの中に記述するパラメータによって指定される。
【０１２２】
以下、設定ツール７４が実行するツール処理について、図１０〜図１３のフローチャートに基づいて説明する。
ツール処理を開始すると、設定ツール７４は、まずコマンドライン中で指定されたパラメータに基づいて、利用者からスキャナ情報追加が指令されたか否かを判断する（Ｓ５０１）。
【０１２３】
Ｓ５０１の処理において、スキャナ情報追加指令であると判定された場合は（Ｓ５０１：ＹＥＳ）、スキャナ情報追加処理を実行する（Ｓ５０３）。このスキャナ情報追加処理は、詳しくは、図１１に示すような処理になる。
【０１２４】
スキャナ情報追加処理を開始すると、設定ツール７４は、スキャナ名入力まで待機する（Ｓ６０１）。ここで入力されるスキャナ名は、利用者が任意に設定したわかりやすい名前とすればよい。スキャナ名が入力されたら、設定ツール７４は、入力されたスキャナ名と設定ファイル８４に登録済みのスキャナ名とを照合する（Ｓ６０３）。
【０１２５】
Ｓ６０３の処理の結果、照合に失敗すれば（Ｓ６０５：ＮＯ）、入力されたスキャナ名が設定ファイル８４に登録されていないことになるので、その場合は、機種名入力まで待機する（Ｓ６０７）。機種名が入力されたら、入力された機種名を機種情報記述ファイル群と照合する（Ｓ６０９）。
【０１２６】
Ｓ６０９の処理の結果、照合に失敗した場合は（Ｓ６１１：ＮＯ）、入力された機種名がスキャナドライバ部７３Ａの対応機種ではないことを意味するので、Ｓ６０７の処理へと戻ることにより、利用者に機種名を再入力させる。なお、Ｓ６０７〜Ｓ６１１の処理を繰り返す中で、利用者が機種名を入力する代わりに、所定のキャンセル操作を行った場合、設定ツール７４は直ちにすべての処理を終了する。ただし、このようなキャンセル処理はこの種のソフトウェアの多くが備えるごく一般的な処理に過ぎないので、フローチャート上での図示は省略する。
【０１２７】
一方、Ｓ６０９の処理の結果、照合に成功した場合（Ｓ６１１：ＹＥＳ）、設定ツール７４は、送信先情報（ＩＰアドレスもしくはノード名）の入力まで待機する（Ｓ６１３）。そして、送信先情報が入力されたら、さらに機種情報記述ファイル群からＶＩＤ／ＰＩＤを読み出して（Ｓ６１５）、スキャナ名、アドレス、ＶＩＤ／ＰＩＤを設定ファイル８４に追加する（Ｓ６１７）。
【０１２８】
Ｓ６１７の処理で設定ファイル８４に追加されるＶＩＤ／ＰＩＤは、Ｓ６１５の処理で読み出されたＶＩＤ／ＰＩＤであり、このＶＩＤ／ＰＩＤは、Ｓ６０７の処理で入力された機種名に対応するものである。したがって、利用者は、設定ファイルに追加したいネットワークスキャナが持っているＶＩＤ／ＰＩＤを知らなくても、機種名さえ知っていれば、Ｓ６０７の処理において機種名を入力することにより、その機種を示すＶＩＤ／ＰＩＤを設定ファイル８４に登録することができる。
【０１２９】
なお、以上が上記Ｓ６０３の処理の結果、照合に失敗した場合の処理となるが、照合に成功した場合は（Ｓ６０５：ＹＥＳ）、入力されたスキャナ名が既に設定ファイル８４に登録されていることになるので、その場合は、同じスキャナ名での登録を避けるため、エラーを表示する（Ｓ６１９）。
【０１３０】
こうしてＳ６１７またはＳ６１９の処理を終えたら、図１１に示したスキャナ情報追加処理を終了することになり、その場合、図１０に示したＳ５０３の処理を終了することになるので、その結果、図１０に示したツール処理全体を終了することになる。
【０１３１】
さて一方、Ｓ５０１の処理において、スキャナ情報追加指令ではないと判定された場合（Ｓ５０１：ＮＯ）、設定ツール７４は、コマンドライン中で指定されたパラメータに基づいて、利用者からスキャナ情報変更が指令されたか否かを判断する（Ｓ５０５）。
【０１３２】
Ｓ５０５の処理において、スキャナ情報変更指令であると判定された場合は（Ｓ５０５：ＹＥＳ）、スキャナ情報変更処理を実行する（Ｓ５０７）。このスキャナ情報変更処理は、詳しくは、図１２に示すような処理になる。
【０１３３】
スキャナ情報変更処理を開始すると、設定ツール７４は、スキャナ名入力まで待機する（Ｓ７０１）。ここで入力されるスキャナ名は、上記Ｓ６０１の処理において入力され、Ｓ６１７の処理により既に登録された名前である。スキャナ名が入力されたら、設定ツール７４は、入力されたスキャナ名と設定ファイル８４に登録済みのスキャナ名とを照合する（Ｓ７０３）。
【０１３４】
Ｓ７０３の処理の結果、照合に成功すれば（Ｓ７０５：ＹＥＳ）、入力されたスキャナ名が設定ファイル８４に登録されていることになるので、その場合、設定ツール７４は、送信先情報（ＩＰアドレスもしくはノード名）の入力まで待機する（Ｓ７０７）。そして、送信先情報が入力されたら、対応スキャナ情報の設定ファイル８４のアドレス項を変更する（Ｓ７０９）。Ｓ７０９の処理において、対応スキャナ情報は、Ｓ７０１の処理で入力されたスキャナ名を含むスキャナ情報のことであり、その中に含まれるアドレス項には、変更前のＩＰアドレスもしくはノード名が格納されている。Ｓ７０９の処理では、そのアドレス項に格納された情報を、Ｓ７０７の処理で入力された送信先情報に書き換える。
【０１３５】
なお、Ｓ７０３の処理の結果、照合に失敗した場合は（Ｓ７０５：ＮＯ）、入力されたスキャナ名が設定ファイル８４に登録されていないことになり、変更対象となる情報が存在しないので、エラーを表示する（Ｓ７１１）。
【０１３６】
こうしてＳ７０９またはＳ７１１の処理を終えたら、図１２に示したスキャナ情報変更処理を終了することになり、その場合、図１０に示したＳ５０７の処理を終了することになるので、その結果、図１０に示したツール処理全体を終了することになる。
【０１３７】
さて一方、Ｓ５０５の処理において、スキャナ情報変更指令ではないと判定された場合（Ｓ５０５：ＮＯ）、設定ツール７４は、コマンドライン中で指定されたパラメータに基づいて、利用者からスキャナ情報削除が指令されたか否かを判断する（Ｓ５０９）。
【０１３８】
Ｓ５０９の処理において、スキャナ情報削除指令であると判定された場合は（Ｓ５０９：ＹＥＳ）、スキャナ情報削除処理を実行する（Ｓ５１１）。このスキャナ情報削除処理は、詳しくは、図１３に示すような処理になる。
【０１３９】
スキャナ情報削除処理を開始すると、設定ツール７４は、スキャナ名入力まで待機する（Ｓ８０１）。ここで入力されるスキャナ名は、上記Ｓ６０１の処理において入力され、Ｓ６１７の処理により既に登録された名前である。スキャナ名が入力されたら、設定ツール７４は、入力されたスキャナ名と設定ファイル８４に登録済みのスキャナ名とを照合する（Ｓ８０３）。
【０１４０】
Ｓ８０３の処理の結果、照合に成功すれば（Ｓ８０５：ＹＥＳ）、入力されたスキャナ名が設定ファイル８４に登録されていることになるので、その場合、設定ツール７４は、対応スキャナ情報を設定ファイル８４より削除する（Ｓ８０９）。Ｓ８０９の処理において、対応スキャナ情報は、Ｓ８０１の処理で入力されたスキャナ名を含むスキャナ情報のことである。
【０１４１】
なお、Ｓ８０３の処理の結果、照合に失敗した場合は（Ｓ８０５：ＮＯ）、入力されたスキャナ名が設定ファイル８４に登録されていないことになり、削除対象となる情報が存在しないので、エラーを表示する（Ｓ８０９）。
【０１４２】
こうしてＳ８０７またはＳ８０９の処理を終えたら、図１３に示したスキャナ情報変更処理を終了することになり、その場合、図１０に示したＳ５１１の処理を終了することになるので、その結果、図１０に示したツール処理全体を終了することになる。
【０１４３】
さて一方、Ｓ５０９の処理において、スキャナ情報削除指令ではないと判定された場合（Ｓ５０９：ＮＯ）、設定ツール７４は、コマンドライン中で指定されたパラメータに基づいて、利用者から診断が指令されたか否かを判断する（Ｓ５１３）。
【０１４４】
Ｓ５１３の処理において、診断指令であると判定された場合（Ｓ５１３：ＹＥＳ）、設定ツール７４は、設定ファイル８４から１台分のスキャナ情報を取り出す（Ｓ５１５）。そして、まだ全スキャナについての処理を終了していなかった場合は（Ｓ５１７：ＮＯ）、Ｓ５１５の処理で取り出したスキャナ情報が示すネットワークスキャナを対象に、応答要求を送信するとともに、その要求に対する応答が返るまで１０秒間待機する（Ｓ５１９）。
【０１４５】
より具体的には、本実施形態の場合、Ｓ５１９の処理では、タイムアウト値１０秒にてＰｉｎｇ（ＩＣＭＰ（Internet Control Message Protocol）エコーパケットの送信処理）を行う。このＳ５１９の処理によるパケット送信先となったスキャナは、ＩＣＭＰエコーパケットを正常に受信した場合、ＩＣＭＰエコーリプライパケットを返すので、このパケットをＰＣ１側で受信することができる。一方、何らかの原因（例えば、ネットワークの障害、スキャナの電源断等）でパケットがスキャナに届かない場合、ＩＣＭＰエコーリプライパケットは返されないので、ＰＣ１側ではパケット送信から１０秒後にタイムアウトが発生する。したがって、パケット送信後にリプライパケットを受信したかタイムアウトとなったかにより、送信先となったスキャナとの間で正常なデータの送受信ができるかどうかを診断することができる。
【０１４６】
そして、Ｓ５１９の処理を終えたらＳ５１５の処理へと戻ることにより、設定ファイル８４に登録された全スキャナについての処理を終了するまでＳ５１５〜Ｓ５１９の処理を繰り返し、全スキャナについて応答があるか否かが診断されることになる。なお、繰り返し処理の結果、全スキャナについての処理を終了したら、図１０に示したツール処理全体を終了する。
【０１４７】
さて一方、Ｓ５１３の処理において、診断指令ではないと判定された場合（Ｓ５０９：ＮＯ）、設定ツール７４は、コマンドライン中で指定されたパラメータに基づいて、利用者から情報表示が指令されたか否かを判断する（Ｓ５２１）。
【０１４８】
Ｓ５２１の処理において、情報表示指令であると判定された場合（Ｓ５２１：ＹＥＳ）、設定ツール７４は、機種記述ファイル群（機種記述ファイル８２、および拡張機種記述ファイル８３Ａ，８３Ｂ）の内容を表示する（Ｓ５２３）。そして、さらに設定ファイル８４の内容を表示して（Ｓ５２５）、図１０に示したツール処理全体を終了する。
【０１４９】
なお、Ｓ５２１の処理において、情報表示指令ではないと判定された場合（Ｓ５２１：ＮＯ）、さらに、その他の処理が実行されることになるが、本発明の要部には関連しないので、詳細な説明については省略する。
【０１５０】
［上記ツール処理による効果］
以上説明したように、上記設定ツール７４によれば、利用者は、Ｓ６０１，Ｓ６０７，Ｓ６１３の各処理により、スキャナの機種名、スキャナのノード名かＩＰアドレス、および利用者が任意に付与したスキャナ名を入力するだけで、Ｓ６１５の処理により、機種情報記述ファイル群（機種記述ファイル８２、および拡張機種記述ファイル８３Ａ，８３Ｂ）からＶＩＤ／ＰＩＤを読み出して、Ｓ６１７の処理により、スキャナ名、アドレス、ＶＩＤ／ＰＩＤを設定ファイル８４に追加することができる。
【０１５１】
したがって、この設定ツール７４を利用すれば、ネットワークスキャナを識別するために必要なスキャナ情報（ＶＩＤ／ＰＩＤを含む情報）の具体的な内容を利用者が知らない場合でも、ネットワークスキャナのスキャナ情報を設定ファイル８４に登録できるようになる。
【０１５２】
また、拡張機種情報記述ファイルを含む機種情報記述ファイル群から、情報を取り出しているために、拡張機種情報記述ファイルを追加するのみで、対応機種を追加することになる。すなわち、この拡張機種情報記述ファイルは、スキャナドライバの機種拡張を行うと同時に、この設定ツール７４の機種拡張をも行うことになる。つまり、スキャナドライバの機種拡張を行えば、他に利用者の手を煩わせることなく自動的に設定ツール７４の機種拡張もできるのである。
【０１５３】
また、上記設定ツール７４においては、Ｓ６０７〜Ｓ６１１の処理により、入力された機種名を機種情報記述ファイル群と照合することにより、スキャナドライバ部７３Ａに対応していない機種名が入力されても、そのような機種名を受け付けないようにしている。したがって、例えば、仮にスキャナドライバ部７３Ａでは制御不能な機種名や、不正な機種名が入力されたとしても、そのような機種名が設定ファイル８４に登録されてしまうのを未然に防ぐことができる。
【０１５４】
［変形例等］
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【０１５５】
例えば、上記実施形態では、スキャナの機種を識別するために必要な情報として、ＶＩＤとＰＩＤを利用する例を示したが、これらＶＩＤおよびＰＩＤは、特定の製造者から提供されるスキャナであることが保証されるような環境であれば、単にＰＩＤのみを利用してスキャナの機種を識別するようにしてもよい。
【０１５６】
また、上記実施形態では、ＵＳＢ  Ｉ／Ｆ１８、ＬＡＮ  Ｉ／Ｆ１９の双方を備えた複合機３を、ＵＳＢスキャナとしてもネットワークスキャナとしても利用する例を示したが、ＵＳＢスキャナとして利用されるスキャナ系デバイスは、必ずしもＬＡＮ  Ｉ／Ｆ１９を備えている必要はない。また、ネットワークキャナとして利用されるスキャナ系デバイスは、必ずしもＵＳＢ  Ｉ／Ｆ１８を備えている必要はない。なお、ＵＳＢ  Ｉ／Ｆ１８を備えていないネットワークキャナの場合、ＵＳＢで利用することを前提としたＶＩＤやＰＩＤは備えていない可能性がある。ただし、この場合でも、スキャナドライバ部７３Ａ側で機種を認識するために必要なＶＩＤ／ＰＩＤ相当の情報が設定ファイル８４に格納されていれば、ＶＩＤ／ＰＩＤを備えていないスキャナ系デバイスを、ＶＩＤ／ＰＩＤを取得可能なスキャナ系デバイスと同等に扱うことができる。
【０１５７】
また、上記実施形態において、システム本体部７２は、ＵＮＩＸ（登録商標）系のＯＳをプラットフォームとする情報処理装置上でＳＡＮＥを構成するために提供されるプログラムを利用して構成されていたが、ＳＡＮＥの場合と同等な機能を有するシステム本体部を用意すれば、本発明のスキャナ制御システムをＵＮＩＸ（登録商標）系以外のＯＳをプラットフォームとする情報処理装置上で機能させることもできる。
【０１５８】
さらに、上記実施形態では、Ｓ６０７、Ｓ６０９の処理において、利用者に機種名を入力させ、それを機種情報記述ファイル、拡張機種情報記述ファイルの内容と照合するように構成したが、予め機種情報記述ファイルおよび拡張機種情報記述ファイルの内容を基に対応機種のリストを作成して、その内容をプルダウンメニューなどで表示し、その中より利用者に機種名を選ばせる構成としてもよい。
【図面の簡単な説明】
【０１５９】
【図１】ＰＣと複合機の概略構成を示すブロック図。
【図２】ＰＣが備えるソフトウェアおよびデータの構成を示すブロック図。
【図３】（ａ）は機種記述ファイルおよび拡張機種記述ファイル内に記述される情報の具体例を示す説明図、（ｂ）は設定ファイル内に記述される情報の具体例を示す説明図。
【図４】スキャナリスト提供処理のフローチャート。
【図５】機種記述データ配列作成処理のフローチャート。
【図６】スキャナデータ情報配列作成処理のフローチャート。
【図７】デバイス選択ダイアログを示す説明図。
【図８】オプション設定用ダイアログを示す説明図。
【図９】スキャナ制御およびデータ伝送処理のフローチャート。
【図１０】ツール処理のフローチャート。
【図１１】スキャナ情報追加処理のフローチャート。
【図１２】スキャナ情報変更処理のフローチャート。
【図１３】スキャナ情報削除処理のフローチャート。
【符号の説明】
【０１６０】
１・・・パーソナルコンピュータ（ＰＣ）、３・・・複合機、７・・・通信ケーブル、８・・・ＬＡＮ、１１，３１・・・ＣＰＵ、１２，３２・・・ＲＯＭ、１３，３３・・・ＲＡＭ、１５，３５・・・ハードディスク装置、１６，３６・・・操作部、１７，３７・・・表示部、１８・・・ＵＳＢインターフェース（ＵＳＢ  Ｉ／Ｆ）、１９・・・ＬＡＮインターフェース（ＬＡＮ  Ｉ／Ｆ）、３４・・・不揮発性ＲＡＭ、４１・・・印刷部、４２・・・読取部、４３・・・モデム、７１Ａ，７１Ｂ・・・アプリケーション部、７２・・・システム本体部、７２Ａ・・・フロントエンド部、７３Ａ，７３Ｂ・・・スキャナドライバ部、７４・・・設定ツール、８１・・・機種記述ファイル格納ディレクトリ、８２・・・機種記述ファイル、８３Ａ，８３Ｂ・・・拡張機種記述ファイル、８４・・・設定ファイル。
【図１】
0004760460.tif 000002
【図２】
0004760460.tif 000003
【図３】
0004760460.tif 000004
【図４】
0004760460.tif 000005
【図５】
0004760460.tif 000006
【図６】
0004760460.tif 000007
【図９】
0004760460.tif 000008
【図１０】
0004760460.tif 000009
【図１１】
0004760460.tif 000010
【図１２】
0004760460.tif 000011
【図１３】
0004760460.tif 000012
【図７】
0004760460.tif 000013
【図８】
0004760460.tif 000014