(57)【特許請求の範囲】
【請求項１】
固有情報を有する周辺装置を管理する周辺装置管理プログラムと、前記周辺装置用のアプリケーションとを実行する情報処理装置であって、
前記周辺装置管理プログラムの機能にて前記アプリケーションの起動を指示するアプリケーション起動手段と、
前記アプリケーションが終了時に選択していた周辺装置のデバイス名と、周辺装置の固有情報とを含む周辺装置情報を管理する管理手段と、
前記アプリケーション起動手段によるアプリケーションの起動に際して、デバイス名称を引数として設定する設定手段と、
前記アプリケーション起動手段によるアプリケーションの起動に際して、前記引数として設定されたデバイス名と一致したデバイス名称を含む前記管理手段により管理された周辺装置情報を読みこみ、当該アプリケーションに対して、デフォルトの接続先のデバイスとして、当該読みこまれた周辺装置情報に含まれる固有情報に対応する周辺装置を関連付けるよう制御する制御手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記固有情報がネットワークの固有情報であるＭＡＣアドレスを含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記固有情報が周辺装置のシリアル番号を含むことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記制御手段は、前記デバイス名と前記読みこまれた周辺装置情報に含まれる固有情報とを用いたドライバ名を用いて、前記アプリケーションに対して周辺装置を関連付けるよう制御することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
オペレーティングシステムにより提供され、固有情報を有する周辺装置を管理する周辺装置管理プログラムと、前記周辺装置用の複数のアプリケーションとを実行する情報処理装置であって、
前記周辺装置管理プログラムの機能にて、第１のアプリケーションと、前記オペレーティングシステムで前記周辺装置管理プログラムの制御のための変数としてドライバ名がサポートされている第２のアプリケーションと、の起動を指示するアプリケーション起動手段と、
前記アプリケーション起動手段による第１のアプリケーションの起動に際して、前記第２のアプリケーションに関連付く周辺装置の固有情報を含む前記ドライバ名を取得し、前記第１のアプリケーションに対して、当該取得したドライバ名に含まれる固有情報に対応する周辺装置を関連付けるよう制御する制御手段と
を有することを特徴とする情報処理装置。
【請求項６】
オペレーティングシステムにより提供され、固有情報を有する周辺装置を管理する周辺装置管理プログラムと、前記周辺装置用のアプリケーションとを実行する情報処理装置であって、
前記アプリケーションの機能として、前記周辺装置管理プログラムの機能にて前記アプリケーションの起動が指示された際に、デバイス名称を引数として取得する取得手段と、
前記アプリケーションの機能として、前記アプリケーションが終了時に選択していた周辺装置のデバイス名称と、周辺装置の固有情報とを含む周辺装置情報を管理する管理手段と、
前記アプリケーションの機能として、前記引数として取得されたデバイス名称と一致したデバイス名称を含む前記管理手段により管理された周辺装置情報を読みこみ、当該アプリケーションに対して、デフォルトの接続先のデバイスとして、当該読みこまれた周辺装置情報に含まれる固有情報に対応する周辺装置を関連付けるよう制御する制御手段と
を有することを特徴とする情報処理装置。
【請求項７】
固有情報を有する周辺装置を管理する周辺装置管理プログラムと、前記周辺装置用のアプリケーションとを実行する情報処理装置の制御方法であって、
前記周辺装置管理プログラムの機能にて前記アプリケーションの起動を指示するアプリケーション起動工程と、
前記アプリケーションが終了時に選択していた周辺装置のデバイス名と、周辺装置の固有情報とを含む周辺装置情報を管理する管理工程と、
前記アプリケーション起動工程でのアプリケーションの起動に際して、デバイス名称を引数として設定する設定工程と、
前記アプリケーション起動工程でのアプリケーションの起動に際して、前記引数として設定されたデバイス名と一致したデバイス名称を含む前記管理された周辺装置情報を読みこみ、当該アプリケーションに対して、デフォルトの接続先のデバイスとして、当該読みこまれた周辺装置情報に含まれる固有情報に対応する周辺装置を関連付けるよう制御する制御工程と
を有することを特徴とする制御方法。
【請求項８】
オペレーティングシステムにより提供され、固有情報を有する周辺装置を管理する周辺装置管理プログラムと、前記周辺装置用の複数のアプリケーションとを実行する情報処理装置の制御方法であって、
前記周辺装置管理プログラムの機能にて、第１のアプリケーションと、前記オペレーティングシステムで前記周辺装置管理プログラムの制御のための変数としてドライバ名がサポートされている第２のアプリケーションの起動を指示するアプリケーション起動工程と、
前記アプリケーション起動工程での第１のアプリケーションの起動に際して、前記第２のアプリケーションに関連付く周辺装置の固有情報を含む前記ドライバ名を取得し、前記第１のアプリケーションに対して、当該取得したドライバ名に含まれる固有情報に対応する周辺装置を関連付けるよう制御する制御工程と
を有することを特徴とする制御方法。
【請求項９】
オペレーティングシステムにより提供され、固有情報を有する周辺装置を管理する周辺装置管理プログラムと、前記周辺装置用のアプリケーションとを実行する情報処理装置の制御方法であって、
前記アプリケーションの機能として、前記周辺装置管理プログラムの機能にて前記アプリケーションの起動が指示された際に、デバイス名称を引数として取得する取得工程と、
前記アプリケーションの機能として、前記アプリケーションが終了時に選択していた周辺装置のデバイス名称と、周辺装置の固有情報とを含む周辺装置情報を管理する管理工程と、
前記アプリケーションの機能として、前記引数として取得されたデバイス名称と一致したデバイス名称を含む前記管理された周辺装置情報を読みこみ、当該アプリケーションに対して、デフォルトの接続先のデバイスとして、当該読みこまれた周辺装置情報に含まれる固有情報に対応する周辺装置を関連付けるよう制御する制御工程と
を有することを特徴とする制御方法。
【請求項１０】
請求項１乃至５に記載の情報処理装置の備えた各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周辺装置を利用する際の情報処理装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
米国マイクロソフト社のWindows（登録商標） 7では、パーソナルコンピュータ（以降、ＰＣと略す場合がある）等の情報処理装置に接続された周辺装置を管理する新しい機能が導入されている。ＰＣに接続された装置を表示するウィンドウであるデバイスとプリンターフォルダと各周辺装置に特有なアプリケーションやサービスへのリンク機能を備えるＤｅｖｉｃｅ  Ｓｔａｇｅ（ＤＥＶＩＣＥ  ＳＴＡＧＥ：登録商標）である。デバイスとプリンターフォルダの画面（図５（ａ））は、Windowsの「スタートメニュー」から表示することができる。デバイスとプリンターフォルダからはさらに各周辺装置のＤｅｖｉｃｅ  Ｓｔａｇｅ画面（図５（ｂ））を開くことができる。Ｄｅｖｉｃｅ  Ｓｔａｇｅではビジュアルな画面を提供でき、ユーザが簡単に装置に関連する機能やサービスにアクセスすることができるようになる。周辺装置の例としては、プリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、デジタルビデオカメラ、及びストレージを搭載したマルチファンクションプリンタやこれらの複合機能等が挙げられる。ここでは、周辺装置として、スキャナを例として説明する。例えば、画像やドキュメントの読取りが可能なアプリケーションへのリンクをＤｅｖｉｃｅ  Ｓｔａｇｅ画面上から提供すること等が考えられる。この例の場合、Ｄｅｖｉｃｅ  Ｓｔａｇｅ画面から、画像やドキュメントの読取りが可能なアプリケーションを起動して、周辺装置（スキャナ）を使って画像やドキュメントを読取ること等ができる。
【０００３】
また、インターネットの普及に伴い、情報処理装置や周辺装置をインターネットに接続し、インターネットを利用した様々なオンラインサービスも提供されている。例えば、メーカーがインターネット上で提供するサポートサイトのリンクをＤｅｖｉｃｅ  Ｓｔａｇｅ画面上に設けることで、ユーザが簡単に装置に関連するサイトにアクセスできるようにするといった活用例も挙げられる。Ｄｅｖｉｃｅ  Ｓｔａｇｅの中身は、ＸＭＬ形式のファイル、画像やアイコン等のリソースファイルだけから構成されるメタデータである。各周辺装置用に、このメタデータ、すなわち、ＸＭＬファイル、画像ファイル、アイコンファイルをカスタマイズすることで、それぞれの周辺装置用のＤｅｖｉｃｅ  Ｓｔａｇｅの表示や機能をカスタマイズすることができる。動作の制御はＸＭＬファイルに記述される。ＸＭＬファイルはテキストファイルである為、一般的なプログラムのようなソフトウェアに実装されている任意の関数や変数を持つことができない。但し、ＯＳでサポートされているいくつかの情報に関しては、Ｄｅｖｉｃｅ  ＳｔａｇｅのＸＭＬファイル内で使用できる変数がＯＳから提供されている。その変数には、例えば、プリンタキューに割り当てられたプリンタドライバ名（フレンドリーネーム）用の変数や、後述するＷＩＡを利用したスキャナ機能用のＷＩＡドライバに割り当てられるＷＩＡドライバ名用の変数等がある。しかしながら、後述するＴＷＡＩＮを利用したスキャナ機能用のＴＷＡＩＮドライバに割り当てられるＴＷＡＩＮドライバ名用の変数は、ＯＳから提供されていない。以下、本実施例においては、Ｄｅｖｉｃｅ  Ｓｔａｇｅ画面をデバイス管理画面と呼んで説明する場合がある。
【０００４】
従来、アプリケーションからＭＦＰのスキャナ機能を利用して画像やドキュメントを読取る場合、一般的に次に示すような操作手順により行われている。
（１−１）  アプリケーションを起動する。
（１−２）  アプリケーション内のスキャナ選択部で、入力装置であるスキャナ（ドライバ）を選択する。
（１−３）  アプリケーション上から、読取りを実行する。
例えば、ＭＦＰやスキャナ等の複数の入力装置が１台のＰＣに接続されていて、ＰＣに入力装置のドライバがインストールされている場合、一度、読取りを実行した後は、最後に選択された入力装置が、次回このアプリケーションを起動する時のデフォルトデバイスとして選択された状態となっているケースが多い（例えば特許文献１等参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−８５１３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
Ｄｅｖｉｃｅ  Ｓｔａｇｅからリンクされたアプリケーションを起動して、ＭＦＰにセットされた画像やドキュメントを読取る場合、一連の手順が従来とは多少異なる。具体的には、Ｄｅｖｉｃｅ  Ｓｔａｇｅの画面が、デバイスとプリンターフォルダを経由して表示される為、次に示すような操作手順となる。
（２−１）  デバイスとプリンターフォルダを開く。
（２−２）  デバイスとプリンターフォルダ内で、操作対象の周辺装置を選択する。
（２−３）  その周辺装置用のＤｅｖｉｃｅ  Ｓｔａｇｅ画面を開く。
（２−４）  Ｄｅｖｉｃｅ  Ｓｔａｇｅ画面上から、アプリケーションを起動する。
（２−５）  アプリケーションで、読取りを実行する。
【０００７】
例えば、ＭＦＰやスキャナ等の複数の入力装置が１台のＰＣに接続されていて、これらの入力装置用のドライバがインストールされている場合において、あるアプリケーションからあるスキャナを使って一度読取りが行われていたケースを考える。この時、次回このアプリケーションを起動する時には、デフォルトデバイスとして、このスキャナが選択された状態となっている。ここで、前記ステップ（２−１）〜（２−５）の操作により、そのスキャナとは異なるＭＦＰを使って、当該アプリケーションからこのＭＦＰにセットされている画像やドキュメントの読取りを実行することを試みる。ステップ（２−５）において、アプリケーションで読取りを実行した場合、このアプリケーションは、このＭＦＰからではなく、このアプリケーション内でデフォルトデバイスとして設定されているスキャナから画像やドキュメントの読取りを実行する。その結果、期待される画像やドキュメントを読取ることができず、画像やドキュメントの読取りに失敗する、という問題がある。
【０００８】
次に、ＭＦＰが、ＵＳＢとEthernet（登録商標）ネットワーク等の複数のインタフェースを介して１台のＰＣに接続されているケースを考える。このようなケースの場合、接続されるインタフェースによって、ＭＦＰ用のドライバの名前が変わる。例えば、図６（ｂ）で後述するように、ＵＳＢ接続のＴＷＡＩＮドライバの場合は「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）」というドライバ名が、ＷＳＤプロトコルのネットワーク接続のＴＷＡＩＮドライバの場合は「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿＊＊＊＊＊＊＊＊＊＊＊＊」というドライバ名が、前記アプリケーション内のスキャナ選択部に表示される。ここで、＊＊＊＊＊＊＊＊＊＊＊＊の部分はＭＦＰのシリアル番号が割り当てられている。一般的に、このシリアル番号はそのＭＦＰの通信部のハードウェア固有に与えられたＭＡＣアドレス（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ａｄｄｒｅｓｓ）を利用して構成されているケースが多い。今、ＭＦＰが、ＵＳＢとEthernetネットワークの２つのインタフェースを介して１台のＰＣに接続されているとする。まず、従来の操作手順により、ステップ（１−２）でアプリケーション内のスキャナ選択部でＵＳＢ接続のＴＷＡＩＮドライバ「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）」を選択し、ステップ（１−３）でアプリケーション上からＵＳＢを介してＭＦＰで読取りを実行する。読取りが完了した時点では、次回このアプリケーションを起動する時には、デフォルトデバイスとして、このＵＳＢ接続のＴＷＡＩＮドライバ「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）」が選択された状態となっている。次に、ＭＦＰからＵＳＢケーブルを抜き、ＭＦＰがEthernetネットワークだけを介してＰＣに接続されている状態にする。この状態から、Ｄｅｖｉｃｅ  Ｓｔａｇｅからリンクされたアプリケーションを起動して、ＷＳＤプロトコルのネットワーク接続のＴＷＡＩＮドライバ「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０８１４」を使って、Ethernetネットワークを介してＭＦＰで読取りを実行することを試みる。ステップ（２−５）において、アプリケーション上から読取りを実行した場合、このアプリケーションは、ＷＳＤプロトコルのネットワーク接続のＴＷＡＩＮドライバ「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０８１４」ではなく、このアプリケーション内でデフォルトデバイスと設定されているＵＳＢ接続のＴＷＡＩＮドライバ「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）」を使って画像やドキュメントの読取りを実行しようとする。その結果、ＭＦＰがＵＳＢを介してＰＣと接続されていない為、期待される画像やドキュメントを読取ることができず、画像やドキュメントの読取りに失敗する、という問題もある。
【０００９】
さらに、同一モデル名でシリアル番号の異なるＭＦＰが同一ネットワーク上に２台存在し、１台のＰＣ内にそれぞれのＭＦＰ用のＴＷＡＩＮドライバがインストールされているケースを考える。この時、それぞれのＭＦＰ用に割り当てられたＴＷＡＩＮドライバ名は、「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０８１４」、「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０７０７」であると仮定する。これらのＭＦＰのモデル名はＫｍｍｎ、シリアル番号はそれぞれＡＡＢＢＣＣＸＸ０８１４、ＡＡＢＢＣＣＸＸ０７０７である。
【００１０】
例えば、ＰＣ上で実行することができるアプリケーションのようなソフトウェアにおいて、アプリケーション（ソフトウェア）が周辺装置に問い合わせてデバイスＩＤを取得し、そのデバイスＩＤ内に含まれているその周辺装置のモデル名やシリアル番号を取得し、そのモデル名やシリアル番号をそれぞれの変数に代入して、その後の制御を行う、というようなケースがある。この場合、アプリケーションは、周辺装置のモデル名やシリアル番号がハードコーディングされている必要はなく、変数に格納されているモデル名とシリアル番号を用いて、同一モデルの識別や、同一モデルで異なる個体の識別等を容易に行うことができる。また、アプリケーションがＯＳに問い合わせて、各周辺装置に割り当てられているＴＷＡＩＮドライバ名を取得し、変数に代入して、この変数を使って操作対象の周辺装置を特定して制御することも容易に行うことができる。
【００１１】
これに対して、Ｄｅｖｉｃｅ  Ｓｔａｇｅのメタデータ内のＸＭＬファイルでは、このような変数を使用することができない為、ＸＭＬファイルに定数を記述するハードコーディングに頼らざるを得ない。しかしながら、周辺装置の個体を識別する為のシリアル番号のような無数にある情報をこのＸＭＬファイルに事前にハードコーディングすることは困難である。その為、例えば、ＴＷＡＩＮドライバ名に前記シリアル番号が付加されて、ネットワーク上の同一モデル名の異なる個体の識別に使用されているような場合、前記ＸＭＬファイルを使ったＤｅｖｉｃｅ  Ｓｔａｇｅ上から、ＴＷＡＩＮ対応アプリケーションを起動して、前記各個体を識別して制御することは困難である。
【００１２】
例えば、前述したような、同一モデル名でシリアル番号の異なるＭＦＰが、同一ネットワーク上に２台存在するケースを考える。それらの内の一方である、ＡＢＣ社製のモデル名がＫｍｍｎでシリアル番号ＡＡＢＢＣＣＸＸ０８１４のＭＦＰ（以降、ＭＦＰ３と呼ぶ）がＵＳＢとネットワークの２つのインタフェースを介してＰＣと接続されている。他方である、ＡＢＣ社製のモデル名がＫｍｍｎでシリアル番号ＡＡＢＢＣＣＸＸ０７０７のＭＦＰ（以降、ＭＦＰ７７７と呼ぶ）がネットワークだけのインタフェースを介してＰＣと接続されている（図１）。
【００１３】
今、アプリケーションを起動して、ＭＦＰ３用のＵＳＢ接続のＴＷＡＩＮドライバ名「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）」を選択し、一度読取りを行った後、アプリケーションを終了した状態であると仮定する。この時、アプリケーションにおいて、次回このアプリケーションを起動する時のデフォルトデバイスとして、「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）」が選択された状態となっている。ここで、前記ステップ（２−１）〜（２−５）の操作により、ＭＦＰ７７７用のＤｅｖｉｃｅ  Ｓｔａｇｅ画面上からアプリケーションを起動して読取りを実行すると、Ｄｅｖｉｃｅ  Ｓｔａｇｅ画面上からアプリケーションを起動する際に、第１引数として、ＡＢＣ社製のモデル名Ｋｍｍｎ用のネットワーク接続のＴＷＡＩＮドライバ名を表す「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）  ＷＳＤ」が指定されてアプリケーションが起動する。この時、アプリケーションは、この第１引数からネットワーク接続のＡＢＣ社製のモデル名ＫｍｍｎのＭＦＰを検索するが、この第１引数の中にシリアル番号を特定する情報が無い為、ＭＦＰ３とＭＦＰ７７７を区別することができない。その為、アプリケーションは、どちらか一方（例えば、検索時に先に発見された方）のＴＷＡＩＮドライバ名を起動時のデフォルトデバイスに設定して起動する。その結果、ＭＦＰ７７７用のＤｅｖｉｃｅ  Ｓｔａｇｅ画面上からアプリケーションを起動したにもかかわらず、ＭＦＰ３用のＴＷＡＩＮドライバ名「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０８１４」が選択された状態でアプリケーションが起動する場合がある。この場合、ユーザがＭＦＰ７７７から読取りを実行することができず、操作性が悪く、問題となっている。
【００１４】
以上をまとめると、Ｄｅｖｉｃｅ  Ｓｔａｇｅからデバイス（特にＴＷＡＩＮデバイス）に関連づけられたアプリケーションを実行する際には以下の問題がある。
【００１５】
第１に、アプリケーションの実行時に、特定のデバイスがデフォルトデバイスとしてそのアプリケーションに記憶されていると、Ｄｅｖｉｃｅ  Ｓｔａｇｅで選択したデバイスとは関係なく、そのデフォルトデバイスが使用されてしまう。
【００１６】
第２に、起動されたアプリケーションのデフォルトデバイスが接続されていない場合、Ｄｅｖｉｃｅ  Ｓｔａｇｅで選択したデバイスとは関係なく、デフォルトデバイスに似たデバイス名を持つデバイスが使用されてしまう。
【００１７】
本発明では上記問題点に着目してなされたもので、ユーザの使用環境に応じて適切な表示や機能を提供するデバイス管理画面を提供し、アプリケーションを起動して周辺装置を制御する際に、ユーザの使用環境に合わせて周辺装置を適切かつ確実に制御することができる、操作性に優れた手法を提案することを目的とする。
【００１８】
より具体的には、前述のデバイス管理画面を介してアプリケーションを起動した際には、当該アプリケーションを、起動に際して関連づけられた周辺装置を使用して動作させる手法を提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記目的を達成するために本発明は、例えば、以下の構成を備える。
【００２０】
すなわち、固有情報を有する周辺装置を管理する周辺装置管理プログラムと、前記周辺装置用のアプリケーションとを実行する情報処理装置であって、前記周辺装置管理プログラムの機能にて前記アプリケーションの起動を指示するアプリケーション起動手段と、前記アプリケーションが終了時に選択していた周辺装置のデバイス名と、周辺装置の固有情報とを含む周辺装置情報を管理する管理手段と、前記アプリケーション起動手段によるアプリケーションの起動に際して、デバイス名称を引数として設定する設定手段と、前記アプリケーション起動手段によるアプリケーションの起動に際して、前記引数として設定されたデバイス名と一致したデバイス名称を含む前記管理手段により管理された周辺装置情報を読みこみ、当該アプリケーションに対して、デフォルトの接続先のデバイスとして、当該読みこまれた周辺装置情報に含まれる固有情報に対応する周辺装置を関連付けるよう制御する制御手段とを有することを特徴とする。
また他の側面によれば、本発明は、オペレーティングシステムにより提供され、固有情報を有する周辺装置を管理する周辺装置管理プログラムと、前記周辺装置用の複数のアプリケーションとを実行する情報処理装置であって、
前記周辺装置管理プログラムの機能にて、第１のアプリケーションと、前記オペレーティングシステムで前記周辺装置管理プログラムの制御のための変数としてドライバ名がサポートされている第２のアプリケーションと、の起動を指示するアプリケーション起動手段と、
前記アプリケーション起動手段による第１のアプリケーションの起動に際して、前記第２のアプリケーションに関連付く周辺装置の固有情報を含む前記ドライバ名を取得し、前記第１のアプリケーションに対して、当該取得したドライバ名に含まれる固有情報に対応する周辺装置を関連付けるよう制御する制御手段とを有することを特徴とする。
また更に他の側面によれば、本発明は、オペレーティングシステムにより提供され、固有情報を有する周辺装置を管理する周辺装置管理プログラムと、前記周辺装置用のアプリケーションとを実行する情報処理装置であって、
前記アプリケーションの機能として、前記周辺装置管理プログラムの機能にて前記アプリケーションの起動が指示された際に、デバイス名称を引数として取得する取得手段と、
前記アプリケーションの機能として、前記アプリケーションが終了時に選択していた周辺装置のデバイス名称と、周辺装置の固有情報とを含む周辺装置情報を管理する管理手段と、
前記アプリケーションの機能として、前記引数として取得されたデバイス名称と一致したデバイス名称を含む前記管理手段により管理された周辺装置情報を読みこみ、当該アプリケーションに対して、デフォルトの接続先のデバイスとして、当該読みこまれた周辺装置情報に含まれる固有情報に対応する周辺装置を関連付けるよう制御する制御手段とを有することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、次のような効果が得られる。ユーザの使用環境に応じて適切な表示や機能を提供するデバイス管理画面を提供することができ、操作性に優れた手法を提供できる。具体的には、アプリケーションを起動した際に、当該アプリケーションは、起動に際して関連づけられたデバイスを使用して動作する。
【図面の簡単な説明】
【００２２】
【図１】本発明に係る情報処理装置及び周辺装置からなる周辺装置制御システムの一実施形態におけるシステムの構成部分を表すブロック図
【図２】ＰＣとＭＦＰのハードウェア構成の一例を表すブロック図
【図３】ＰＣのソフトウェア構成を表す図
【図４】ＰＣにおけるプリンタドライバの構成を表す図
【図５】デバイスとプリンターフォルダとデバイス管理画面を表す図
【図６】ＷＩＡアプリケーションとＴＷＡＩＮアプリケーションを表す図
【図７】ＰＣのソフトウェア構成を表す図
【図８】デバイス管理制御用ファイル８００の内容を表す図
【図９】デバイス管理制御用ファイル８５０の内容を表す図
【図１０】デバイス接続時の処理を表すフローチャート
【図１１】デバイス管理制御用ファイルのインストールの処理を表すフローチャート
【図１２】デバイス管理画面の起動の処理を表すフローチャート
【図１３】デバイス管理画面の表示内容の構築の処理を表すフローチャート
【図１４】デバイス管理とＴＷＡＩＮアプリケーションのソフトウェア構成を表す図
【図１５】ＴＷＡＩＮアプリケーションの起動の処理を表すフローチャート
【図１６】ＴＷＡＩＮアプリケーションの終了の処理を表すフローチャート
【図１７】ＴＷＡＩＮアプリケーションの起動の処理を表すフローチャート
【図１８】ＴＷＡＩＮアプリケーションの起動の処理を表すフローチャート
【図１９】ＭＦＰ８８８から発行されるＷＳＤベースのＮ−ＰｎＰの情報を表す図
【図２０】スキャナセレクタを表す図
【図２１】ＴＷＡＩＮアプリケーションの起動の処理を表すフローチャート
【図２２】スキャナセレクタの処理を表すフローチャート
【発明を実施するための形態】
【００２３】
以下、本発明の実施の形態を、図面を参照して説明する。以下で引用されるWindows 7 Operating Systemの情報の内、特に詳しい説明を付加していないものに関しては、２０１０年４月２０日現在、Microsoft Developer Network (MSDN)のサイト（http://msdn.microsoft.com/en-us/library/default.aspx）でインターネット上で公開されている情報であるので、必要以上の説明を省略する。
【００２４】
以下において、ＵＳＢとは、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ Ｂｕｓを表し、２０１０年４月２０日現在、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ Ｂｕｓのサイト（http://www.usb.org/home）上で公開されている情報であるので、必要以上の説明を省略する。
【００２５】
以下において、ＷＳＤとは、Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  ｏｎ  Ｄｅｖｉｃｅｓを表し、２０１０年４月２０日現在、Ｗｉｎｄｏｗｓ  Ｈａｒｄｗａｒｅ  Ｄｅｖｅｌｏｐｅｒ  Ｃｅｎｔｒａｌのサイト（http://www.microsoft.com/whdc/connect/rally/rallywsd.mspx）上で公開されている情報であるので、必要以上の説明を省略する。
【００２６】
以下において、ＷＩＡとは、Ｗｉｎｄｏｗｓ  Ｉｍａｇｅ  Ａｃｑｕｉｓｉｔｉｏｎの略であり、Windows Operating System上でイメージスキャナ等から画像を入力する為の標準インタフェース（ＡＰＩ）であるので、必要以上の説明を省略する。
【００２７】
以下において、ＴＷＡＩＮとは、ＴＷＡＩＮ  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐによって管理されているＰＣとスキャナやデジタルカメラとの間のインタフェースであり、２０１０年４月２０日現在、ＴＷＡＩＮ  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐのサイト（http://www.twain.org/）上でインターネット上で公開されている情報であるので、必要以上の説明を省略する。
【００２８】
［実施形態１］
＜ネットワーク構成例＞
図１は本発明に係る情報処理装置及び周辺装置からなる周辺装置制御システムの一実施形態におけるシステムの構成部分を表すブロック図である。図１において、情報処理装置１、２は、一般的なパーソナルコンピュータ（以降、ＰＣと略す場合がある）で構成される。ＰＣ１、ＰＣ２は図２（ａ）に示すハードウェアで構成され、オペレーティングシステム（以降、ＯＳと略す場合がある）として米国マイクロソフト社のWindows 7と同等のＯＳがインストールされている。ＰＣ１、ＰＣ２はそれぞれイーサネット（登録商標）で構成されるネットワーク４、８に接続されている。ＰＣ１等は、ＭＦＰ等の周辺装置を制御する周辺装置制御装置として機能する。マルチファンクションプリンタ（以降、ＭＦＰと略す場合がある）３、７７７、８８８は、カラーインクジェットプリンタ、カラーファクシミリ、カラースキャナ、フラッシュメモリ用の外部ストレージ等で構成される。これらＭＦＰは、本実施形態における周辺装置の一例である。
【００２９】
ＭＦＰ３とＭＦＰ７７７はどちらもABC社製のKmmnというモデル名で、シリアル番号がそれぞれＡＡＢＢＣＣＸＸ０８１４、ＡＡＢＢＣＣＸＸ０７０７のＭＦＰである。これらのＭＦＰのシリアル番号には、ＭＦＰのネットワークインタフェースのＭＡＣアドレスがそのまま使われている。シリアル番号は周辺装置すなわちＭＦＰに固有の固有情報である。ＭＦＰ８８８はＡＢＣ社製のＭｎｍｋというモデル名で、シリアル番号がＹＹ１２１８ＹＹ０７３０のＭＦＰである。ＭＦＰ８８８は無線ＬＡＮ（IEEE 802.11b/g/n）と有線ＬＡＮ（Ethernet）の両方のネットワークインタフェースに対応している。ＭＦＰ８８８は、無線ＬＡＮが有効の場合には有線ＬＡＮが無効、有線ＬＡＮが有効の場合には無線ＬＡＮが無効というように、無線ＬＡＮと有線ＬＡＮを排他的に切り換えるような仕組みとなっている。その為、シリアル番号にＭＡＣアドレスをそのまま使わずに、無線ＬＡＮデバイスとしてのＭＡＣアドレスＡＡＢＢＣＣＹＹ１２１８と、有線ＬＡＮデバイスとしてのＭＡＣアドレスＡＡＢＢＣＣＹＹ０７３０の、それぞれの下位２４ビットを組み合せたＹＹ１２１８ＹＹ０７３０という値が使われている。図１では、ＭＦＰ８８８が、有線ＬＡＮ（イーサネット）が有効な状態でネットワーク４を介してＰＣ１と接続されている状態を表している。ここで、ＭＡＣアドレスの上位２４ビット「ＡＡＢＢＣＣ」は、製造元であるＡＢＣ社に割り当てられている製造元情報である。尚、本実施形態における周辺装置としては、プリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、デジタルビデオカメラ、及びこれらの複合機能を備える装置等であってもよい。
【００３０】
ＭＦＰ３、ＭＦＰ７７７、ＭＦＰ８８８は図２（ｂ）で後述するようなハードウェアで構成され、ＰＣ１とＵＳＢインタフェース１４及びネットワーク４を介して接続されており、互いに双方向通信が可能である。アプリケーション８０は、Windows用の実行可能形式のファイル（*.EXE）で構成されるデバイス管理プログラムである。実行中のデバイス管理プログラムは、論理的には周辺装置を管理する周辺装置管理機能部として抽象化される。本発明のアプリケーションの一例として、アプリケーション８０は図５（ｂ）に示すようなデバイス管理画面を表示する機能を備える。アプリケーション１４２は図６（ｂ）で後述するＴＷＡＩＮ対応のアプリケーションプログラムである。ＴＷＡＩＮアプリケーション１４２の実行ファイル名は、ＴＷＡＩＮＳｃａｎ．ｅｘｅである。ＴＷＡＩＮドライバ１４１は図７（ｂ）で後述するドライバプログラムである。ネットワーク４は、ＭＦＰ３、ＭＦＰ７７７、ＭＦＰ８８８、後述するＭＦＰ７を使用するユーザ（顧客）が住んでいる自宅に構築された一般家庭用のホームネットワークである。ＭＦＰ３、ＭＦＰ７７７、ＭＦＰ８８８、ＭＦＰ７はこの自宅内でネットワーク４を介してＰＣ１と接続されて家族間で共有使用されているＭＦＰである。ネットワーク８はABC社内に構築されたオフィスネットワークである。ネットワーク８に接続されているＰＣ２はＷｅｂサーバの機能を備えるＷｅｂサーバ９を備えており、インターネットを介してABC社のＷｅｂサイトを提供している。ＣＤ−ＲＯＭ１０はＰＣ１に挿入可能な記録媒体であり、ソフトウェアや電子ファイルが格納されている。尚、本発明の実施形態では、このような記憶媒体の例としてＣＤ−ＲＯＭを挙げたが、例えばＤＶＤ−ＲＯＭ等の任意の記憶媒体を利用することができる。ファイル格納部１１、１２は、Ｗｅｂサーバ９やＣＤ−ＲＯＭ１０内に設けられ、図８、図９で後述するデバイス管理制御用ファイル８００、８５０を格納している。デバイス管理制御用ファイル８００、８５０は、ファイル格納部１１や、ＣＤ−ＲＯＭ１０等の記録媒体から配布される。アナログ電話回線５は、ＰＣ１におけるＭＦＰ３を介したファクシミリの送信または受信に使用される。フラッシュメモリ６は、ＭＦＰ３のフラッシュメモリ装着用のスロット（図では省略）に装着されると、ＰＣ１からストレージとして参照することができる。ＭＦＰ７は、XYZ社製のDefgというモデル名で、シリアル番号がＸＸＹＹＺＺ００１２２４であり、ＭＦＰ３とは全く異なるデバイスである。このＭＦＰのシリアル番号には、ＭＡＣアドレスがそのまま使われている。
【００３１】
また、ＷＩＡを介して制御されるデバイス（例えばスキャナ）のために、ＷＩＡドライバ７０３、７０４およびＷＩＡアプリケーション１４３もＰＣ１にインストールされる。ＷＩＡドライバにはオペレーティングシステムにより提供されるコモンＷＩＡドライバ７０３とハードウエアベンダにより提供されるＩＨＶ  ＷＩＡドライバ７０４がある。
【００３２】
＜ＰＣおよびＭＦＰのハードウエア＞
図２はＰＣとＭＦＰのハードウェア構成の一例を表すブロック図である。ＰＣ１、ＰＣ２は図２（ａ）に示すようなハードウェアで構成されている。図２（ａ）ではＰＣ１の例で説明する。図２（ａ）に示す通り、ＰＣ１はランダムアクセスメモリ部（ＲＡＭ２０１）、記憶部であるハードディスクドライブ部（ＨＤＤ２０２）、入力部の一例であるキーボード部（ＫＢＤ２０３）、制御部のＣＰＵ２０４、表示部の一例である表示用ディスプレイ（ＬＣＤ２０５）、通信制御部の一例であるネットワークボード（ＮＢ２０７）、以上のＰＣ１の構成要素を互いに接続するバス２０６を有する。ＵＳＢインタフェース１４用のＵＳＢポートはＮＢ２０７に含まれる。尚、記憶部は、可搬性ＣＤ−ＲＯＭまたは内部据付のＲＯＭなどであってもよい。デバイス管理プログラム８０、ＴＷＡＩＮアプリケーション１４２等のアプリケーションや、図３、図４、図７、図１４に示す各モジュール（ソフトウェア）は、ＨＤＤ２０２に記憶され、必要に応じてＲＡＭ２０１に読み出されてＣＰＵ２０４により実行される。これにより、ＣＰＵ２０４が、デバイス管理８０、ＴＷＡＩＮアプリケーション１４２等のアプリケーションや、図３、図４、図７、図１４に示す各モジュール（ソフトウェア）の機能を実現する。なおデバイス管理プログラム８０は、単にデバイス管理８０と称される。またデバイス管理プログラムは、周辺装置管理プログラムと呼ぶこともある。
【００３３】
ＭＦＰ３、ＭＦＰ７７７、ＭＦＰ８８８は図２（ｂ）に示すようなハードウェア構成を持つ。図２（ｂ）ではＭＦＰ３の例で説明する。図２（ｂ）において、ＣＰＵ１５はマイクロプロセッサ等から構成される、ＭＦＰ３の中央処理装置である。ＣＰＵ１５は、ＲＯＭ１６に記憶されているプログラムに従って、ＲＡＭ１７、通信部１８、記録部１９、操作部２０、表示部２１、読取り部２２、ファクシミリ制御部２３、外部ストレージ制御部２４を制御する。ＲＯＭ１６にはプリンタドライバ５０（図４で後述する）の制御に従ってＭＦＰ３が記録（印刷）処理や、印刷動作の状態をＰＣ１へ通知する処理を行うプログラムが記憶されている。また、ＲＯＭ１６には、ＦＡＸドライバ（図は省略）の制御に従ってＭＦＰ３がファクシミリの送信または受信処理や、ファクシミリの送信または受信の状態をＰＣ１へ通知する処理を行うプログラムも記憶されている。さらに、ＲＯＭ１６には、ＷＩＡドライバ７０４やＴＷＡＩＮドライバ１４１の制御に従ってＭＦＰ３が画像の読取り処理や、読取り動作の状態をＰＣ１へ通知する処理を行うプログラムも記憶されている。ＲＡＭ１７は主にＰＣ１から送られて、それをもとに記録部１９によって印刷される印字データが一時的に記憶される。また、ＲＡＭ１７には、読取り部２２で読取られた画像データ、ＰＣ１から送られてきたファクシミリの送信データ、ファクシミリ制御部で受信されたファクシミリの受信データ等も一時的に記憶される。通信部１８にはＵＳＢインタフェース１４、ネットワーク４用の接続ポート、アナログ電話回線５用の接続ポート等が含まれており、ＵＳＢ、Ethernet、ファクシミリのアナログ通信を制御する。
【００３４】
記録部１９は、インクジェット方式の記録ヘッド、各カラーインク、キャリッジ、記録紙搬送機構等から構成される記録ユニットと、前記印字データをもとに前記記録ヘッドにて印字用パルスを発生させる為のＡＳＩＣ等から構成される電気回路とから構成される。印刷可能なアプリケーション上での印刷操作またはファクシミリの送信操作によって、アプリケーションで開かれているファイルの表示内容（画像データ）が、ＥＭＦ形式のスプールファイルとしてＰＣ１のＨＤＤ２０２に一時的に格納される。スプールファイルは、プリンタドライバ５０またはＦＡＸドライバを介してＭＦＰ３制御用コマンドを含む印字データまたはファクシミリの送信データに変換された後、ＵＳＢインタフェース１４またはネットワーク４を介してＭＦＰ３に送られる。ＭＦＰ３にて受信された印字データは、記録部１９で印字用パルスに変換されて、記録紙上に印刷される。ＭＦＰ３にて受信されたファクシミリの送信データは、ファクシミリ制御部２３でファクシミリの通信プロトコルに変換されて、アナログ電話回線５を介して相手先のファクシミリ装置に送信される。
【００３５】
操作部２０は、電源ボタン、リセットボタン等の各種ボタンから構成され、ＭＦＰ３を操作することができる。表示部２１は、タッチパネルの液晶ディスプレイで構成され、ＭＦＰ３の状態の表示や、各種設定や電話番号の表示、入力等を行うことができる。読取り部２２は、カラーイメージセンサや画像処理用のＡＳＩＣ等から構成される電気回路とから構成され、スキャナ機能を制御する。ファクシミリ制御部２３は、ファクシミリ用のモデムやアナログ通信回路等から構成され、ファクシミリの通信プロトコルに従ってファクシミリの送信や受信を制御する。外部ストレージ制御部２４は、フラッシュメモリ装着用のスロットやストレージ用のインタフェース回路等から構成され、装着されたフラッシュメモリを制御する。
【００３６】
＜ＰＣのソフトウェア＞
図３はＰＣのソフトウェア構成を表す図である。図３において、イーサネット制御スタック９２はイーサネットを制御するプログラムである。ＩＰネットワーク制御スタック９１はＩＰネットワークを制御するプログラムである。ＷＳＤ制御スタック９０はＷＳＤを制御するプログラムである。ＩＨＶネイティブプロトコル制御スタック８９は、ＩＨＶの独自プロトコルを制御するプログラムである。Ｎ−ＰｎＰ制御スタック８８は、ネットワークのプラグアンドプレイ（以降、Ｎ−ＰｎＰと略す場合がある）を制御するプログラムである。尚、ネットワーク接続デバイスに対するサポートを提供する、プラグアンドプレイの一連の拡張機能としてWindows 7 ＯＳに標準搭載されている機能として、Plug and Play Extensions（ＰｎＰ−Ｘ）が存在する。しかしＰｎＰ−Ｘは、本実施形態ではＮ−ＰｎＰと同等の機能として前記Ｎ−ＰｎＰを利用する例で説明する。デバイスドライバ群８５は、ＯＳに標準で同梱されている標準ドライバ群８７とインデペンデントハードウエアベンダ（ＩＨＶ）から提供されるＩＨＶ製ドライバ群８６から構成される。アプリケーション／ＤＤＩインタフェース８４は、アプリケーションプログラミングインターフェース（ＡＰＩ）と、デバイスドライバインターフェース（ＤＤＩ）とから構成される。アプリケーション８０は、ＯＳに標準で同梱されているデバイス管理（Device Management）のためのユーティリティプログラムである。これを単にデバイス管理とも呼ぶ。アプリケーション３０は、図４で後述する、印刷を行うことが可能なアプリケーションプログラムである。アプリケーション１４２は、図６（ｂ）で後述するＴＷＡＩＮ対応のアプリケーションである。アプリケーション１４３は、図６（ａ）で後述するＷＩＡ対応のアプリケーションである。アプリケーション群８２は、デバイス管理８０、アプリケーション３０、１４２、１４３等から構成される。デバイス管理８０は、図５（ａ）で後述するデバイスとプリンターフォルダ５００や、図５（ｂ）で後述するデバイス管理画面６００を、アプリケーション／ＤＤＩインタフェース８４等を介して管理、実行、表示することができる。なおフォルダは、ハードディスク等のファイルストレージ内で、当該フォルダに属するオブジェクト（例えばファイルやフォルダ）をまとめるためのデータ構造である。図５（ａ）はフォルダそのものではなくユーザインタフェースの一例であるが、本実施形態ではユーザインタフェースについてもフォルダと同じ参照番号で示す。また図５（ａ）と同様に、本明細書全体にわたって、プログラムの提供する代表的な（たとえば実行時に最初に表示される）ユーザインタフェースを、そのプログラムと同じ参照番号を用いて示すことにする。
【００３７】
＜プリンタドライバの構成＞
図４はＰＣにおけるプリンタドライバの構成を表す図である。図４において、ドライバ５０はＰＣ１にインストールされているＭＦＰ３用のプリンタドライバであり、複数のモジュール３３〜３６、３９から構成される。印刷機能を有するアプリケーション３０は、例えば、ＯＳに標準で同梱されているテキストエディタであるNotepad（Notepad.exe）等に相当する。Graphics Device Interface（ＧＤＩ）３１はＯＳの一部である。プリンタキュー３２は、スプーラ４０の一部として構成され、印刷ジョブがキューイングされる。プリントプロセッサ３３は、印刷レイアウトの変更や印刷画像に対する特殊処理を行う。グラフィックスドライバ３４は、プリンタドライバ５０の画像処理のコアとして、ＧＤＩ３１から送られて来る描画命令をもとに印刷用の画像処理を行い、印刷制御コマンドを作成する。ＵＩモジュール３５は、プリンタドライバ５０のユーザインタフェースの提供及び制御を行う。ランゲージモニタ３６は、データの通信インタフェースとしてデータの送受信を制御する。ステータスモニタ３９は、ＭＦＰ３のインクの残量や、警告、エラー等の状態を表示する。ポートモニタ３７は、ランゲージモニタ３６から送られて来るデータを適切なポートに対して送信したり、ＭＦＰ３から送られて来るデータをクラスドライバ３８を介して受信したりする処理を行う。クラスドライバ３８は、最もポートに近いローレベルのモジュールである。本実施形態では、クラスドライバ３８はＷＳＤやＩＨＶの独自プロトコルのプリンタクラスのドライバに相当し、ポート（本実施形態ではＵＳＢまたはネットワークポート）を制御する。プリンタドライバ５０はＭＦＰ３の製造元であるABC社製のものである。
【００３８】
＜「デバイスとプリンター」及びデバイス管理画面＞
図５はデバイスとプリンターフォルダとデバイス管理画面を表す図である。図５（ａ）はユーザがデバイスとプリンターフォルダを選択して開くための操作を行うことで表示される。図５（ａ）において、デバイスとプリンターフォルダ５００は、ＰＣ１の表示画面上に表示され、ＰＣ１で利用できる状態となっている周辺装置（例えばプリンタやＦＡＸ）がドライバ毎にこの中に表示される。本実施形態においては、ＸＹＺ  Ｄｅｆｇという名称のデバイス５０１とＡＢＣ  Ｋｍｍｎという名称のデバイス５０３が利用可能なデバイスとして表示されている。デフォルトマーク５０２は、システムのデフォルトデバイスを示すもので、ここでは、デバイス５０１がデフォルトデバイスに設定されている状態を表す。なおデフォルトデバイスとは、上述したようにドライバ毎に表示されており、デフォルトデバイスのドライバを示すものでもあるから、デフォルトドライバと呼ぶこともできる。デバイスとプリンターフォルダ５００において、デバイスのアイコンが点線で示されているデバイス５０１は利用できない状態であることを表し、実線で示されているデバイス５０３は利用可能な状態であることを表す。
【００３９】
図５（ｂ）において、デバイス管理画面６００は、図５（ａ）に示すデバイスとプリンターフォルダ５００内のデバイスが選択されることにより起動されて、表示される。図５（ｂ）ではデバイス５０３が選択された例を示す。このデバイス管理画面６００を使ってＭＦＰ３の管理を行うことができる。デバイス管理画面６００の上部には、デバイスアイコン６０１、デバイス名６０２、製造元情報６０３が表示される。デバイスアイコン６０１のデータは、デバイス管理制御用ファイル格納部９０５の一部として保持されている（不図示）。また、デバイス名６０２には、デバイスとプリンターフォルダ５００のデバイス５０３のデバイス名称が、製造元情報６０３には、図８、図９に示す＜ｄｍ：ｍａｎｕｆａｃｔｕｒｅｒ＞要素８０１に指定された文字列が表示される。デバイス管理画面６００の下部には、デバイス５０３に関連付けられた機能へのリンクが表示されている。図５（ｂ）の例では、プリンタキューボタン６０４、印刷設定ボタン６０５、画像の読み込み（ＷＩＡ）ボタン６１０、画像の読み込み（ＴＷＡＩＮ）ボタン６１１が表示される。図８、図９に示す＜ｄｍ：ｆｕｎｃｔｉｏｎｓ＞要素８０３、８５３の中に、それぞれのボタン及び機能を表す＜ｄｍ：ｆｕｎｃｔｉｏｎ＞要素８０４、８３９、８４０、８４１、８４２、８４３、８４４が記載されている。画像の読み込み（ＴＷＡＩＮ）ボタン６１１は、ＰＣ１とＭＦＰ３の接続状況に応じてＴＷＡＩＮアプリケーション１４２起動時にセットされる引数が異なる。
【００４０】
＜ドライバの選択＞
図６はＷＩＡアプリケーション１４３とＴＷＡＩＮアプリケーションそれぞれにより提供されるユーザインタフェース（ＵＩ）を表す図である。図６（ａ）において、ユーザインタフェース１４３は、ＯＳ標準のＷＩＡアプリケーション１４３のメインダイアログである。なお上述の通り、本実施形態ではプログラムの提供する代表的なユーザインタフェースをそのプログラムの参照番号と同じ番号を付する。ＷＩＡアプリケーション１４３は図７（ａ）に示すコモンＷＩＡドライバ７０３またはＩＨＶ  ＷＩＡドライバ７０４等と連携してＭＦＰ３のスキャナを使って画像を読取ることができるソフトウェアである。スキャナ選択部６２０は、画像を読取るスキャナ（ドライバ）として、ＰＣ１にインストールされているＷＩＡドライバを選択することができる。図６（ａ）では、一例として「Ｋｍｍｎ  （ＷＩＡ）」が選択されている状態を表す。スキャナ（ドライバ）の選択は、スキャナ変更ボタン６２４を押下することで表示される、図６（ｃ）で後述するスキャナ選択ダイアログ６２２上で行うことができる。
【００４１】
図６（ｃ）は、スキャナ選択ダイアログの一例を表す図である。図６（ｃ）において、ダイアログ６２２はＯＳ標準のスキャナ選択ダイアログである。スキャナ選択部６２３には、ＰＣ１にインストールされているＷＩＡドライバのリストが表示され、その中からユーザが利用しようとするドライバを選択できる。ユーザがＷＩＡドライバを選択することで、ＷＩＡアプリケーション１４３が使用する、画像を読取るスキャナ（ドライバ）を指定することができる。図６（ｃ）では、スキャナとして次の何れかを選択することができる。
・Ｋｍｍｎ  （ＷＩＡ）
・Ｋｍｍｎ  （ＷＩＡ）＿ＡＡＢＢＣＣＸＸ０８１４
・Ｋｍｍｎ  （ＷＩＡ）  ＡＡＢＢＣＣＸＸ０７０７
・Ｍｎｍｋ  （ＷＩＡ）＿ＹＹ１２１８ＹＹ０７３０
・Ｄｅｆｇ  （ＷＩＡ）＿ＸＸＹＹＺＺ００１２２４。
【００４２】
「Ｋｍｍｎ  （ＷＩＡ）」は、ＵＳＢインタフェース１４を介してＰＣ１に接続されたモデル名（Ｋｍｍｎ）のスキャナ用のＩＨＶ  ＷＩＡドライバ７０４の選択肢を表す。図１の例では、ＩＨＶ  ＷＩＡドライバ７０４はＭＦＰ３に対してインストールされており、上記選択肢はこのドライバに対応する。「Ｋｍｍｎ  （ＷＩＡ）＿ＡＡＢＢＣＣＸＸ０８１４」、「Ｋｍｍｎ  （ＷＩＡ）  ＡＡＢＢＣＣＸＸ０７０７」、「Ｍｎｍｋ  （ＷＩＡ）＿ＹＹ１２１８ＹＹ０７３０」、「ＸＹＺ  Ｄｅｆｇ  （ＷＩＡ）＿ＸＸＹＹＺＺ００１２２４」は、ネットワーク４を介してＷＳＤを使ってＰＣ１に接続された、ＯＳ標準のＣｏｍｍｏｎ  ＷＩＡドライバ７０３の選択肢を表す。図１の例では、ＷＩＡドライバ７０３は、ＭＦＰ３、ＭＦＰ７７７、ＭＦＰ８８８、ＭＦＰ７に対してインストールされており、上記選択肢はこれらのドライバにそれぞれ対応する。すなわち図１のＭＦＰ７は、ＵＳＢとネットワークという２つのインタフェースそれぞれでＰＣ１に接続されており、ＭＦＰ７のスキャナはそれぞれのインタフェースについてドライバがインストールされている。なお、図６（ｃ）は、「Ｋｍｍｎ  （ＷＩＡ）」が選択されている状態を表す。
【００４３】
このように、ネットワークでＷＳＤのプロトコルを利用したＷＩＡの場合、デバイスに割り当てられるＷＩＡドライバ名は、そのデバイスのモデル名とシリアル番号から構成される＜モデル名＞＿＜シリアル番号＞という名前となる。ＷＳＤのプロトコルにおいて、デバイスのモデル名やシリアル番号の情報は図１９で後述するメタデータ（＜ｍｅｘ：Ｍｅｔａｄａｔａ＞要素２２３内に含まれており、ＯＳはこれらの情報をもとに、そのデバイス用のＷＩＡドライバ名を決定して割り当てる。
【００４４】
図６（ｂ）において、ＡＢＣ社製のＴＷＡＩＮアプリケーション１４２は、図７（ｂ）に示すＴＷＡＩＮドライバ１４１と連携してＭＦＰ３、ＭＦＰ７７７、ＭＦＰ８８８のスキャナを使って画像を読取ることができるソフトウェアである。図６（ｂ）はＴＷＡＩＮアプリケーション１４２のメインダイアログを表す。スキャナ選択部６２１では、画像を読取るスキャナ（ドライバ）として、ＰＣ１にインストールされているＴＷＡＩＮドライバを選択することができる。本実施形態では、次の何れかを選択することができる。
・ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）
・ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０８１４
・ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０７０７
・ＡＢＣ  Ｍｎｍｋ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＹＹ０７３０。
【００４５】
ここで「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）」は、ＵＳＢインタフェース１４を介してＰＣ１に接続されたスキャナ用のＡＢＣ社製のＴＷＡＩＮドライバ１４１の選択肢を表す。図１の例では、ＴＷＡＩＮドライバ１４１は、ＭＦＰ３に対してインストールされており、上記選択肢はこのドライバに対応する。「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０８１４」、「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０７０７」、「ＡＢＣ  Ｍｎｍｋ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＹＹ０７３０」は、ネットワーク４を介してＷＳＤを使ってＰＣ１に接続されてたスキャナ用のＴＷＡＩＮドライバ１４１の選択肢を表す。図１の例では、これらＴＷＡＩＮドライバ１４１は、それぞれＭＦＰ３、ＭＦＰ７７７、ＭＦＰ８８８にそれぞれに対してインストールされており、これら選択肢はそれぞれのドライバに対応する。前述した通り、ネットワーク４を介してインストールされたＭＦＰ３、ＭＦＰ７７７にそれぞれ割り当てられたＴＷＡＩＮドライバ１４１の選択肢は、「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿＊＊＊＊＊＊＊＊＊＊＊＊」という「＜モデル名＞＿＜シリアル番号＞」の名称を持つ選択肢となっている。また、ネットワーク４を介してインストールされたＭＦＰ８８８に割り当てられたＴＷＡＩＮドライバ１４１の選択肢も、「ＡＢＣ  Ｍｎｍｋ  （ＴＷＡＩＮ）＿＊＊＊＊＊＊＊＊＊＊＊＊」という同様の選択肢となっている。ここで、＊＊＊＊＊＊＊＊＊＊＊＊の部分はそのデバイスのシリアル番号が割り当てられているが、本実施形態では、このシリアル番号は通信部１８のハードウェア固有に与えられたＭＡＣアドレスを利用して構成されている。図図６（ｂ）では、「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）」が選択されている状態を表す。ＴＷＡＩＮアプリケーション１４２は、スキャナ選択部６２１で選択されているＴＷＡＩＮドライバを使って、そのＴＷＡＩＮドライバが割り当てられているスキャナ（ＭＦＰ）で画像（原稿）の読取り等の、画像の読取りに関する制御を行う。
【００４６】
ＴＷＡＩＮアプリケーション１４２は、次に示す起動時の引数により、アプリケーション起動時に選択されるデフォルトのスキャナ（ドライバ）と、起動元とを指定する機能を備える。
第１引数：  ＴＷＡＩＮドライバ名
第２引数：  起動元
／ｄｅｖｍｎｇ・・・デバイス管理画面から起動
／ｏｔｈｅｒ・・・デバイス管理画面以外から起動
起動元としては本例では以上２つの値を設定可能である。
【００４７】
＜ドライバ起動時のパラメータ例＞
ドライバ起動時のパラメータ例をいくつか示す。
［例１］
TWAINScan.exe "ABC Kmmn (TWAIN)" /devmng
デバイス管理画面６００上からＴＷＡＩＮアプリケーション１４２を起動して、ＵＳＢ接続でＴＷＡＩＮドライバ１４１を使ってＭＦＰ３で画像を読取るケースの例。
［例２］
TWAINScan.exe "ABC Kmmn (TWAIN) WSD" /devmng
デバイス管理画面６００上からＴＷＡＩＮアプリケーション１４２を起動して、ＷＳＤのネットワーク接続でＴＷＡＩＮドライバ１４１を使ってＭＦＰ３またはＭＦＰ７７７で画像を読取るケースの例。
［例３］
TWAINScan.exe "ABC Kmmn (TWAIN) Network" /devmng
デバイス管理画面６００上からＴＷＡＩＮアプリケーション１４２を起動して、ＩＨＶネイティブプロトコルのネットワーク接続でＴＷＡＩＮドライバ１４１を使ってＭＦＰ３またはＭＦＰ７７７で画像を読取るケースの例。
［例４］
TWAINScan.exe "ABC Kmmn (TWAIN)_************" /other
コマンドライン（不図示）等のデバイス管理画面６００以外からＴＷＡＩＮアプリケーション１４２を起動して、ＷＳＤのネットワーク接続でＴＷＡＩＮドライバ１４１を使ってＭＡＣアドレス＊＊＊＊＊＊＊＊＊＊＊＊を有する通信部１８のハードウェアを含むＭＦＰ３またはＭＦＰ７７７で画像を読取るケースの例。
例２と例４はＴＷＡＩＮドライバ名を示す第１引数と起動元を示す第２引数がともに相違するが、ここでは特に第１引数に着目する。後に述べるデバイス管理画面６００上からＴＷＡＩＮアプリケーション１４２を起動するケースのように、デバイス管理画面６００がＭＡＣアドレスを取得できない場合には、例２に示すように第１引数として"ABC Kmmn (TWAIN) WSD"をセットしてＴＷＡＩＮアプリケーション１４２を起動することができる。これに対し、例えば、コマンドライン（不図示）からＴＷＡＩＮアプリケーション１４２を起動するケースのように、ユーザがＭＡＣアドレスを取得してその値を使って第１引数を指定できる場合には、例４に示すように第１引数として"ABC Kmmn (TWAIN)_************"をセットして、ＴＷＡＩＮアプリケーション１４２を起動することができる。
【００４８】
［例５］
TWAINScan.exe "ABC Kmmn (TWAIN)" /other
コマンドライン（不図示）等のデバイス管理画面６００以外からＴＷＡＩＮアプリケーション１４２を起動して、ＵＳＢ接続でＴＷＡＩＮドライバ１４１を使ってＭＦＰ３で画像を読取るケースの例。
例１と例５では、起動元を表す第２引数だけが相違するが、この第２引数を利用して、ＴＷＡＩＮアプリケーション１４２が、起動元に応じて起動時または起動後の処理を切り換えることができ、ユーザの操作性を向上することができる。第１引数を付加してＴＷＡＩＮアプリケーション１４２を起動することで、スキャナ選択部６２１でスキャナ（ドライバ）を選択して指定する代わりに、画像を読取るスキャナ（ドライバ）を指定することができる。
［例６］
TWAINScan.exe "ABC Mnmk (TWAIN) WSD" /devmng
デバイス管理画面６００上からＴＷＡＩＮアプリケーション１４２を起動して、ＷＳＤのネットワーク接続でＴＷＡＩＮドライバ１４１を使ってＭＦＰ８８８で画像を読取るケースの例。
［例７］
TWAINScan.exe "ABC Mnmk (TWAIN)_************" /other
コマンドライン（不図示）等のデバイス管理画面６００以外からＴＷＡＩＮアプリケーション１４２を起動して、ＷＳＤのネットワーク接続でＴＷＡＩＮドライバ１４１を使ってＭＦＰ８８８で画像を読取るケースの例。
【００４９】
＜ＰＣ１のソフトウェア＞
図７はＰＣのソフトウェア構成を表す図である。図７（ａ）、図７（ｂ）において、ドライバ７０５はＯＳ標準のカーネルＩ／Ｏドライバである。図７（ａ）はＷＩＡアプリケーション１４３を使ってＭＦＰ３で画像を読取る為に必要なソフトウェア構成を表す。アプリケーション１４３は図６（ａ）に示すＯＳ標準のＷＩＡアプリケーションである。ドライバ７０３はＯＳ標準のＣｏｍｍｏｎ  ＷＩＡドライバ、ドライバ７０４は製造元（ＡＢＣ社）製のＩＨＶ  ＷＩＡドライバである。ＯＳ標準のＳＴＩ／ＷＩＡ Ｓｅｒｖｉｃｅ７０２は、ＷＩＡアプリケーション１４３とＷＩＡドライバ７０３、７０４のインタフェースである。
【００５０】
図７（ｂ）はＴＷＡＩＮアプリケーション１４２を使ってＭＦＰ３で画像を読取る為に必要なソフトウェア構成を表す。アプリケーション１４２は図６（ｂ）に示す製造元（ＡＢＣ社）製のＴＷＡＩＮアプリケーションである。ＴＷＡＩＮデータソースマネージャ７０７はＯＳに標準で添付されるプログラムである。ドライバ１４１は製造元（ＡＢＣ社）製のＴＷＡＩＮドライバである。ＭＦＰ３用のＴＷＡＩＮデータソースは、ＴＷＡＩＮドライバ１４１の中に含まれている。図７において、網かけのプログラムはＩＨＶ製、すなわちベンダにより提供されるプログラムであり、網かけされていないプログラムはＯＳに同梱されるプログラムである。
【００５１】
＜デバイス管理制御用ファイル＞
図８はデバイス管理制御用ファイル８００の内容を表す図である。デバイス管理制御用ファイル８００は英語用のものである。この図に示す情報が、ファイル格納部１１または１２に格納されている。図８において、＜dm:manufacturer＞要素８０１にはデバイス（ＭＦＰ３）の製造元であるABC社の名前がセットされている。＜dm:model＞要素８０２にはデバイス（ＭＦＰ３）のモデル名であるKmmnがセットされている。これらの情報は、デバイス管理制御用ファイル８００のインストール時に利用される。また、デバイス管理制御用ファイル８００には、デバイス管理画面６００を構成する為に必要な情報も記載されている。ＭＦＰ３がＰＣ１に接続されている時に起動して表示されるデバイス管理画面６００上に、図５に示すプリンタキューボタン６０４、印刷設定ボタン６０５、画像の読み込み（ＷＩＡ）ボタン６１０、画像の読み込み（ＴＷＡＩＮ）ボタン６１１を表示する為に、それぞれのボタン及び機能を表す＜dm:function＞要素８０４、８３９、８４０、８４１、８４２、８４３が＜dm:functions＞要素８０３の中にセットされている。なお要素名の前のｄｍは名前空間を示すが、本実施形態では全ての要素がｄｍ名前空間で定義されているので、dmを省略する場合もある。
【００５２】
＜dm:function＞要素８０４において、＜dm:name xml:lang="en-US"＞OpenPrinterQueue＜/dm:name＞要素８０５には、プリンタキューボタン６０４上に表示される「Open Printer Queue」という文字列がセットされている。＜dm:execute＞openPrinterQueue＜/dm:execute＞要素８０６には、プリンタキューフォルダを表示する機能（プログラム）を表すopenPrinterQueueというコードがセットされている。ここでは図示しないが、プリンタキューフォルダは印刷ジョブの状態を表示する機能を備えている。ｎａｍｅ要素およびｅｘｅｃｕｔｅ要素は、例えば図５（ｂ）に示す表示および操作に応じて実行される処理の決定のために参照される。本例では、実行されるプログラムがＴＷＡＩＮアプリケーションの場合に、たとえばｅｘｅｃｕｔｅ要素に記述されたプログラム名で特定されるサブプログラムを実行して対応する機能を実現する。
【００５３】
＜dm:function＞要素８３９において、＜dm:name xml:lang="en-US"＞Printing Preferences＜/dm:name＞要素８０７には、印刷設定ボタン６０５上に表示される「Printing Preferences」という文字列がセットされている。＜dm:execute＞printingPreferences＜/dm:execute＞要素８０８には、印刷設定ダイアログを表示する機能（プログラム）を表すprintingPreferencesというコードがセットされている。ここでは図示しないが、印刷設定ダイアログとは、プリンタドライバ５０のＵＩモジュール３５に備えられている印刷設定画面を表す。
【００５４】
＜dm:function＞要素８４０において、＜dm:name xml:lang="en-US"＞Image Scan (WIA)＜/dm:name＞要素８０９には、画像の読み込み（ＷＩＡ）ボタン６１０に表示される「Image Scan (WIA)」という文字列がセットされている。＜dm:required＞要素８１０には、画像の読み込み（ＷＩＡ）ボタン６１０を表示する為の条件を表す情報がセットされている。＜dm:device＞scanner＜/dm:device＞要素８１１は、ＵＳＢインタフェース１４またはＷＳＤのネットワーク４を介してＰＣ１に接続されているデバイスが、ＷＩＡドライバ７０４または７０３を利用したスキャナ機能を備えていることを表す。＜dm:available＞true＜/dm:available＞要素８１２は、ＵＳＢインタフェース１４またはＷＳＤのネットワーク４を介してＰＣ１に接続されているデバイスにおいて、ＷＩＡドライバ７０４または７０３を利用したスキャナ機能が利用可能な状態であることを表す。即ち、＜dm:required＞要素８１０で表される条件とは、ＷＩＡドライバ７０４または７０３を利用した、ＵＳＢまたはＷＳＤのネットワーク接続での画像の読み込みが可能なことである。＜dm:execute＞wiaScan "WIAScannerName"＜/dm:execute＞要素８１３には、ＷＩＡアプリケーション１４３を起動する機能（プログラム）を表す「
wiaScan "WIAScannerName"」というコードがセットされている。ここで、"WIAScannerName"は、ＭＦＰ３に割り当てられたＷＩＡドライバ名を表す変数である。ＭＰＦ３がＵＳＢインタフェース１４を介してＰＣ１に接続されている場合はＷＩＡドライバ７０４のＷＩＡドライバ名が、ネットワーク４を介してＷＳＤを使ってＰＣ１に接続されている場合はＷＩＡドライバ７０３のドライバ名が、この変数に代入される。
【００５５】
＜dm:function＞要素８４１において、＜dm:name xml:lang="en-US"＞Image Scan (TWAIN)＜/dm:name＞要素８１４には、画像の読み込み（ＴＷＡＩＮ）ボタン６１１に表示される「Image Scan (TWAIN)」という文字列がセットされている。＜dm:required＞要素８４５には、画像の読み込み（ＴＷＡＩＮ）ボタン６１１を表示する為の条件を表す情報がセットされている。＜dm:device＞storage＜/dm:device＞要素８１５は、ＵＳＢインタフェース１４を介してＰＣ１に接続されているデバイスが、ストレージ機能を備えていることを表す。＜dm:available＞true＜/dm:available＞要素８１６は、ＵＳＢインタフェース１４を介してＰＣ１に接続されているデバイスのストレージ機能が、利用可能な状態であることを表す。ＰＣ１に接続されているデバイス（ＭＰＦ３）のスキャナ機能が利用可能であることを判別するには、＜dm:required＞要素８１０を利用するのが一般的であると思われる。しかしながら、Windows 7 ＯＳにおいては、＜dm:required＞要素８１０を利用する場合、ＴＷＡＩＮドライバ１４１を利用したスキャナ機能において、ＵＳＢ接続とＷＳＤのネットワーク接続を区別して、それぞれの接続に合わせて適切な制御を行う、というような自動切り換え制御を行うことができない。従って、＜dm:required＞要素８１０では、ＴＷＡＩＮアプリケーション１４２の起動時の引数として、ＰＣ１とＭＦＰ３のインタフェースに応じて、それぞれのインタフェースにマッチする適切な値をセットすることができない。そこで、＜dm:required＞要素８４５で表されるような、スキャナ機能とは一切関係の無い別の機能である「ストレージ機能が利用可能であるという状態」を利用して、ＰＣ１とデバイス（ＭＦＰ３）のインタフェースを特定したスキャナ機能の判別を行うことで、ＴＷＡＩＮアプリケーション１４２起動時に適切な情報を引数としてセットして、ユーザの操作性を向上している。このように、＜dm:required＞要素８４５で表される条件とは、ここでは、ＴＷＡＩＮドライバによるＵＳＢ接続での画像の読み込みが可能なケースのことである。＜dm:execute＞TWAINScan.exe "ABC Kmmn (TWAIN)" /devmng＜/dm:execute＞要素８１７には、ＴＷＡＩＮアプリケーション１４２を起動する機能（プログラム）を表す「TWAINScan.exe "ABC Kmmn (TWAIN)" /devmng」というコードがセットされている。これにより、画像の読み込み（ＴＷＡＩＮ）ボタン６１１が押下された場合、デフォルトのスキャナ（ドライバ）にＵＳＢ接続のＴＷＡＩＮドライバ１４１を表す「ABC Kmmn (TWAIN)」がセットされた状態でＴＷＡＩＮアプリケーション１４２が起動される。
【００５６】
＜dm:function＞要素８４２において、＜dm:name xml:lang="en-US"＞Image Scan (TWAIN)＜/dm:name＞要素８１８には、画像の読み込み（ＴＷＡＩＮ）ボタン６１１に表示される「Image Scan (TWAIN)」という文字列がセットされている。＜dm:required＞要素８４６には、画像の読み込み（ＴＷＡＩＮ）ボタン６１１を表示する為の条件を表す情報がセットされている。＜dm:device＞storage＜/dm:device＞要素８１９は、ＵＳＢインタフェース１４を介してＰＣ１に接続されているデバイスが、ストレージ機能を備えていることを表す。＜dm:available＞false＜/dm:available＞要素８２０は、ＵＳＢインタフェース１４を介してＰＣ１に接続されているデバイスのストレージ機能が、利用できない状態であることを表す。ＰＣ１に接続されているデバイス（ＭＰＦ３）のスキャナ機能が利用できない状態であることを判別するには、
＜dm:required＞
＜dm:device＞scanner＜/dm:device＞
＜dm:available＞false＜/dm:available＞
＜/dm:required＞
を利用するのが一般的であると思われる。しかしながら、Windows 7 ＯＳにおいては、この＜dm:required＞要素を利用する場合、ＴＷＡＩＮドライバ１４１を利用したスキャナ機能において、ＵＳＢ接続とＷＳＤのネットワーク接続とを区別して、それぞれの接続に合わせて適切な制御を行う、というような自動切り換え制御を行うことができない。従って、この＜dm:required＞要素では、ＴＷＡＩＮアプリケーション１４２の起動時の引数として、ＰＣ１とＭＦＰ３のインタフェースに応じて、それぞれのインタフェースにマッチする適切な値をセットすることができない。そこで、＜dm:required＞要素８４６で表されるような、スキャナ機能とは一切関係の無い別の機能である「ストレージ機能が利用できないという状態」を利用して、ＰＣ１とデバイス（ＭＦＰ３）のインタフェースを特定したスキャナ機能の判別を行うことで、ＴＷＡＩＮアプリケーション１４２起動時に適切な情報を引数としてセットして、ユーザの操作性を向上している。このように、＜dm:required＞要素８４６で表される条件とは、ここでは、ＴＷＡＩＮドライバによるＵＳＢ接続での画像の読み込みができないケースのことであり、例えば、ＰＣ１とＭＦＰ３がＵＳＢインタフェース１４やネットワーク４を介して接続されていないケースを表す。このようなケースにおいては、ＴＷＡＩＮアプリケーション１４２を起動する、不明なデバイス用の画像の読み込み（ＴＷＡＩＮ）ボタン６１１を構築する為の情報をセットしておく。
＜dm:execute＞TWAINScan.exe "" /devmng＜/dm:execute＞要素８２１には、ＴＷＡＩＮアプリケーション１４２を起動する機能（プログラム）を表す「TWAINScan.exe "" /devmng」というコードがセットされている。
【００５７】
＜dm:function＞要素８４３において、＜dm:name xml:lang="en-US"＞Image Scan (TWAIN)＜/dm:name＞要素８２２には、画像の読み込み（ＴＷＡＩＮ）ボタン６１１に表示される「Image Scan (TWAIN)」という文字列がセットされている。＜dm:required＞要素８４７には、画像の読み込み（ＴＷＡＩＮ）ボタン６１１を表示する為の条件を表す情報がセットされている。＜dm:device＞printer＜/dm:device＞要素８２３は、ＰＣ１に接続されているデバイスが、プリンタ機能を備えていることを表す。＜dm:available＞true＜/dm:available＞要素８２４は、ＰＣ１に接続されているデバイスのプリンタ機能が、利用可能な状態であることを表す。＜dm:port＞WSD＜/dm:port＞要素８２５は、デバイスのプリンタ機能を利用する為のポートがＷＳＤポートであることを表す。ここで、ＷＳＤポートとは、ＷＳＤを利用したネットワーク接続のポートである。尚、＜dm:port＞WSD＜/dm:port＞要素８２５はＯＳの標準機能として定義されている。ＰＣ１に接続されているデバイス（ＭＰＦ３）のスキャナ機能が利用可能であることを判別するには、＜dm:required＞要素８１０を利用するのが一般的であると思われる。しかしながら、Windows 7 ＯＳにおいては、＜dm:required＞要素８１０を利用する場合、ＴＷＡＩＮドライバ１４１を利用したスキャナ機能において、ＵＳＢ接続とＷＳＤのネットワーク接続を区別して、それぞれの接続に合わせて適切な制御を行う、というような自動切り換え制御を行うことができない。従って、＜dm:required＞要素８１０では、ＴＷＡＩＮアプリケーション１４２の起動時の引数として、ＰＣ１とＭＦＰ３のインタフェースに応じて、それぞれのインタフェースにマッチする適切な値をセットすることができない。そこで、＜dm:required＞要素８４７で表されるような、スキャナ機能とは一切関係の無い別の機能である「プリンタ機能が利用可能であるという状態」と「プリンタ機能のポート名」を利用して、ＰＣ１とデバイス（ＭＦＰ３）のインタフェースを特定したスキャナ機能の判別を行う。こうして、ＴＷＡＩＮアプリケーション１４２起動時に適切な情報を引数としてセットして、ユーザの操作性を向上している。このように、＜dm:required＞要素８４７で表される条件とは、ここでは、ＴＷＡＩＮドライバによるＷＳＤのネットワーク接続での画像の読み込みが可能なケースのことである。＜dm:execute＞TWAINScan.exe "ABC Kmmn (TWAIN) WSD" /devmng＜/dm:execute＞要素８２６には、ＴＷＡＩＮアプリケーション１４２を起動する機能（プログラム）を表す「TWAINScan.exe "ABC Kmmn (TWAIN) WSD" /devmng」というコードがセットされている。これにより、画像の読み込み（ＴＷＡＩＮ）ボタン６１１が押下された場合、デフォルトのスキャナ（ドライバ）にＷＳＤのネットワーク接続のＴＷＡＩＮドライバ１４１を表す「ABC Kmmn (TWAIN) WSD」がセットされた状態でＴＷＡＩＮアプリケーション１４２が起動される。これにより、図１５に示すように適切なＴＷＡＩＮドライバが選択された状態でＴＷＡＩＮアプリケーション１４２を起動することができるので、ユーザの操作性に優れる。
【００５８】
デバイス管理制御用ファイルはデバイスに応じて予め作成され、例えばデバイスの持つ不揮発メモリ等に、ＰＣ１から読み出し可能に保存されている。そして、当該デバイスの接続がＰＣ１によって認識されると、ＰＣ１は当該デバイスからデバイス管理用ファイルを読み出すなどして、そのデバイス管理用ファイルをインストールする。あるいは、ＰＣ１に予め保存されたデバイス管理用ファイルのうち、新たに接続されたデバイスのデバイス管理用ファイルを検索し、見つかった場合にそれをインストールしてもよい。
【００５９】
＜デバイス管理およびＴＷＡＩＮアプリケーションの構成＞
図１４はデバイス管理とＴＷＡＩＮアプリケーションのソフトウェア構成を表す図である。図１４において、デバイス管理８０は、表示部９０１、デバイス管理制御部９０２、リンク実行部９０３、デバイス管理制御用ファイル読取り部９０４、デバイス管理制御用ファイル格納部９０５を有する。デバイス管理制御用ファイル格納部９０５には、後述する図１１のステップＳ１４０５で保存された図８、図９それぞれで示したデバイス管理制御用ファイル８００、８５０が格納されている。ＴＷＡＩＮアプリケーション１４２は、起動元判断部９０６、アプリケーション制御部９０７、デフォルトデバイス設定部９０８、読取り制御部９０９、ステータス取得部９１０、デフォルトデバイス情報格納部９１１により構成される。デバイス管理画面６００は、ＭＦＰ３がＵＳＢインタフェース１４またはネットワーク４を介してＰＣ１に接続されるか、あるいは、図５（ａ）に示すデバイスとプリンターフォルダ５００内のデバイスが選択されることにより起動・表示される。ここでは、ＭＦＰ３がＵＳＢインタフェース１４またはネットワーク４を介してＰＣ１に接続され、図５（ｂ）に示すデバイス管理画面６００が起動・表示される場合の例を中心に説明する。
【００６０】
＜デバイス接続手順＞
図１０はデバイス接続時の処理を表すフローチャートである。ここではデバイスとしてＭＦＰ３が新たに接続された場合の例を示す。図１０のフローに係るプログラムは、ＨＤＤ２０２に記憶されており、ＲＡＭ２０１に読み出され、ＣＰＵ２０４により実行される。図１０の手順はオペレーティングシステムの一部として実行される。図１０において、デバイス（ＭＦＰ３）がＰＣ（ＰＣ１）にＵＳＢインタフェース１４またはネットワーク４を介して接続されると（Ｓ１３０１）、ＰＣ１がデバイスＩＤを取得する（Ｓ１３０２）。デバイスＩＤは、例えば「MFG:ABC;MDL:Kmmn;CLS:PRINTER;CMD:K4;DES:ABC Kmmn;」のような文字列で表されるものである。ＰＣ１がＵＳＢインタフェース１４またはネットワーク４を介してＭＦＰ３から取得することができるＭＦＰ３のプリンタ機能のデバイスＩＤであり、次の情報を表す。
製造元（MFG:）： ABC
モデル（MDL:）： Kmmn
クラス（CLS:）： PRINTER
コマンド（CMD:）： K4（ＡＢＣ社プライベートの印刷制御用コマンド）
ディスクリプション（DES:）： ABC Kmmn。
【００６１】
次に、デバイス管理８０が、ＰＣ１にドライバが既にインストール済みかを判断する（Ｓ１３０３）。有無が判断されるドライバは、ＭＦＰ３の接続によりＰＣ１が利用可能となるデバイスのドライバであり、例えばプリンタドライバ５０、ＦＡＸドライバ、ＷＩＡドライバ７０３または７０４、ＴＷＡＩＮドライバ１４１などである。ステップＳ１３０３において、ドライバが未だインストールされていないと判断された場合、ＯＳが未インストールのドライバをインストールする（Ｓ１３０４）。ドライバは、オペレーティングシステムに同梱されて提供されているか、あるいはデバイスのベンダによりデバイスと共に提供される。Ｓ１３０４では、それらをハードディスクから、あるいは記録媒体から、あるいはネットワークからダウンロードしてインストールする。その後、ＯＳがドライバをロードする（Ｓ１３０５）。ドライバが正しくロードされると、図５（ａ）に示すデバイスとプリンターフォルダ５００にデバイス（ＭＦＰ３）が登録された状態となる。なおプログラムのインストールに際しては、単に実行可能形式のプログラムファイルを保存するだけに留まらず、当該プログラムがインストールされたことを示す情報をオペレーティングシステムが管理するデータベース（レジストリ）に登録する必要がある。そこで、本実施形態でプログラムをインストールする、と言った場合、それはプログラムの複製と当該プログラムのデータベースへの登録を意味することとする。これはデータファイルのインストールについても同様である。
【００６２】
次にデバイス管理８０が、ＰＣ１に図８、図９に示すデバイス管理制御用ファイル８００、８５０が既にインストール済みかを判断する（Ｓ１３０６）。Ｓ１３０６では、既存のデバイス管理制御用ファイルが、Ｓ１３０４でインストールされたドライバ（プリンタドライバ５０、ＦＡＸドライバ、ＷＩＡドライバ７０３または７０４、及びＴＷＡＩＮドライバ１４１）に整合するかが判定される。ステップＳ１３０６において、インストール済みのデバイス管理制御用ファイルがドライバと整合しているか否かは、デバイスＩＤに含まれる製造元（ＭＦＧ：）、モデル（ＭＤＬ：）情報をもとに判定される。ステップＳ１３０６において、デバイス管理制御用ファイル８００、８５０が未だインストールされていない場合、デバイス管理８０が、図１１で後述するデバイス管理制御用ファイルのインストールの処理を実行する（Ｓ１３０７）。続いて、デバイス管理８０が図１２で後述するデバイス管理画面の起動の処理を実行し（Ｓ１３０８）、デバイス管理８０がデバイス接続時の処理を完了する（Ｓ１３０９）。
【００６３】
一方ステップＳ１３０６において、デバイス管理制御用ファイル８００、８５０が既にインストールされている場合、ステップＳ１３０８へ進む。ステップＳ１３０３において、ドライバ（プリンタドライバ５０、ＦＡＸドライバ、ＷＩＡドライバ７０３または７０４、及びＴＷＡＩＮドライバ１４１）が既にインストールされている場合、ステップＳ１３０５へ進む。
【００６４】
＜デバイス管理制御用ファイルのインストール手順＞
図１１はデバイス管理制御用ファイルのインストールの処理（Ｓ１３０７）を表すフローチャートである。図１１のフローに係るプログラムは、ＨＤＤ２０２に記憶されており、ＲＡＭ２０１に読み出され、ＣＰＵ２０４により実行される。図１０のステップＳ１３０７において、デバイス管理制御用ファイルのインストールの処理が実行されると、図１１において、デバイス管理８０がデバイス管理のインストールの処理を開始する（Ｓ１４０１）。まず、デバイス管理８０がＵＳＢインタフェース１４またはネットワーク４を介して接続されているデバイス（ＭＦＰ３）のデバイスＩＤを参照する（Ｓ１４０２）。デバイスＩＤは、Ｓ１３０２で取得し、保存した情報である。このデバイスＩＤに含まれている製造元（MFG:）、モデル（MDL:）情報をもとに、デバイス管理８０がＰＣ１に接続されているデバイス（ＭＦＰ３）用のデバイス管理制御用ファイル８００、８５０を検索する（Ｓ１４０３）。図８、図９のデバイス管理制御用ファイル８００、８５０には、＜ｄｍ：ｍａｎｕｆａｃｔｕｒｅｒ＞要素（すなわち製造者要素）８０１、＜ｄｍ：ｍｏｄｅｌ＞要素（すなわちモデル要素）８０２にデバイス（ＭＦＰ３）に対応した製造元（ＭＦＧ：）「ＡＢＣ」、モデル（ＭＤＬ：）「Ｋｍｍｎ」が記載されている。要素８０１、要素８０２に記載されている情報をもとに、デバイス管理８０がＷｅｂサーバ９のファイル格納部１１またはＰＣ１に挿入されたＣＤ−ＲＯＭ１０のファイル格納部１２から、デバイス（ＭＦＰ３）用のデバイス管理制御用ファイル８００、８５０を検索する。すなわち、デバイスＩＤの製造元（MFG:）およびモデル（MDL:）情報と一致する製造元要素およびモデル要素を含むデバイス管理制御用ファイルが検索される。そして、デバイス管理８０が、ファイル格納部１１または１２からデバイス制御用ファイル８００、８５０が見つかったか否かを判断する（Ｓ１４０４）。ステップＳ１４０４において、デバイス管理制御用ファイル８００、８５０が見つかった場合、デバイス管理８０がそのデバイス管理制御用ファイル８００、８５０をＰＣ１のＨＤＤ２０２内の所定の位置に保存し（Ｓ１４０５）、デバイス管理８０がデバイス管理制御用ファイル８００、８５０をインストールする（Ｓ１４０６）。インストールが完了すると、デバイス管理８０がデバイス管理制御用ファイルのインストールの処理を終了する（Ｓ１４０７）。本実施形態においては、デバイス（ＭＦＰ３）に対応したデバイス管理制御用ファイル８００、８５０が検出され、インストールされたものとする。ステップＳ１４０４において、デバイス管理制御用ファイル８００、８５０が見つからなかった場合、デバイス管理８０がデバイス制御用ファイル８００、８５０をインストールせずに、デバイス管理制御用ファイルのインストールの処理を終了する（Ｓ１４０７）。
【００６５】
＜デバイス管理画面の起動手順＞
図１２はデバイス管理画面の起動の処理（Ｓ１３０８）を表すフローチャートである。図１２のフローに係るプログラムは、ＨＤＤ２０２に記憶されており、ＲＡＭ２０１に読み出され、ＣＰＵ２０４により実行される。この手順は、図１０のステップＳ１３０８において、デバイス管理８０がデバイス管理の起動の処理を実行するか、あるいは、ユーザがデバイスとプリンターフォルダ５００内のデバイス５０３を選択すると、デバイス管理８０がデバイス管理画面の起動の処理を開始して実行される（Ｓ４０１）。デバイス管理制御部９０２がデバイスとプリンターフォルダ５００にて選択されたデバイス名を取得する（Ｓ４０２）。本実施形態においては、デバイス５０３が選択されているので、「ＡＢＣ  Ｋｍｍｎ」というデバイス名が取得される。このデバイス名をもとに、デバイス管理制御用ファイル読取り部９０４が図１１のステップＳ１４０５で保存された図８、図９に示すデバイス管理制御用ファイル８００、８５０をロードする（Ｓ４０３）。このデバイス管理制御用ファイル８００、８５０をもとに、デバイス管理制御部９０２が図１３で後述するデバイス管理画面の表示内容の構築処理を実行する（Ｓ４０４）。ステップＳ４０４で構築されたデバイス管理画面の表示内容に従って、デバイス管理制御部９０２が表示部９０１を介してデバイス管理画面６００を表示し（Ｓ４０５）、デバイス管理８０がデバイス管理画面の起動の処理を終了する（Ｓ４０６）。この手順の結果、例えば図５（ｂ）に示すようなデバイス管理画面６００が表示される。
【００６６】
＜デバイス管理画面の表示内容の構築手順＞
図１３はデバイス管理画面の表示内容の構築の処理（Ｓ４０４）を表すフローチャートである。図１３のフローに係るプログラムは、ＨＤＤ２０２に記憶されており、ＲＡＭ２０１に読み出され、ＣＰＵ２０４により実行される。図１２のステップＳ４０４において、デバイス管理画面の表示内容の構築処理が実行されると、図１３において、デバイス管理制御部９０２がデバイス管理画面の表示内容の構築の処理を開始する（Ｓ１２０１）。デバイス管理制御部９０２が図８、図９の＜ｄｍ：ｎａｍｅ＞要素８０５と＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８０６の内容に従って、プリンタキューボタン６０４を構築する（Ｓ１２０２）。たとえば、ｎａｍｅ要素として記述された名称をボタンを示す画像オブジェクト上あるいは隣接してＵＩウインドウ画面に配置する。ｅｘｅｃｕｔｅ要素の内容は、当該ボタンに対して実行操作（例えばクリック）された場合に実行する機能あるいはラベルを示すもので、この例ではOpenPrinterQueueで示される機能（或いはプログラム）が関連づけられる。
【００６７】
デバイス管理制御部９０２が図８、図９の＜ｄｍ：ｎａｍｅ＞要素８０７と＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８０８の内容に従って、印刷設定ボタン６０５を構築する（Ｓ１２０３）。デバイス管理制御部９０２が図８、図９の＜ｄｍ：ｄｅｖｉｃｅ＞要素８１１と＜ｄｍ：ａｖａｉｌａｂｌｅ＞要素８１２の内容に従って、スキャナの接続とインストール状況を判定する（Ｓ１２０４）。ＭＦＰ３がＵＳＢインタフェース１４を介してＰＣ１に接続されていて、製造元（ＡＢＣ社）製のＩＨＶ  ＷＩＡドライバ７０４がインストールされている場合、あるいは、ＭＦＰ３がネットワーク４を介してＷＳＤを使ってＰＣ１に接続されていて、ＯＳ標準のＣｏｍｍｏｎ  ＷＩＡドライバ７０３がインストールされている場合（Ｓ１２０５）、ステップ１２０６へ進む。これらの何れにも該当しない場合（Ｓ１２０５）、ステップＳ１２０７へ進む。ステップＳ１２０６において、デバイス管理制御部９０２が図８、図９の＜ｄｍ：ｎａｍｅ＞要素８０９と＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８１３の内容に従って、画像の読み込み（ＷＩＡ）ボタン６１０を構築する。ステップＳ１２０６は、ＩＨＶ  ＷＩＡドライバ７０４またはＣｏｍｍｏｎ  ＷＩＡドライバ７０３によるＵＳＢまたはネットワーク（ＷＳＤ）接続での画像の読み込みが可能なケースを表す。
【００６８】
ステップＳ１２０７において、デバイス管理制御部９０２が図８、図９の＜ｄｍ：ｄｅｖｉｃｅ＞要素８１５と＜ｄｍ：ａｖａｉｌａｂｌｅ＞要素８１６の内容に従って、ストレージ機能の接続とインストール状況を判定する。ＭＦＰ３がＵＳＢインタフェース１４を介してＰＣ１に接続されていて、ＯＳ標準のストレージクラスのドライバがインストールされている場合（Ｓ１２０８）、ステップＳ１２０９へ進む。それ以外の場合（Ｓ１２０８）、ステップＳ１２１０へ進む。ステップＳ１２０９において、デバイス管理制御部９０２が図８、図９の＜ｄｍ：ｎａｍｅ＞要素８１４と＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８１７の内容に従って、ＵＳＢ接続用の画像の読み込み（ＴＷＡＩＮ）ボタン６１１を構築する。ステップＳ１２０９は、ＴＷＡＩＮドライバ１４１によるＵＳＢ接続での画像の読み込みが可能なケースを表す。ステップＳ１２１０において、デバイス管理制御部９０２が図８、図９の＜ｄｍ：ｎａｍｅ＞要素８１８と＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８２１の内容に従って、ＵＳＢ接続用の画像の読み込み（ＴＷＡＩＮ）ボタン６１１を構築する。ステップＳ１２１０は、ＴＷＡＩＮドライバ１４１によるＵＳＢ接続での画像の読み込みができないケース、例えば、ＰＣ１とＭＦＰ３がＵＳＢインタフェース１４やネットワーク４を介して接続されていないケースを表す。このようなケースにおいては、ＴＷＡＩＮアプリケーション１４２を起動する、不明なデバイス用の画像の読み込み（ＴＷＡＩＮ）ボタン６１１を構築する。
【００６９】
デバイス管理制御部９０２が図８、図９の＜ｄｍ：ｄｅｖｉｃｅ＞要素８２３、＜ｄｍ：ａｖａｉｌａｂｌｅ＞要素８２４、及び＜ｄｍ：ｐｏｒｔ＞要素８２５の内容に従って、プリンタの接続とインストール状況を判定する（Ｓ１２１１）。ＭＦＰ３がネットワーク４を介してＷＳＤを使ってＰＣ１に接続されていて、プリンタドライバ５０がインストールされている場合（Ｓ１２１２）、ステップＳ１２１３へ進む。それ以外の場合（Ｓ１２１２）、ステップＳ１２１４へ進み、デバイス管理画面の表示内容の構築処理を終了する。ステップＳ１２１３において、デバイス管理制御部９０２が図８の＜ｄｍ：ｎａｍｅ＞要素８２２と＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８２６の内容、または図９の＜ｄｍ：ｎａｍｅ＞要素８２７と＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８３１の内容に従って、ネットワーク（ＷＳＤ）接続用の画像の読み込み（ＴＷＡＩＮ）ボタン６１１を構築する。ステップＳ１２１３は、ＴＷＡＩＮドライバ１４１によるネットワーク（ＷＳＤ）接続での画像の読み込みが可能なケースを表す。その後、ステップＳ１２１４へ進み、デバイス管理画面の表示内容（すなわちデバイス管理画面の表示用データ）の構築処理を終了する。
【００７０】
なお、時１３の手順では、ＭＦＰの各機能についてそれぞれ接続とインストール状況とを順次判定している。しかし図８等に示されているとおり、各機能はｆｕｎｃｔｉｏｎ要素として記述されているので、ｆｕｎｃｔｉｏｎ要素を単位として、ループ処理を行っても良い。この場合には、各ｆｕｎｃｔｉｏｎ要素内のｎａｍｅ要素に記述されたパラメータを参照することで、接続されるべきデバイスおよびインストールされるべきドライバは決定できるので、決定されたデバイスの接続とドライバのインストール状況が判定される。そしていずれも満たされているなら、ＵＩウインドウ内にボタンを構築することになる。このようにすることで、ＭＦＰの機能が本例に示すもの以外に存在したとしても、それに対するデバイス管理画面を柔軟に構築できる。
【００７１】
＜ＴＷＡＩＮアプリケーションの起動＞
図１５はＴＷＡＩＮアプリケーションの起動の処理を表すフローチャートである。図１５のフローに係るプログラムは、ＨＤＤ２０２に記憶されており、ＲＡＭ２０１に読み出され、ＣＰＵ２０４により実行される。デバイス管理画面６００上の画像の読み込み（ＴＷＡＩＮ）ボタン６１１が押下されると、図１５において、ＴＷＡＩＮアプリケーション１４２の起動の処理が開始される（Ｓ１５０１）。
【００７２】
ボタン押下に応じて、ステップＳ１５０１において、図１４のデバイス管理８０内のデバイス管理制御部９０２が、ＴＷＡＩＮアプリケーション１４２を起動して、リンク実行部９０３を介して、ボタン６１１に関連づけられたプログラム名をアプリケーション制御部９０７に渡す。この例では、引き渡されるプログラム名は、たとえば図８の＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８１７、８２１、または８２６に記載されている情報のうち、画面６００の構築時にボタン６１１に関連づけられたプログラム名である。この情報から、アプリケーション制御部９０７が第１引数のＴＷＡＩＮドライバ名で表されたデバイス指定情報を取得する（Ｓ１５０２）。これを特に指定ドライバ名あるいは指定デバイス名と呼ぶ。
【００７３】
アプリケーション制御部９０７が第１引数のＴＷＡＩＮドライバ名、すなわち、デバイス指定情報の有無を判定し、デバイスの指定（デバイス指定情報）が有る場合（Ｓ１５０３）、ステップＳ１５０６へ進む。ステップＳ１５０３において、デバイスの指定（デバイス指定情報）が無い場合、ステップＳ１５０４へ進む。なお、ここではデバイスの指定とはドライバの指定そのものであるとする。本実施形態および他の実施形態において、ＰＣ１にインストールされたソフトウェアからみたデバイスとは、ハードウエアというよりむしろそのデバイスドライバであり、ソフトウェアから見たデバイスはドライバと言い換えることもできる。
【００７４】
本実施形態では、図８の＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８１７または８２６に記載されている第１引数のＴＷＡＩＮドライバ名によりデバイスの指定すなわちドライバの指定が行われるので、ステップＳ１５０３からステップＳ１５０６へ進む。
【００７５】
また、第１引数がセットされずにＴＷＡＩＮアプリケーション１４２が起動された場合、あるいは図８の＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８２１に記載されている第１引数のＴＷＡＩＮドライバ名により、不明なデバイスが指定されている場合、ステップＳ１５０３からステップＳ１５０４へ進む。
【００７６】
ステップＳ１５０４において、デフォルトデバイス設定部９０８はデフォルトデバイス情報格納部（具体的にはOSのレジストリ）９１１に格納され、管理されているデフォルトデバイス名（ＴＷＡＩＮドライバ名で指定されるスキャナ）を読みこみ、ステップＳ１５０５へ進む。
【００７７】
ステップS１５０５において、読みこまれたデバイス名をＴＷＡＩＮアプリケーション１４２のデフォルトデバイスとして設定する。すなわち、ＲＡＭに設けたデフォルトデバイス情報の領域にＳ１５０４で読んだデフォルトデバイス名を複製する。なおＲＡＭに設けたデフォルトデバイス名とは、これから実行されるアプリケーションの機能において使用される周辺装置を識別するための情報になる。ここでは、具体的には周辺装置を利用するために対応するデバイスドライバのドライバ名を用いている。
【００７８】
ステップＳ１５０６において、指定されたデバイス（ＴＷＡＩＮドライバ名で指定されるスキャナ）がネットワーク接続されたデバイスであり、かつデバイス名（ドライバ名）にMACアドレスが含まれるかの判断を行う。MACアドレスなしのネットワーク接続デバイス（［例］「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）  ＷＳＤ」、「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）  Ｎｅｔｗｏｒｋ」）であるならば、ステップＳ１５０８へ進む。また、ネットワーク接続デバイスでない場合（［例］「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）」）や、ネットワーク接続デバイスであってもＭＡＣアドレスを有する場合（［例］「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０８１４」）にはステップＳ１５０７へ進む。ネットワーク接続デバイスでないとは、ネットワーク以外のインタフェースでＰＣ１に接続されたデバイスである。尚、ＷＳＤのプロトコルの代わりにＩＨＶの独自プロトコルを用いて、ＴＷＡＩＮアプリケーション１４２が、その独自プロトコルを利用したＴＷＡＩＮドライバ１４１を介してデバイス（ＭＦＰ）を制御する場合に、MACアドレスなしのネットワーク接続デバイスとして前記「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）  Ｎｅｔｗｏｒｋ」が指定される。
【００７９】
ステップＳ１５０７において、指定されたデバイス（ＴＷＡＩＮドライバ名で指定されるスキャナ）のデバイス（ドライバ）名をＴＷＡＩＮアプリケーション１４２のデフォルトデバイスに設定、すなわちデフォルトデバイス情報格納部９１１に格納し、ステップＳ１５１４へ進む。
【００８０】
ステップＳ１５０８において、デフォルトデバイス設定部９０８は指定されたネットワーク接続デバイス名で、デフォルトデバイス情報格納部９１１に格納された使用履歴情報を参照して過去に使用していたＭＡＣアドレス情報を取得する。ここで使用履歴情報は、図１６のステップＳ１６０３で格納された使用履歴である。具体的には、Ｓ１５０８では、指定されたデバイス名と一致するデバイス名で使用履歴を検索する。
【００８１】
使用履歴に指定されたネットワークデバイスのＭＡＣアドレス情報が有ると判断された場合（Ｓ１５０９）にはステップＳ１５１０へ進む。一方、指定されたデバイス名が使用履歴に記録されていないか、またはデバイス名は記録されていてもＭＡＣアドレス情報が無い場合にはステップＳ１５１１へ進む。
【００８２】
ステップＳ１５１０において、ステップＳ１５０８で使用履歴情報から取得した、過去に使用していたネットワークデバイスのＭＡＣアドレス情報を含んだデバイス（ドライバ）名をＴＷＡＩＮアプリケーション１４２のデフォルトデバイスに設定する。ステップＳ１５１４へ進む。
【００８３】
ステップＳ１５１１において、指定されたデバイス名を持つネットワーク接続デバイスをネットワーク上で検索する。デ当該バイスがネットワーク上で見つかった場合には（Ｓ１５１２−ＹＥＳ）、ステップ１５１３に進み、最初に見つかったデバイス名およびそのＭＡＣアドレスをデフォルトデバイスとして設定し、ステップＳ１５１４に進む。
【００８４】
また、デバイスがネットワーク上で見つからなかった場合には、ステップＳ１５０４に進む。
【００８５】
ステップＳ１５１４において、アプリケーション制御部９０７がＴＷＡＩＮアプリケーション１４２を実行してＵＩを表示し、ＴＷＡＩＮアプリケーションの起動処理を完了する（Ｓ１５１５）。ここで実行されるプログラムは、たとえば、押されたボタンに関連づけられた機能（すなわちプログラム名）に対応する、ＴＷＡＩＮアプリケーション内のサブモジュールである。それにより、指摘された機能が実現される。
【００８６】
この時、ステップＳ１５０５、Ｓ１５１０、Ｓ１５１３で設定されたデフォルトデバイスが選択された状態で、ＴＷＡＩＮアプリケーション１４２が起動して、表示されている。尚、ＴＷＡＩＮアプリケーション１４２のデフォルトデバイスの情報は、ＴＷＡＩＮアプリケーション１４２が管理するＲＡＭ２０１上のメモリ内に保持される。なお、ＲＡＭに保持されたデフォルトデバイス名は、ＴＷＡＩＮアプリケーション１４２の終了と共に消去される。しかしこれを新たなデフォルトデバイスとしてレジストリに書き戻してもよい。
【００８７】
またＲＡＭに保存されるデフォルトデバイスは、厳密には、レジストリにデフォルトデバイスとして登録されたときに初めてデフォルトデバイスとなるデバイスである。すなわち図１５の手順は選択デバイス（すなわち選択ドライバ）を決定する手順ということもできる。これは図１７、図１８、図２２についても同様である。
【００８８】
以上の手順により、ＴＷＡＩＮアプリケーション１４２の起動時に、起動時のパラメータで指定されたデバイス名を、レジストリに予め保存されたデフォルトデバイスよりも優先して新たなデフォルトデバイスを決定する。すなわち、起動時のパラメータでデバイスがひとつに特定できれば当該デバイスを新たなデフォルトデバイスに設定する。起動時のパラメータで使用するデバイスがひとつに特定できなくても、候補を絞り込める場合には、その候補の中から、過去の使用実績があればそれを参照して、なければ接続されているデバイスから該当するデバイスを検索して新たなデフォルトデバイスを設定する。起動時のパラメータでデバイスが指定されていない場合や、指定されたデバイスが接続されていない場合には、レジストリに保存されたデフォルトデバイスをそのまま用いる。
【００８９】
＜ＴＷＡＩＮアプリケーションの終了＞
図１６はＴＷＡＩＮアプリケーションの終了の処理を表すフローチャートである。ステップＳ１６０１において、ユーザがＴＷＡＩＮアプリケーション１４２の終了を指示する。と、図１６の手順が実行される。
【００９０】
ステップＳ１６０２において、選択中のデバイス名がネットワーク接続かどうかを判定する。ネットワーク接続であれば、ステップＳ１６０３に進む。一方、ネットワーク接続で無い場合にはステップＳ１６０４に進む。ステップＳ１６０３において、デフォルトデバイス情報格納部（具体的にはOSのレジストリ）９１１に選択中のデバイス名とともに、デバイスのＭＡＣアドレスを保存する。このステップはＴＷＡＩＮアプリケーション１４２のデフォルトデバイス設定部９０８により行われる。ステップＳ１６０４において、デフォルトデバイス情報格納部（具体的にはOSのレジストリ）９１１に選択中のデバイス名を保存する。ステップＳ１６０５において、ＴＷＡＩＮアプリケーションを終了させる。このステップもＴＷＡＩＮアプリケーション１４２のデフォルトデバイス設定部９０８により行われる。
【００９１】
以上のようにして、ＴＷＡＩＮアプリケーションの終了時には、その時点において使用するデバイスとして選択されているデバイスの名称を、過去に選択されていたデバイス名すなわちデバイスの使用履歴を示す情報として保存する。ネットワーク接続されたＴＷＡＩＮデバイスが選択されている場合には、当該デバイスのネットワークインタフェースのＭＡＣアドレスをも合わせて使用履歴として保存する。保存されたデバイス名およびＭＡＣアドレスは、次回ＴＷＡＩＮアプリケーション１４２が起動された際、デバイスが指定されているもののアドレスも含めた完全な特定ができない場合にデバイスの指定のために参照される。
【００９２】
なお使用履歴は一世代としてもよいが、複数世代にわたって記録しても良い。たとえば二世代にわたって記録する場合には、最新の使用デバイスと、その前の使用デバイスのデバイス名およびＭＡＣアドレス（これを単に使用履歴とも呼ぶ）が記録される。複数世代にわたって使用履歴を記録する場合には、最も古い使用履歴が最新の使用履歴で上書きされるため、少なくとも最も古い使用履歴を特定する情報が付加される。これは例えば記録日時であってもよいし、記録領域の先頭と末尾とを論理歴に接続した環状のデータ構造を採用する場合には次の記録領域を示すマーク等であってもよい。複数世代の使用履歴を記録することで、たとえば複数のＭＦＰが使い分けられている場合でも、各ＭＦＰの使用履歴が残りやすくなる。これはＰＣ１の利用者が複数いる場合にも同様で、各利用者の使用履歴が残りやすくなる。またレジストリのデフォルトデバイスは更新されず、ＲＡＭのデフォルトデバイスのみ更新されることから、デバイス管理画面６００以外からＴＷＡＩＮアプリケーション１４２を起動する場合には、もともとの設定されているデフォルトデバイスを利用しやすい。
【００９３】
なお使用履歴として専用の領域を用意せず、Ｓ１６０３、Ｓ１６０４ではレジストリのデフォルトデバイスとしてデバイス名を保存しても良い。その場合には、図１５の手順でも使用履歴を参照するステップでは、使用履歴に代えてレジストリに保存されたデフォルトデバイスを参照する。こうすることで使用履歴の保存領域が不要となる。また、レジストリのデフォルトデバイスが、デバイス管理画面６００からＴＷＡＩＮアプリケーション１４２を起動させて終了させる都度更新される。
【００９４】
＜本実施形態の効果＞
このようにして、本実施形態では、ＴＷＡＩＮアプリケーションの起動時に、パラメータで指定されたデバイス名を、その時点でのデフォルトデバイスよりも優先して新たなデフォルトデバイスを決定する。すなわち、起動時のパラメータでデバイスがひとつに特定できれば当該デバイスをデフォルトデバイスに設定する。起動時のパラメータで使用するデバイスがひとつに特定できなくても、候補を絞り込める場合には、その候補の中から、過去の使用実績（履歴）があればそれを参照して、なければ接続されているデバイスから該当するデバイスを検索してデフォルトデバイスを設定する。起動時のパラメータでデバイスが指定されていない場合や、指定されたデバイスが接続されていない場合には、現在の（すなわち再設定前の）デフォルトデバイスをそのまま用いる。こうして、デバイスに関連づけられたアプリケーションプログラムを起動した際には、元々アプリケーションをたどるソースとなったデバイスが、当該アプリケーションのデフォルトとして利用される。
【００９５】
このためアプリケーションの実行時には、Ｄｅｖｉｃｅ  Ｓｔａｇｅで選択したデバイスが優先的にデフォルトデバイスとして使用される。
【００９６】
［実施形態２］
本実施形態は、図１５に代えて図１７を、図８に代えて図９を用いるが、その他の構成は実施形態１と同様である。
【００９７】
図９はデバイス管理制御用ファイル８５０の内容を表す図である。図９は本発明の特徴を最もよく表す図の内の１つである。デバイス管理制御用ファイル８５０は英語用のものである。この図に示す情報が、ファイル格納部１１または１２に格納されている。図９において、図８で既に説明したものと同じ内容に関しては同じ参照番号を付してその説明を省略する。図９において、＜dm:manufacturer＞要素８０１と＜dm:model＞要素８０２にセットされている情報は、デバイス管理制御用ファイル８５０のインストール時に利用される。また、デバイス管理制御用ファイル８５０には、デバイス管理画面６００を構成する為に必要な情報も記載されている。ＭＦＰ３がＰＣ１に接続されている時に起動して表示されるデバイス管理画面６００上に、図５に示すプリンタキューボタン６０４、印刷設定ボタン６０５、画像の読み込み（ＷＩＡ）ボタン６１０、画像の読み込み（ＴＷＡＩＮ）ボタン６１１を表示する為に、それぞれのボタン及び機能を表す＜dm:function＞要素８０４、８３９、８４０、８４１、８４２、８４４が＜dm:functions＞要素８５３の中にセットされている。
【００９８】
＜dm:function＞要素８４４において、＜dm:name xml:lang="en-US"＞Image Scan (TWAIN)＜/dm:name＞要素８２７には、画像の読み込み（ＴＷＡＩＮ）ボタン６１１に表示される「Image Scan (TWAIN)」という文字列がセットされている。＜dm:required＞要素８４８には、画像の読み込み（ＴＷＡＩＮ）ボタン６１１を表示する為の条件を表す情報がセットされている。＜dm:device＞printer＜/dm:device＞要素８２８は、ＰＣ１に接続されているデバイスが、プリンタ機能を備えていることを表す。＜dm:available＞true＜/dm:available＞要素８２９は、ＰＣ１に接続されているデバイスのプリンタ機能が、利用可能な状態であることを表す。＜dm:port＞WSD＜/dm:port＞要素８３０は、デバイスのプリンタ機能を利用する為のポートがＷＳＤポートであることを表す。ここで、ＷＳＤポートとは、ＷＳＤを利用したネットワーク接続のポートである。尚、＜dm:port＞WSD＜/dm:port＞要素８２５はＯＳの標準機能として定義されている。ＰＣ１に接続されているデバイス（ＭＰＦ３）のスキャナ機能が利用可能であることを判別するには、＜dm:required＞要素８１０を利用するのが一般的であると思われる。しかしながら、Windows 7 ＯＳにおいては、＜dm:required＞要素８１０を利用する場合、ＴＷＡＩＮドライバ１４１を利用したスキャナ機能において、ＵＳＢ接続とＷＳＤのネットワーク接続を区別して、それぞれの接続に合わせて適切な制御を行う、というような自動切り換え制御を行うことができない。従って、＜dm:required＞要素８１０では、ＴＷＡＩＮアプリケーション１４２の起動時の引数として、ＰＣ１とＭＦＰ３のインタフェースに応じて、それぞれのインタフェースにマッチする適切な値をセットすることができない。そこで、＜dm:required＞要素８４８で表されるような、スキャナ機能とは一切関係の無い別の機能である「プリンタ機能が利用可能であるという状態」と「プリンタ機能のポート名」を利用して、ＰＣ１とデバイス（ＭＦＰ３）のインタフェースを特定したスキャナ機能の判別を行うことで、ＴＷＡＩＮアプリケーション１４２起動時に適切な情報を引数としてセットして、ユーザの操作性を向上している。このように、＜dm:required＞要素８４８で表される条件とは、ここでは、ＴＷＡＩＮドライバによるＷＳＤのネットワーク接続での画像の読み込みが可能なケースのことである。＜dm:execute＞TWAINScan.exe "WIAScannerName" /devmng＜/dm:execute＞要素８３１には、ＴＷＡＩＮアプリケーション１４２を起動する機能（プログラム）を表す「TWAINScan.exe "WIAScannerName" /devmng」というコードがセットされている。前述した通り、"WIAScannerName"はＭＦＰ３に割り当てられたＷＩＡドライバ名を表す変数であり、ＴＷＡＩＮアプリケーション１４２とは一切関係の無い情報である。本実施形態では、図１７、図１８に示すように、ＴＷＡＩＮアプリケーション１４２が、このＷＩＡドライバ名を表す変数を使って、デバイス管理画面６００上で選択されているデバイス専用のＴＷＡＩＮドライバ名を自動生成し、そのデバイス専用の最適なＴＷＡＩＮドライバが選択された状態でＴＷＡＩＮアプリケーション１４２を起動することができるので、ユーザの操作性に優れる。なお実施形態１でデバイス名と称した名称は、本実施形態でいうドライバ名に相当する。そこで、ドライバ名を実施形���１に合わせてデバイス名と呼ぶこともある。
【００９９】
図１７はＴＷＡＩＮアプリケーションの起動の処理を表すフローチャートである。図１７は本実施形態の特徴を最もよく表す図の内の１つである。図１７のフローに係るプログラムは、ＨＤＤ２０２に記憶されており、ＲＡＭ２０１に読み出され、ＣＰＵ２０４により実行される。図１７は、アプリケーション１４２が、ＭＦＰ３、ＭＦＰ７７７を想定している例を表す。デバイス管理画面６００上の画像の読み込み（ＴＷＡＩＮ）ボタン６１１が押下されると、図１７において、ＴＷＡＩＮアプリケーション１４２の起動の処理が開始される（Ｓ１７０１）。
【０１００】
ステップＳ１７０１において、図１４のデバイス管理８０内のデバイス管理制御部９０２が、ＴＷＡＩＮアプリケーション１４２を起動して、リンク実行部９０３を介して図９の＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８１７、８２１、または８３１に記載されている情報をアプリケーション制御部９０７に渡す。＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８１７、８２１、または８３１に記載されている情報から、アプリケーション制御部９０７が第１引数のＴＷＡＩＮドライバ名またはＷＩＡドライバ名で表されたデバイス指定情報を取得する（Ｓ１７０２）。アプリケーション制御部９０７が、第１引数のＴＷＡＩＮドライバ名またはＷＩＡドライバ名、すなわち、デバイス指定情報をもとに、ＰＣ１にインストールされている全てのＴＷＡＩＮドライバ（ＴＷＡＩＮデータソース（以降、ＴＷＡＩＮ  ＤＳと略す場合がある））のリストの中に、前記デバイス指定情報が存在するか否かを検索する（Ｓ１７０３）。ＰＣ１にインストールされている全てのＴＷＡＩＮドライバのリストは、たとえばＯＳの管理するレジストリなどに記憶されている。アプリケーション制御部９０７が、ＴＷＡＩＮドライバ（ＴＷＡＩＮ  ＤＳ）のリスト内で前記デバイス指定情報を発見した場合ステップＳ１７１４へ進み、発見しなかった場合ステップＳ１７０５へ進む（Ｓ１７０４）。ステップＳ１７０５において、アプリケーション制御部９０７が、デバイス指定情報の中で製造元を表す文字列（例えば「ＡＢＣ」）を検索する。この文字列は、例えばデバイス管理情報（図８）の製造者要素から得たものを用いることができる。アプリケーション制御部９０７がこの文字列を発見した場合ステップＳ１７１１へ進み、発見しなかった場合ステップＳ１７０７へ進む（Ｓ１７０６）。ステップＳ１７０７において、アプリケーション制御部９０７が前記デバイス指定情報をＷＩＡドライバ名（［例］「Ｋｍｍｎ  （ＷＩＡ）＿ＡＡＢＢＣＣＸＸ０８１４」）であると推定する。なお、Ｓ１７０７はプログラミングの思考過程を示す擬似的な工程であり、実際のコンピュータ処理ではＳ１７０７では何も行わない。そこでアプリケーション制御部９０７が、前記デバイス指定情報の中で「＿」を検索して、発見した場合、その後に続くシリアル番号の有無を判定する（Ｓ１７０８）。
【０１０１】
アプリケーション制御部９０７が、シリアル番号が有ると判断した場合ステップＳ１７１０へ進み、無いと判断した場合ステップＳ１７１５へ進む（Ｓ１７０９）。ステップＳ１７１０において、アプリケーション制御部９０７が、前記デバイス指定情報の先頭に製造者名の文字列（例えば「ＡＢＣ  」）を付加し、文字列「ＷＩＡ」を「ＴＷＡＩＮ」で置換して、ＴＷＡＩＮドライバ名（［例］「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０８１４」）を生成する。ここで付加される製造者名は、たとえば図８等に示したデバイス管理情報の製造者名要素に記述された製造者名を用いることができる。そして、生成したＴＷＡＩＮドライバ名をＴＷＡＩＮドライバ名の候補としてセットする。ここでいうセットとは、候補のドライバ名を所定の記憶領域に一時保存することである。ステップＳ１７１１において、アプリケーション制御部９０７が、前記デバイス指定情報がＴＷＡＩＮドライバ名（［例］「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）」）であると推定し、それをＴＷＡＩＮドライバ名の候補としてセットする。
【０１０２】
ステップＳ１７１２において、アプリケーション制御部９０７が、ＰＣ１にインストールされている全てのＴＷＡＩＮドライバ（ＴＷＡＩＮ  ＤＳ）のリストの中に、ステップＳ１７１０またはＳ１７１１で候補としてセットされたＴＷＡＩＮドライバ名が存在するか否かを検索する。アプリケーション制御部９０７が、ＴＷＡＩＮドライバ（ＴＷＡＩＮ  ＤＳ）のリスト内で候補となっているＴＷＡＩＮドライバ名を発見した場合ステップＳ１７１４へ進み、発見しなかった場合ステップＳ１７１５へ進む（Ｓ１７１３）。ステップＳ１７１４において、デフォルトデバイス設定部９０８が、候補となっているＴＷＡＩＮドライバ名をデフォルトデバイスとしてセットし、ステップＳ１７１６へ進む。
【０１０３】
ステップＳ１７１５において、デフォルトデバイス設定部９０８が、レジストリに保存されたデバイス名、すなわち、デフォルトデバイス情報格納部（具体的にはＯＳのレジストリ）９１１に格納されたデバイス名（ＴＷＡＩＮドライバ名で指定されるスキャナ）を取得する。これは図１６のＳ１６０３又はＳ１６０４で保存したデバイス名である。したがってこれらステップでデバイス名がレジストリの使用履歴に保存されている場合にはそこから、レジストリのデフォルトデバイスとして設定されている場合にはそこからデバイス名を取得する。その取得したＴＷＡＩＮドライバ名をデフォルトデバイスとしてセットし、ステップＳ１７１６へ進む。セットとは、例えばＲＡＭのデフォルトデバイス用に確保された所定の領域に保存することである。ステップＳ１７１６において、アプリケーション制御部９０７が図６（ｂ）に示すＴＷＡＩＮアプリケーション１４２のメインダイアログを表示し、ＴＷＡＩＮアプリケーションの起動の処理を完了する（Ｓ１７１７）。この時、ステップＳ１７１４またはＳ１７１５で設定されたデフォルトデバイスが選択された状態で、ＴＷＡＩＮアプリケーション１４２が起動して、表示されている。尚、ＴＷＡＩＮアプリケーション１４２のデフォルトデバイスの情報は、ＴＷＡＩＮアプリケーション１４２が管理するＲＡＭ２０１上のメモリ内に保持される。尚、ＴＷＡＩＮアプリケーション１４２は、終了する際に図１６に示すＴＷＡＩＮアプリケーションの終了の処理と同様な処理を実行する。その際、ステップＳ１６０３において、ＭＡＣアドレスの代わりにシリアル番号（ＡＡＢＢＣＣＸＸ０８１４）を保存する。
【０１０４】
以上の手順により、デバイス管理画面６００からＴＷＡＩＮアプリケーションを起動した場合に、起動に係るデバイス（すなわち選択されたデバイス）を優先的にデフォルトデバイスとして使用することができる。また、選択されたデバイス名と一致するデバイスが接続されていない場合には、選択されたデバイス名に含まれる製造者名およびモデル名およびシリアル番号またはそれらのいずれかを含むＴＷＡＩＮデバイスのデバイス名を生成し、該当するデバイスを検索してあればそれをデフォルトデバイスとする。これにより、選択されたデバイスの優先的な利用を実現できる。
【０１０５】
［実施形態２の変形例］
次に実施形態２の変形例を説明する。本実施形態ではＴＷＡＩＮアプリケーションの起動手順が図１８で示した手順となる。
【０１０６】
図１７の例では、ステップＳ１７１３において、アプリケーション制御部９０７が、ＴＷＡＩＮドライバ（ＴＷＡＩＮ  ＤＳ）のリスト内で前記候補となっているＴＷＡＩＮドライバ名を検索する際に、完全一致するか否かで判断した。しかしこの例に限られることはない。例えば、ネットワークデバイスの場合、ネットワーク上のデバイスとしてＰＣ上にそのデバイスを表示する際に、ユーザがそのデバイスを表すフレンドリ名を変更することができるケースがある。このようなケースの場合、シリアル番号の部分に関してはフレンドリ名に必ず含まれるような形で、ユーザがフレンドリ名を変更できるようにすることで、本発明を適用することができる。この場合、ステップＳ１７１３において、ＴＷＡＩＮドライバ（ＴＷＡＩＮ  ＤＳ）のリスト内でＴＷＡＩＮドライバ名が完全一致しなくても、シリアル番号が一致するＴＷＡＩＮドライバが見つかった場合はステップＳ１７１４へ進む。そして、ステップＳ１７１４において、デフォルトデバイス設定部９０８が、シリアル番号が一致するＴＷＡＩＮドライバ名をデフォルトデバイスとしてセットすることで、ユーザがフレンドリ名を変更した場合においても、本発明を適用して、同様な効果を得ることができる、操作性に優れた周辺装置制御システムを実現することができる。
【０１０７】
前述した実施の形態では、ＴＷＡＩＮドライバ名とＷＩＡドライバ名がシリアル番号を含む例を挙げたが、この例に限られることなく、例えば、ＩＰアドレス（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ａｄｄｒｅｓｓ）を利用してもよい。今、ＷＩＡドライバ名が「Ｄｅｆｇ  （ＷＩＡ），１９２．１６８．０．８８」、ＴＷＡＩＮドライバ名が「ＸＹＺ  Ｄｅｆｇ  （ＴＷＡＩＮ），１９２．１６８．０．８８」であるとする。以下では、これらのドライバ名を図１７のフローチャートに適用して説明する。ステップＳ１７０５において、アプリケーション制御部９０７が、前記デバイス指定情報の中で製造元を表す「ＸＹＺ」という文字列を検索する。アプリケーション制御部９０７がこの文字列を発見した場合ステップＳ１７１１へ進み、発見しなかった場合ステップＳ１７０７へ進む（Ｓ１７０６）。ステップＳ１７０７において、アプリケーション制御部９０７が前記デバイス指定情報をＷＩＡドライバ名（［例］「Ｄｅｆｇ  （ＷＩＡ），１９２．１６８．０．８８」）であると推定する。アプリケーション制御部９０７が、前記デバイス指定情報の中で「，」を検索して、発見した場合、その後に続くＩＰアドレスの有無を確認する（Ｓ１７０８）。アプリケーション制御部９０７が、ＩＰアドレスが有ると判断した場合ステップＳ１７１０へ進み、無いと判断した場合ステップＳ１７１５へ進む（Ｓ１７０９）。ステップＳ１７１０において、アプリケーション制御部９０７が、前記デバイス指定情報の先頭に「ＸＹＺ  」を付加し、「ＷＩＡ」を「ＴＷＡＩＮ」で置換し、ＴＷＡＩＮドライバ名「ＸＹＺ  Ｄｅｆｇ  （ＴＷＡＩＮ），１９２．１６８．０．８８」を生成して、それをＴＷＡＩＮドライバ名の候補としてセットする。ステップＳ１７１１において、アプリケーション制御部９０７が、前記デバイス指定情報がＴＷＡＩＮドライバ名「ＸＹＺ  Ｄｅｆｇ  （ＴＷＡＩＮ）」であると推定し、それをＴＷＡＩＮドライバ名の候補としてセットする。このように、デバイスを特定する情報がＩＰアドレスの場合においても、デバイス管理画面６００に表示されているデバイスの個体を特定した最適なＴＷＡＩＮドライバが選択された状態でＴＷＡＩＮアプリケーション１４２を起動することができるので、ユーザの操作性に優れる。
【０１０８】
［実施形態３］
次に実施形態３を説明する。実施形態３は実施形態１と同じ構成のシステムで実施される。ただし、ＴＷＡＩＮアプリケーションの起動手順が図１８の通りとなる。実施形態３は実施形態２を無線ＬＡＮと優先ＬＡＮとが混在し、その両方でネットワークに接続されたデバイスが含まれたシステムにおける例である。今、ＭＦＰ８８８のような、無線ＬＡＮ（IEEE 802.11b/g/n）と有線ＬＡＮ（Ethernet）の両方のネットワークインタフェースに対応しているデバイスのケースを考える。図１で前述したように、ＭＦＰ８８８のシリアル番号は、無線ＬＡＮデバイスとしてのＭＡＣアドレスＡＡＢＢＣＣＹＹ１２１８と、有線ＬＡＮデバイスとしてのＭＡＣアドレスＡＡＢＢＣＣＹＹ０７３０の、それぞれの下位２４ビットを組み合せたＹＹ１２１８ＹＹ０７３０という値で表される。
【０１０９】
図１９はＭＦＰ８８８から発行されるＷＳＤベースのＮ−ＰｎＰの情報を表す図である。図１９において、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）のメッセージ２２２は、ネットワークのプラグ アンド プレイ（Ｎ−ＰｎＰ）時にＭＦＰ８８８がＰＣ（ＰＣ１）に送信する。ＳＯＡＰのメタデータ（＜ｍｅｘ：Ｍｅｔａｄａｔａ＞要素２２３は、ＭＦＰ８８８の詳細情報がこの中に含まれている。ＷＳＤのフレンドリーネーム（＜ｗｓｄｐ：ＦｒｉｅｎｄｌｙＮａｍｅ＞）要素２２４は、ＭＦＰ８８８のＷＳＤ用のフレンドリーネームがセットされている。ここでは「ＡＢＣ  Ｍｎｍｋ」というフレンドリーネームがセットされている例を表す。ＷＳＤのシリアル番号（＜ｗｓｄｐ：ＳｅｒｉａｌＮｕｍｂｅｒ＞）要素２２５は、ＭＦＰ８８８のＷＳＤ用のシリアル番号がセットされている。ここでは前述したＭＦＰ８８８のシリアル番号「ＹＹ１２１８ＹＹ０７３０」がセットされている例を表す。ＷＳＤの製造者名（＜ｗｓｄｐ：Ｍａｎｕｆａｃｔｕｒｅｒ＞）要素２２６は、ＭＦＰ８８８のＷＳＤ用の製造者名がセットされている。ここではＭＦＰ８８８の製造元であるＡＢＣ社の製造者名「ＡＢＣ」がセットされている例を表す。ＷＳＤのモデル名（＜ｗｓｄｐ：ＭｏｄｅｌＮａｍｅ＞）要素２２７は、ＭＦＰ８８８のＷＳＤ用のモデル名がセットされている。ここでは前述したＭＦＰ８８８のモデル名「Ｍｎｍｋ」がセットされている例を表す。
【０１１０】
図１８はＴＷＡＩＮアプリケーションの起動の処理を表すフローチャートである。図１８は本発明の特徴を最もよく表す図の内の１つである。図１８のフローに係るプログラムは、ＨＤＤ２０２に記憶されており、ＲＡＭ２０１に読み出され、ＣＰＵ２０４により実行される。図１８は、アプリケーション１４２が、ＭＦＰ８８８を想定している例を表す。デバイス管理画面６００上の画像の読み込み（ＴＷＡＩＮ）ボタン６１１が押下されると、図１８において、ＴＷＡＩＮアプリケーション１４２の起動の処理が開始される（Ｓ１８０１）。ステップＳ１８０１において、図１４のデバイス管理８０内のデバイス管理制御部９０２が、リンク実行部９０３を介して図９の＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８１７、８２１、または８３１に記載されている情報をアプリケーション制御部９０７に渡す。ここではＭＦＰ８８８を想定しているので、図９の＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８１７、８３１において、「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）」を「ＡＢＣ  Ｍｎｍｋ  （ＴＷＡＩＮ）」と置換した内容であるものとする。前記＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８１７、８２１、または８３１に記載されている情報から、アプリケーション制御部９０７が第１引数のＴＷＡＩＮドライバ名またはＷＩＡドライバ名で表されたデバイス指定情報を取得する（Ｓ１８０２）。アプリケーション制御部９０７が、第１引数のＴＷＡＩＮドライバ名またはＷＩＡドライバ名、すなわち、デバイス指定情報をもとに、ＰＣ１にインストールされている全てのＴＷＡＩＮドライバ（ＴＷＡＩＮデータソース（以降、ＴＷＡＩＮ  ＤＳと略す場合がある））のリストの中に、前記デバイス指定情報が存在するか否かを検索する（Ｓ１８０３）。アプリケーション制御部９０７が、ＴＷＡＩＮドライバ（ＴＷＡＩＮ  ＤＳ）のリスト内で前記デバイス指定情報を発見した場合ステップＳ１８１７へ進み、発見しなかった場合ステップＳ１８０５へ進む（Ｓ１８０４）。
【０１１１】
ステップＳ１８０５において、アプリケーション制御部９０７が、前記デバイス指定情報の中で製造元を表す文字列（例えば「ＡＢＣ」）を検索する。アプリケーション制御部９０７がこの文字列を発見した場合ステップＳ１８１１へ進み、発見しなかった場合ステップＳ１８０７へ進む（Ｓ１８０６）。ステップＳ１８０７において、アプリケーション制御部９０７が前記デバイス指定情報をＷＩＡドライバ名（［例］「Ｍｎｍｋ  （ＷＩＡ）＿ＹＹ１２１８ＹＹ０７３０」）であると推定する。なおこのステップＳ１８０７は、プログラミング上の疑似的な工程であってコンピュータによる処理では何も行わない。そこでアプリケーション制御部９０７が前記デバイス指定情報の中で「＿」を検索する（Ｓ１８０８）。アプリケーション制御部９０７が、「＿」を発見した場合ステップＳ１８１０へ進み、発見しなかった場合ステップＳ１８１８へ進む（Ｓ１８０９）。ステップＳ１８１０において、アプリケーション制御部９０７が、前記デバイス指定情報の先頭に製造者名の文字列「ＡＢＣ  」を付加し、デバイスに種類を表す「ＷＩＡ」を「ＴＷＡＩＮ」で置換する。さらに、当該製造者に対して割り当てられたＭＡＣアドレスの上位２４ビットの製造元情報（［例］ＡＢＣ社に割り当てられている「ＡＡＢＢＣＣ」）と、前記デバイス指定情報の「＿」の後に続く６文字（［例］「ＹＹ１２１８」）をつなげてシリアル番号（「ＡＡＢＢＣＣＹＹ１２１８」）を合成する。そしてそれら文字列を使って、無線ＬＡＮ用ＴＷＡＩＮドライバ名（［例］「ＡＢＣ  Ｍｎｍｋ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＹＹ１２１８」）を生成して、それをＴＷＡＩＮドライバ名の候補としてセットすなわち保存する。
【０１１２】
ステップＳ１８１１において、アプリケーション制御部９０７が、前記デバイス指定情報がＴＷＡＩＮドライバ名（［例］「ＡＢＣ  Ｍｎｍｋ  （ＴＷＡＩＮ）」）であると推定し、それをＴＷＡＩＮドライバ名の候補としてセットする。なおこのステップでも、「推定」するとはコンピュータによる処理では何も行わない。すなわちＳ１８１１では、デバイス指定情報のデバイス名を、ＴＷＡＩＮドライバ名の候補として保存する。ステップＳ１８１２において、アプリケーション制御部９０７が、ＰＣ１にインストールされている全てのＴＷＡＩＮドライバ（ＴＷＡＩＮ  ＤＳ）のリストの中に、ステップＳ１８１０またはＳ１８１１で候補として保存されたＴＷＡＩＮドライバ名が存在するか否かを検索する。アプリケーション制御部９０７が、ＴＷＡＩＮドライバ（ＴＷＡＩＮ  ＤＳ）のリスト内で前記候補となっているＴＷＡＩＮドライバ名を発見した場合ステップＳ１８１７へ進み、発見しなかった場合ステップＳ１８１４へ進む（Ｓ１８１３）。
【０１１３】
ステップＳ１８１４において、アプリケーション制御部９０７が、前記デバイス指定情報の先頭に製造者名の文字列「ＡＢＣ  」を付加し、デバイスの種類である「ＷＩＡ」を「ＴＷＡＩＮ」で置換する。さらに、当該製造者に対して割り当てられたＭＡＣアドレスの上位２４ビットの製造元情報（［例］ＡＢＣ社に割り当てられている「ＡＡＢＢＣＣ」）と、前記デバイス指定情報の最後尾の６文字（［例］「ＹＹ０７３０」）をつなげてシリアル番号（「ＡＡＢＢＣＣＹＹ０７３０」）を合成する。そしてそれらを使って、有線ＬＡＮ用ＴＷＡＩＮドライバ名（［例］「ＡＢＣ  Ｍｎｍｋ （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＹＹ０７３０」）を生成して、それをＴＷＡＩＮドライバ名の候補としてセットすなわち保存する。アプリケーション制御部９０７が、ＰＣ１にインストールされている全てのＴＷＡＩＮドライバ（ＴＷＡＩＮ  ＤＳ）のリストの中に、ステップＳ１８１４で候補として保存されたＴＷＡＩＮドライバ名が存在するか否かを検索する（Ｓ１８１５）。アプリケーション制御部９０７が、ＴＷＡＩＮドライバ（ＴＷＡＩＮ  ＤＳ）のリスト内で前記候補となっているＴＷＡＩＮドライバ名を発見した場合ステップＳ１８１７へ進み、発見しなかった場合ステップＳ１８１８へ進む（Ｓ１８１６）。
【０１１４】
ステップＳ１８１７において、デフォルトデバイス設定部９０８が、前記候補となっているＴＷＡＩＮドライバ名をデフォルトデバイスとしてＲＡＭに確保したデフォルトデバイス領域にセットし、ステップＳ１８１９へ進む。ステップＳ１８１８において、デフォルトデバイス設定部９０８が、レジストリに保存されたデバイス名、すなわち、デフォルトデバイス情報格納部（具体的にはＯＳのレジストリ）９１１に格納されたデバイス名（ＴＷＡＩＮドライバ名で指定されるスキャナ）を取得し、そのＴＷＡＩＮドライバ名をデフォルトデバイスとしてセットし、ステップＳ１８１９へ進む。これは図１７のステップＳ１７１５と同様である。ステップＳ１８１９において、アプリケーション制御部９０７が図６（ｂ）に示すＴＷＡＩＮアプリケーション１４２のメインダイアログを表示し、ＴＷＡＩＮアプリケーションの起動の処理を完了する（Ｓ１８２０）。この時、ステップＳ１８１７またはＳ１８１８で設定されたデフォルトデバイスが選択された状態で、ＴＷＡＩＮアプリケーション１４２が起動して、表示されている。尚、ＴＷＡＩＮアプリケーション１４２のデフォルトデバイスの情報は、ＴＷＡＩＮアプリケーション１４２が管理するＲＡＭ２０１上のメモリ内に保持される。尚、ＴＷＡＩＮアプリケーション１４２は、終了する際に図１６に示すＴＷＡＩＮアプリケーションの終了の処理と同様な処理を実行する。その際、ステップＳ１６０３において、ＭＡＣアドレスの代わりに、無線ＬＡＮ用ＴＷＡＩＮドライバ名の一部の情報（ＡＡＢＢＣＣＹＹ１２１８）または有線ＬＡＮ用ＴＷＡＩＮドライバ名の一部の情報（ＡＡＢＢＣＣＹＹ０７３０）を保存する。
【０１１５】
図１７、図１８で説明したように、デバイス管理８０内のデバイス管理制御部９０２が、リンク実行部９０３を介してアプリケーション制御部９０７にＷＩＡドライバ名で表されたデバイス指定情報を渡す。そして、ＴＷＡＩＮアプリケーション１４２内のアプリケーション制御部９０７が、前記デバイス指定情報として渡されたＷＩＡドライバ名からＴＷＡＩＮドライバ名を生成し、デフォルトデバイス設定部９０８がこのＴＷＡＩＮドライバ名をデフォルトデバイスとしてセットし、これが選択された状態でＴＷＡＩＮアプリケーション１４２が起動する。これにより、デバイス管理画面６００に表示されているデバイスの個体を特定した最適なＴＷＡＩＮドライバが選択された状態でＴＷＡＩＮアプリケーション１４２を起動することができるので、ユーザの操作性に優れる。
【０１１６】
図１７のステップＳ１７１５、図１８のステップＳ１８１８において、デフォルトデバイス設定部９０８が、前回起動した時に選択されていたＴＷＡＩＮドライバ名をデフォルトデバイスとしてセットしたが、この例に限られることはない。例えば、図１４のデバイス管理８０内のデバイス管理制御部９０２が、リンク実行部９０３を介して図８の＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８２６に記載されている情報「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）  ＷＳＤ」をアプリケーション制御部９０７に渡した場合、ステップＳ１７１５またはＳ１８１８に至る。ここで、図１５のステップＳ１５０２へ進み、アプリケーション制御部９０７またはデフォルトデバイス設定部９０８が図１５に示す処理を実行することで、適切なＴＷＡＩＮドライバが選択された状態でＴＷＡＩＮアプリケーション１４２を起動することができるので、ユーザの操作性に優れる。また、他の例として、例えば、ＵＳＢ接続、ネットワーク接続の順で優先順位を設けて、デバイスのモデル名をもとに検索対象を絞った上で、それぞれの接続形態でＰＣ１に接続されているＭＦＰに対して、通信テストを行い、最初に見つかった優先順位の高いデバイス用のＴＷＡＩＮドライバを選択する、という方法もある。さらに、この方法を前記図１５のステップＳ１５０２を実行する例でステップＳ１５０４へ至るケースと組み合せてもよい。これらの方法によれば、動作可能な状態で利用できるデバイスを確実に選択することができ、より最適なＴＷＡＩＮドライバが選択された状態でＴＷＡＩＮアプリケーション１４２を起動することができるので、ユーザの操作性に優れる。
【０１１７】
［実施形態４］
今、同一モデルで異なる個体の複数のデバイス（例えばＭＦＰ３、ＭＦＰ７７７）がＵＳＢインタフェース１４またはネットワーク４を介して１台のＰＣ（ＰＣ１）に接続されているケースを考える。このようなケースにおいて、いつもＴＷＡＩＮアプリケーション１４２からある特定のデバイスを操作するユーザにとっては、スキャナ選択部６２１でＴＷＡＩＮドライバを選択する操作が煩わしい場合がある。このようなユーザに対して、スキャナセレクタというようなスキャナ設定ツールを用意することで、操作性を向上している例がある。
【０１１８】
図２０はスキャナセレクタのＵＩを表す図である。図２０において、スキャナセレクタ２０００は、ＡＢＣ社製のアプリケーションプログラムである。スキャナセレクタ２０００は、同一モデルで個体の異なる複数のデバイス（例えばＭＦＰ３、ＭＦＰ７７７）がＵＳＢインタフェース１４またはネットワーク４を介して１台のＰＣ（ＰＣ１）に接続されている場合に、ＴＷＡＩＮアプリケーション１４２で操作するデバイス用のＴＷＡＩＮドライバを予め設定しておく為のスキャナ設定ツールである。ユーザインタフェース２００１はスキャナセレクタのメインダイアログである。スキャナ選択部２００２では、ＰＣ１にインストールされているスキャナ機能を備えるデバイスを選択することができる。ここでは、ＡＢＣ社製のモデル名がＫｍｍｎというＭＦＰと、ＡＢＣ社製のモデル名がＭｎｍｋというＭＦＰを次の何れかから選択することができるものとする。
・ＡＢＣ  Ｋｍｍｎ
・ＡＢＣ  Ｍｎｍｋ。
【０１１９】
図２０ではＡＢＣ社製のモデル名がＫｍｍｎというＭＦＰを表す「ＡＢＣ  Ｋｍｍｎ」が選択されている状態を表す。ＴＷＡＩＮドライバ選択部２００３は、スキャナ選択部２００２で選択されているデバイス用のＴＷＡＩＮドライバが全てリストアップされて、その中から１つを選択できるようになっている。図２０において、「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）」は、ＵＳＢインタフェース１４を介してＰＣ１に接続されているＭＦＰ３用のＴＷＡＩＮドライバ名である。「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０８１４」は、ネットワーク４を介してＰＣ１に接続されているＭＦＰ３用のＴＷＡＩＮドライバ名である。「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０７０７」は、ネットワーク４を介してＰＣ１に接続されているＭＦＰ７７７用のＴＷＡＩＮドライバ名である。図２０では「ＡＢＣ  Ｋｍｍｎ  （ＴＷＡＩＮ）＿ＡＡＢＢＣＣＸＸ０７０７」が選択されている状態を表す。本実施形態４において、ＴＷＡＩＮドライバ選択部２００３内にリストアップされているＴＷＡＩＮドライバに関しては、それぞれのＴＷＡＩＮドライバ用のＴＷＡＩＮ  ＤＳは存在せず、あくまでもＴＷＡＩＮドライバ選択部２００３内だけに表示されるものである。その代わりに、スキャナセレクタ２０００を利用する場合のＴＷＡＩＮ  ＤＳとして、「ＡＢＣ  Ｋｍｍｎ  Ｓｅｌｅｃｔｏｒ」という名前のものが用意されている。このスキャナセレクタ２０００用のＴＷＡＩＮ  ＤＳは、ＴＷＡＩＮアプリケーション１４２のメインダイアログ上のスキャナ選択部６２１において、「ＡＢＣ  Ｋｍｍｎ  Ｓｅｌｅｃｔｏｒ」というＴＷＡＩＮドライバ名の選択肢として表示される。従って、本実施形態４では、スキャナ選択部６２１において、次の何れかを選択することができる。
・ＡＢＣ  Ｋｍｍｎ  Ｓｅｌｅｃｔｏｒ
・ＡＢＣ  Ｍｎｍｋ  Ｓｅｌｅｃｔｏｒ。
【０１２０】
＜ＴＷＡＩＮアプリケーションの起動＞
図２１はＴＷＡＩＮアプリケーションの起動の処理を表すフローチャートである。図２１は本実施形態の特徴を最もよく表す図の内の１つである。図２１のフローに係るプログラムは、ＨＤＤ２０２に記憶されており、ＲＡＭ２０１に読み出され、ＣＰＵ２０４により実行される。図２１は、アプリケーション１４２が、ＭＦＰ３、ＭＦＰ７７７を想定している例を表す。デバイス管理画面６００上の画像の読み込み（ＴＷＡＩＮ）ボタン６１１が押下されると、図２１において、ＴＷＡＩＮアプリケーション１４２の起動の処理が開始される（Ｓ２１０１）。
【０１２１】
ステップＳ２１０１において、図１４のデバイス管理８０内のデバイス管理制御部９０２が、リンク実行部９０３を介して図９の＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８１７、８２１、または８３１に記載されている情報をアプリケーション制御部９０７に渡す。前記＜ｄｍ：ｅｘｅｃｕｔｅ＞要素８１７、８２１、または８３１に記載されている情報から、アプリケーション制御部９０７が第１引数のＴＷＡＩＮドライバ名またはＷＩＡドライバ名で表されたデバイス指定情報を取得する（Ｓ２１０２）。アプリケーション制御部９０７が、第１引数のＴＷＡＩＮドライバ名またはＷＩＡドライバ名、すなわち、デバイス指定情報がスキャナセレクタ２０００用の「ＡＢＣ  ＊＊＊＊  Ｓｅｌｅｃｔｏｒ」というＴＷＡＩＮドライバ名であるか否かを比較する（Ｓ２１０３）。アプリケーション制御部９０７が、スキャナセレクタ２０００用のＴＷＡＩＮドライバ名であると判断した場合ステップＳ２１１０へ進み、スキャナセレクタ２０００用のＴＷＡＩＮドライバ名ではないと判断した場合ステップＳ２１０５へ進む。
【０１２２】
ステップＳ２１０５において、アプリケーション制御部９０７が前記デバイス指定情報をＷＩＡドライバ名（［例］「Ｋｍｍｎ  （ＷＩＡ）＿ＡＡＢＢＣＣＸＸ０８１４」）であると推定する。なおステップＳ２１０５では処理対象をデバイス指定情報と決定したこと以外には特に何も行われない。そしてアプリケーション制御部９０７が、前記デバイス指定情報の中で「＿」を検索して、発見した場合、その後に続くシリアル番号の有無を判定する（Ｓ２１０６）。アプリケーション制御部９０７が、シリアル番号が有ると判断した場合ステップＳ２１０８へ進み、無いと判断した場合ステップＳ２１０９へ進む（Ｓ２１０７）。
【０１２３】
ステップＳ２１０８において、アプリケーション制御部９０７がスキャナセレクタ２０００にモデル名（［例］「Ｋｍｍｎ」）とシリアル番号（［例］「ＡＡＢＢＣＣＸＸ０８１４」）を通知し、ステップＳ２１１０へ進む。ステップＳ２１０９において、アプリケーション制御部９０７がスキャナセレクタ２０００にモデル名（［例］「Ｋｍｍｎ」）を通知し、ステップＳ２１１０へ進む。ステップＳ２１１０において、アプリケーション制御部９０７がスキャナセレクタ２０００用のＴＷＡＩＮドライバ名を候補としてセットする。ステップＳ２１１１において、アプリケーション制御部９０７が、ＰＣ１にインストールされている全てのＴＷＡＩＮドライバ（ＴＷＡＩＮ  ＤＳ）のリストの中に、ステップＳ２１１０で候補としてセットされたＴＷＡＩＮドライバ名が存在するか否かを検索する。アプリケーション制御部９０７が、ＴＷＡＩＮドライバ（ＴＷＡＩＮ  ＤＳ）のリスト内で前記候補となっているＴＷＡＩＮドライバ名を発見した場合ステップＳ２１１３へ進み、発見しなかった場合ステップＳ２１１４へ進む（Ｓ２１１２）。
【０１２４】
ステップＳ２１１３において、デフォルトデバイス設定部９０８が、前記候補となっているＴＷＡＩＮドライバ名をデフォルトデバイスとしてセットし、ステップＳ２１１５へ進む。ステップＳ２１１４において、デフォルトデバイス設定部９０８が、前回起動した時に選択されていたＴＷＡＩＮドライバ名、すなわち、デフォルトデバイス情報格納部（具体的にはＯＳのレジストリ）９１１に格納されたデバイス名（ＴＷＡＩＮドライバ名で指定されるスキャナ）を取得し、そのＴＷＡＩＮドライバ名をデフォルトデバイスとしてＲＡＭにセットし、ステップＳ２１１５へ進む。ステップＳ２１１５において、アプリケーション制御部９０７が図６の（ｂ）に示すＴＷＡＩＮアプリケーション１４２のメインダイアログを表示し、ＴＷＡＩＮアプリケーションの起動の処理を完了する（Ｓ２１１６）。この時、ステップＳ２１１３またはＳ２１１４で設定されたデフォルトデバイスが選択された状態で、ＴＷＡＩＮアプリケーション１４２が起動して、表示されている。尚、ＴＷＡＩＮアプリケーション１４２のデフォルトデバイスの情報は、ＴＷＡＩＮアプリケーション１４２が管理するＲＡＭ２０１上のメモリ内に保持される。尚、ＴＷＡＩＮアプリケーション１４２は、終了する際に図１６に示すＴＷＡＩＮアプリケーションの終了の処理と同様な処理を実行する。その際、スキャナセレクタ用のＴＷＡＩＮドライバ名がデフォルトデバイスとしてセットされている場合、ステップＳ１６０３またはＳ１６０４において、デフォルトデバイス設定部９０８はスキャナセレクタ用のＴＷＡＩＮドライバ名を保存する。
【０１２５】
＜スキャナセレクタの処理＞
図２２はスキャナセレクタの処理を表すフローチャートである。図２２は本発明の特徴を最もよく表す図の内の１つである。図２２のフローに係るプログラムは、ＨＤＤ２０２に記憶されており、ＲＡＭ２０１に読み出され、ＣＰＵ２０４により実行される。アプリケーション制御部９０７が、図２１のステップＳ２１０８またはＳ２１０９を実行すると、それらステップでの通知を受けたスキャナセレクタ２０００の処理が図２２の手順で開始される（Ｓ２２０１）。
【０１２６】
スキャナセレクタ２０００が、アプリケーション制御部９０７から通知された情報の中からモデル名と、通知されていればシリアル番号を取得する（Ｓ２２０２）。スキャナセレクタ２０００が、モデル名を発見した場合ステップＳ２２０４へ進み、発見しなかった場合ステップＳ２２１３へ進む（Ｓ２２０３）。ステップＳ２２０４において、スキャナセレクタ２０００が、シリアル番号を発見した場合ステップＳ２２０５へ進み、発見しなかった場合ステップＳ２２１３へ進む。
【０１２７】
ステップＳ２２０５において、スキャナセレクタ２０００が、取得したモデル名とシリアル番号とを指定して、ＰＣ１にインストールされている全てのＴＷＡＩＮドライバのリストの中に、前記モデル名とシリアル番号を含むものが存在するか否かを検索する（Ｓ２２０６）。スキャナセレクタ２０００が、ＴＷＡＩＮドライバのリストの中に、前記モデル名とシリアル番号を含むものを発見した場合ステップＳ２２０８へ進み、発見しなかった場合ステップＳ２２０９へ進む（Ｓ２２０７）。ステップＳ２２０８において、スキャナセレクタ２０００が、指定されたモデル名のデバイスをスキャナ選択部２００２で選択し、指定されたモデル名とシリアル番号で構成されるＴＷＡＩＮドライバをＴＷＡＩＮドライバ選択部２００３で選択し、ステップＳ２２１３へ進む。
【０１２８】
ステップＳ２２０９において、スキャナセレクタ２０００が、モデル名を指定し、かつ、シリアル番号を一切含んでいないことを指定し、ＰＣ１にインストールされている全てのＴＷＡＩＮドライバのリストの中に、前記モデル名を含み、かつ、シリアル番号を一切含んでいないものが存在するか否かを検索する（Ｓ２２１０）。スキャナセレクタ２０００が、ＴＷＡＩＮドライバのリストの中に、前記モデル名を含み、かつ、シリアル番号を一切含まないものを発見した場合ステップＳ２２１２へ進み、発見しなかった場合ステップＳ２２１３へ進む（Ｓ２２１１）。ステップＳ２２１２において、スキャナセレクタ２０００が、指定されたモデル名のデバイスをスキャナ選択部２００２で選択し、指定されたモデル名を含み、シリアル番号を一切含まないＴＷＡＩＮドライバをＴＷＡＩＮドライバ選択部２００３で選択し、ステップＳ２２１３へ進む。ステップＳ２２１３において、スキャナセレクタ２０００が、通知されたモデル名、シリアル番号をもとにＴＷＡＩＮドライバを選択する処理を終了する。
【０１２９】
ステップＳ２２０６、Ｓ２２１０において、ＰＣ１にインストールされている全てのＴＷＡＩＮドライバとは、それぞれのＴＷＡＩＮドライバ用のＴＷＡＩＮ  ＤＳがインストールされていることを表すわけではなく、ＴＷＡＩＮドライバ選択部２００３で選択可能なＴＷＡＩＮドライバを表している。従って、例えば、各モデル用にＴＷＡＩＮドライバは１つずつ用意されていて、シリアル番号が通信ポート名を表すような構成の場合は、モデル名でＴＷＡＩＮドライバを指定し、シリアル番号で通信ポートを指定する、という実施形態も含まれる。尚、スキャナセレクタ２０００は、シリアル番号で構成された通信ポートに関する情報を、ＯＳのレジストリに保存している。ＴＷＡＩＮドライバは、動作する時にこのレジストリを参照し、通信ポートに関する情報を取得して、その通信ポートに対してデータの送信や受信を行うことで、デバイス（スキャナ）を制御する。また、スキャナセレクタ２０００が、通信ポートに関する情報を、ＯＳのレジストリではなくファイル等に保存し、ＴＷＡＩＮドライバがそのファイルを参照して通信ポートに関する情報を取得するようにしてもよい。
【０１３０】
このように、スキャナセレクタ２０００のようなスキャナ設定ツールを用いた例においても、本発明を適用して、同様な効果を得ることができる、操作性に優れた周辺装置制御システムを実現することができる。
【０１３１】
［実施形態４］
本実施形態における図１０〜図１３、図１５〜図１８、図２１、図２２にそれぞれ示す各フローチャートの実行によって実現できる各機能が、外部からインストールされるプログラムによって、情報処理装置によって実現されるようにしてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやフレキシブルディスク等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群が情報処理装置や周辺装置に供給される場合でも、本発明は適用されるものである。
【０１３２】
このように、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。  本発明の実施の形態では、アプリケーションの例として図１４に示すようなデバイス管理（Device Management）８０を挙げたが、この例に限られることなく、同様な機能を備える任意のアプリケーションで実現可能であり、有効である。
【０１３３】
本発明の実施の形態では、アプリケーションの例として図６（ｂ）や図１４に示すようなＴＷＡＩＮアプリケーション１４２を挙げたが、この例に限られることなく、画像やドキュメントを印刷する為のアプリケーション等、同様な機能を備える任意のアプリケーションで実現可能であり、有効である。
【０１３４】
本発明の実施の形態では情報処理装置としてパーソナルコンピュータを想定したが、この例に限られることなく、例えばＤＶＤプレーヤー、ゲーム、セットトップボックス、インターネット家電等、同様な使用方法が可能な任意の情報処理装置（端末）に対して実現することができ、有効である。
【０１３５】
本発明の実施の形態では、周辺装置としてＭＦＰを例示しているが、周辺装置として他に、複写機、ファクシミリ、スキャナ、デジタルカメラ、デジタルビデオカメラ、及びこれらの複合機能を備える装置等のいずれかが、本発明の適用対象となり得る。
【０１３６】
本発明の実施の形態では、ＯＳに例としてWindows 7と同等のＯＳを使用したが、これらのＯＳに限られることなく、任意のＯＳを使用することができる。
【０１３７】
本発明の実施の形態では、ネットワーク４の構成例としてEthernetを用いたが、この例に限られることなく、他の任意のネットワーク構成であってもよい。
【０１３８】
本発明の実施の形態では、ＰＣ１とＭＦＰ３、ＭＦＰ７７７、ＭＦＰ８８８、ＭＦＰ７との間のインタフェースとして、Ethernetを用いたが、このインタフェースに限られることなく、例えば、無線ＬＡＮ、IEEE1394、Bluetooth、USB等の任意のインタフェースを用いるようにしてもよい。
【０１３９】
本発明の実施の形態では、Ｗｅｂサービスのプロトコルの例としてＷＳＤを挙げ、デバイス管理画面６００上からＷＩＡドライバ名を第１引数として指定してＴＷＡＩＮアプリケーション１４２を起動し、ＴＷＡＩＮアプリケーション１４２が、ＷＳＤのプロトコルを利用したＴＷＡＩＮドライバ１４１を介してＭＦＰ３、ＭＦＰ７７７、ＭＦＰ８８８を制御する例を挙げた。この例に限られることなく、例えばＩＨＶの独自プロトコル等の任意のプロトコルを用いて、デバイス管理画面６００上からＷＩＡドライバ名を第１引数として指定してＴＷＡＩＮアプリケーション１４２を起動し、ＴＷＡＩＮアプリケーション１４２が、そのプロトコルを利用したＴＷＡＩＮドライバ１４１を介してＭＦＰを制御するようにしてもよい。
【０１４０】
本発明の実施の形態では、デバイス管理画面６００上の画像の読み込み（ＴＷＡＩＮ）ボタン６１１が押下された時に、適切なデバイス（ドライバ）が設定された状態でＴＷＡＩＮアプリケーション１４２を起動する例を挙げた。この例に限られることなく、例えば、デバイス管理画面上から任意のアプリケーションを起動したり、Ｗｅｂサイトへリンクしたり、サービスを提供したりという場合に、適切なデバイス（ドライバ）名を指定して実行するというような、様々な機能に適用することができる。
【０１４１】
Windows 7のようなＯＳにおいて、ＵＳＢインタフェース１４を介して、同一モデルで異なる個体の複数のデバイスが１台のＰＣに接続されている場合、ＴＷＡＩＮドライバ名が同一となってしまう。これは、ＯＳが、ＵＳＢインタフェース１４に接続されている同一モデルのＴＷＡＩＮデバイスを識別して、それぞれのデバイスを特定するようなＴＷＡＩＮ  ＤＳ、すなわち、ＴＷＡＩＮドライバ名を生成できないからである。しかしながら、将来のＯＳにおいて、ＵＳＢインタフェース１４に接続されている同一モデルのＴＷＡＩＮデバイスを識別して、シリアル番号等を使ってそれぞれのデバイスを特定するようなＴＷＡＩＮドライバ名を生成できるように機能を追加することで、本発明をＵＳＢインタフェース１４のようなローカル接続のインタフェースにも応用することができる。
【０１４２】
本発明の実施形態では、ＴＷＡＩＮアプリケーション１４２において、前回起動時に使用されたデバイスがデフォルトデバイスとして保存されるように構成した。そして、デバイス管理画面６００上の画像の読み込み（ＴＷＡＩＮ）ボタン６１１が押下された時に、前回起動時に保存されたデフォルトデバイスではなく、デバイス管理画面６００に関連付けられている適切なデバイス（ドライバ）が設定された状態でＴＷＡＩＮアプリケーション１４２を起動するようにした。さらに、適切なデバイス（ドライバ）が見つからなかった場合は、前回起動時に保存されたデフォルトデバイスを参照し、そのデバイス（ドライバ）が設定された状態でＴＷＡＩＮアプリケーション１４２を起動する例を挙げた。デフォルトデバイスの保存（決定）手段に関しては、この例に限られることなく、例えば、ＴＷＡＩＮアプリケーション１４２にデフォルトデバイス設定画面を設けて、ＴＷＡＩＮアプリケーション１４２の起動時や終了時にはデフォルトデバイスを設定したり変更したりせずに、デフォルトデバイス設定画面でのみデフォルトデバイスを設定・変更できるようにしてもよい。
【０１４３】
本発明の各実施形態では、具体的には以下の効果を奏し得る。
【０１４４】
モデル名が同じで固有情報（シリアル番号など）が異なる複数の周辺装置が同一ネットワーク上に存在する場合を想定する。その際に、デバイス管理画面上からアプリケーション（ＴＷＡＩＮアプリケーション）を起動した時に、それら複数の周辺装置の中から、前回アプリケーションを起動した時に使用された周辺装置が関連付いた状態となっている。従って、適切な周辺装置（ＴＷＡＩＮドライバ）が選択され、アプリケーション（ＴＷＡＩＮアプリケーション）を起動することができ、ユーザの操作性に優れる。
【０１４５】
また、別の実施形態においては、ＴＷＡＩＮアプリケーションが、ＷＩＡドライバ名を表す変数を使って、Ｄｅｖｉｃｅ  Ｓｔａｇｅなどのデバイス管理画面上で選択されている周辺装置専用のＴＷＡＩＮドライバ名を自動生成する。よって、最適な周辺装置専用のＴＷＡＩＮドライバが選択された状態でＴＷＡＩＮアプリケーションを起動することができるので、ユーザの操作性に優れる。
【図１】
0005822442.tif 000002
【図２】
0005822442.tif 000003
【図３】
0005822442.tif 000004
【図４】
0005822442.tif 000005
【図５】
0005822442.tif 000006
【図６】
0005822442.tif 000007
【図７】
0005822442.tif 000008
【図８】
0005822442.tif 000009
【図９】
0005822442.tif 000010
【図１０】
0005822442.tif 000011
【図１１】
0005822442.tif 000012
【図１２】
0005822442.tif 000013
【図１３】
0005822442.tif 000014
【図１４】
0005822442.tif 000015
【図１５】
0005822442.tif 000016
【図１６】
0005822442.tif 000017
【図１７】
0005822442.tif 000018
【図１８】
0005822442.tif 000019
【図１９】
0005822442.tif 000020
【図２０】
0005822442.tif 000021
【図２１】
0005822442.tif 000022
【図２２】
0005822442.tif 000023