説明

情報処理装置、情報処理方法及びプログラム

【課題】複数の機能を提供する装置をPC等に接続する際に接続先が同一機種であればデバイスステージのデバイス詳細ページ上で前記装置の全ての機能へのリンクを使用可能にする技術を提供することを目的とする。
【解決手段】デバイスドライバ手段は、デバイスドライバ手段のインストールの際にオペレーティングシステム手段に既に登録されている登録済みデバイスドライバ手段を列挙する列挙手段と、列挙手段で列挙された登録済みデバイスドライバ手段に、デバイスドライバ手段のポートと一致するポートの登録済みデバイスドライバ手段が存在するか否かを判定する判定手段と、判定手段で、列挙手段で列挙された登録済みデバイスドライバ手段に、デバイスドライバ手段のポートと一致するポートの登録済みデバイスドライバ手段が存在すると判定された場合、登録済みデバイスドライバ手段のドライバの種類とドライバ名とを記憶装置に記憶する記憶手段と、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、PCに接続することができるデバイスは増加の一方である。従来、PCに接続することができるデバイスは、キーボードやマウス等の入力装置と、プリンタやディスプレイ等の出力装置とだけだった。しかし、USBメモリやSDカード等の外部記憶装置や、カメラやマイク、携帯電話等のデバイスまでPCに接続することができるようになっている。更に、LANやWAN等の広域のネットワークを通じても、UPnPやWSD(Web Service On Devices)、Bonjour等の技術で、デバイスがPCに接続することができるようになってきた。
このように多数のデバイスが接続されている環境で、PCに接続されているデバイスの一覧がツリー上に表示されているだけでは、ユーザは、実際にどのデバイスがどのように接続されているのかが簡単には分からなかった。特にオフィス環境におけるプリンタは、PCに複数台接続されていても全て同じアイコンで表示され、ユーザは、アイコンを見ただけではどのアイコンが出力先として選択したプリンタなのかが分からなかった。複数のUSBメモリを接続したときも、ユーザは、どのUSBメモリがどのドライブに割り当てられるのかが分からなかった。
このデバイスの接続形態が分かりにくい問題を回避するために、過去に様々な技術が提案されている。例えば、プリンタの現在の状態をPCに送信し、その状態によってアイコンを変更することで、紙切れやインク・トナー切れ等のエラー情報をわかりやすくした技術がある(特許文献1)。
【0003】
Windows(登録商標)7では、デバイスステージと呼ばれる新しいユーザインターフェースが追加された(非特許文献1)。デバイスステージは、PCに接続している全てのデバイスをアイコンで一覧表示する「デバイスとプリンタ」のギャラリービューと、それぞれのデバイスに特化したポータルサイトを表示するデバイス詳細ページとからなる。「デバイスとプリンタ」のギャラリービューでは、PCに接続されている全てのデバイスが、それぞれの形状や色を模したカスタムアイコンで表示され、ユーザにとって視認性が高い。また、デバイスステージにおいてユーザが、それぞれのアイコンをクリックするとデバイス詳細ページのポータルサイトが表示される。ポータルサイトではカスタムアイコンやデバイスのステータス情報、メーカーのロゴが表示され、タスクと呼ばれる様々なデバイス機能へのリンクが表示される。オンラインマニュアルやデバイスオプションの購入ページへのリンクだけでなく、プリンタの印刷設定やスキャナ画像の取り込み等、デバイスの機能や付属のアプリケーションやユーティリティへのリンクも存在する。
このような技術によって、PCに複数のデバイスが接続されているときに、アイコンが複雑化せずに、デバイスを特定でき、ユーザが機能を使用する際に迷わないようになっている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平8−278868号公報
【非特許文献】
【0005】
【非特許文献1】"online"、平成20年12月5日、[平成21年8月28日検索]、インターネット<http://www.microsoft.com/japan/whdc/device/DeviceExperience/MfpDevExp.mspx>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、Windows7のデバイスステージでは、一台で複数の機能を持つ複合機のときに、それぞれの機能ごとにデバイス詳細ページが作成されることがある。PCは、デバイスが接続され、プラグアンドプレイで自動認識するときは、デバイスの機能をグルーピングするIDにより、複数の機能を持つ複合機であっても一つのデバイスとして認識し、複合機の全ての機能へのリンクを持つデバイス詳細ページを1つ作成する。しかし、PCは、デバイスが接続された際に手動で接続先が指定され、デバイスドライバをインストールするときは、機能ごとにデバイス詳細ページを作成することがある。これはデバイス詳細ページがデバイスドライバに関連づけられて作成されるためである。つまり、スキャナとプリンタとFAXとでデバイスドライバが別になると、デバイス詳細ページがそれぞれ別々に作成される。更にプリンタ機能であっても、1台のデバイスでPDL(プリンタのページ記述言語)ごとにそれぞれドライバが異なると、更に複数のデバイス詳細ページが作成される。この状態になると、デバイス詳細ページのポータルサイト上からリンクされる機能が、スキャナドライバと連携する場合はスキャナ機能のみ、プリンタドライバと連携する場合はプリンタ機能のみの表示となってしまう。
【0007】
本発明は、複数の機能を提供する装置をPC等に接続する際に接続先が同一機種であればデバイスステージのデバイス詳細ページ上で前記装置の全ての機能へのリンクを使用可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
そこで、本発明の情報処理装置は、デバイスドライバ手段と、オペレーティングシステム手段と、を有し、前記デバイスドライバ手段は、前記デバイスドライバ手段のインストールの際に前記オペレーティングシステム手段に既に登録されている登録済みデバイスドライバ手段を列挙する列挙手段と、前記列挙手段で列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のポートと一致するポートの登録済みデバイスドライバ手段が存在するか否かを判定する判定手段と、前記判定手段で、前記列挙手段で列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のポートと一致するポートの登録済みデバイスドライバ手段が存在すると判定された場合、前記登録済みデバイスドライバ手段のドライバの種類とドライバ名とを記憶装置に記憶する記憶手段と、を有し、前記オペレーティングシステム手段は、デバイスステージに表示される、前記デバイスステージに関連付けられているデバイスドライバ手段のデバイスを表すカスタムオブジェクトから起動されるデバイス詳細ページに表示する、前記カスタムオブジェクトが表すデバイスが提供する機能へのリンクを表すタスクのリストを列挙するタスク列挙手段と、前記タスク列挙手段で列挙されたタスクに係るデバイスに、前記記憶手段で記憶装置に記憶されたドライバの種類と一致する種類のデバイスが存在する場合、前記カスタムオブジェクトが表すデバイスが提供する機能へのリンクを表すタスクを前記デバイス詳細ページに表示する表示手段と、を有する。
【発明の効果】
【0009】
本発明によれば、複数の機能を提供する装置をPC等に接続する際に接続先が同一機種であればデバイスステージのデバイス詳細ページ上で前記装置の全ての機能へのリンクを使用可能にする技術を提供することができる。
【図面の簡単な説明】
【0010】
【図1】クライアントの一例としてコンピュータを用いたシステム構成の一例を示す図である。
【図2】ネットワークの環境の一例を簡略的に示す図である。
【図3】デバイスステージのユーザインターフェースの一例を示す図である。
【図4】デバイスステージのユーザインターフェースの一例を示す図である。
【図5】PackageInfo.xmlの一例を示す図である。
【図6】DeviceInfo.xmlの一例を示す図である。
【図7】WindowsInfo.xmlの一例を示す図である。
【図8】Behavior.xmlの一例を示す図である。
【図9】Tasks.xmlの一例を示す図である。
【図10】デバイスドライバのインストールを説明するための図である。
【図11】実施形態1のデバイスドライバのインストール処理の一例を示すフローチャートである。
【図12】レジストリの設定値の構成の一例を示す図である。
【図13】デバイスステージにタスクを表示する処理の一例を示すフローチャートである。
【図14】Tasks.xmlに記載された1つのタスクを示す図である。
【図15】実施形態1のデバイスドライバのアンインストール処理の一例を示すフローチャートである。
【図16】実施形態2のデバイスドライバのインストール処理の一例を示すフローチャートである。
【図17】実施形態2のデバイスドライバのアンインストール処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について図面に基づいて説明する。
【0012】
図1は、クライアント(情報処理装置)の一例としてコンピュータを用いたシステム構成の一例を示す図である。尚、特に断らない限り、本実施形態の機能が実行されるのであれば、単体の装置であっても、複数の装置からなるシステムであっても、ネットワークを介して接続がなされ処理が行われるシステムであってもよい。
CPU101は、主記憶装置102のROM1021或いはRAM1022或いは補助記憶装置105に格納されたプログラムに従って装置全体の制御を行う。RAM1022は、CPU101が各種処理を行う際のワークエリアとしても使用される。補助記憶装置105は、オペレーティングシステム(OS)1054やアプリケーションソフト1051等を記録する。キーボード1031やマウス・タッチパネル等に代表されるポインティングデバイス1032等の入力機器は、入力I/F103を通じて、ユーザがコンピュータに対して各種指示を与えるためのデバイスである。出力I/F104は、データを外部に出力するためのインタフェースであり、モニタ1041やプリンタ1042等の出力機器に対してデータを出力する。コンピュータは、プリンタ1042と、直接接続されるローカルI/Oのみならず、通信I/F106を通じて接続されるネットワーク1061を通して接続されていてもよい。また、107は、共通データシステムバスで、上述したコンピュータの各構成要素間のデータのやりとりを行う。
CPU101が、プログラムに基づいて処理を実行することによって、後述するクライアントの機能及びクライアントによるフローチャートに係る処理が実現される。
【0013】
図2は、ネットワーク1061の環境の一例を簡略的に示す図である。印刷を行う文書や画像を作成するクライアント201/202が単体若しくは複数、ネットワークに接続されている。また、ネットワーク1061には、プリンタを管理するサーバーコンピュータ203が接続されていることもある。プリンタ204/205が単体若しくは複数ネットワークに接続されており、プリンタ205のように物理的に接続されていても実際には使用できないオフライン状態であることもある。ネットワークにはPAN、LAN、MAN、WAN等の小規模から大規模までのネットワークがあり、これらの機器が全てのネットワークに接続されている。クラウド等、サーバーやプリンタがインターネットを越えて接続されていてもよい。尚、PANとは、Personal Area Networkの略である。LANとは、Local Area Networkの略である。MANとは、Metropolitan Area Networkの略である。WANとは、Wide Area Networkの略である。
【0014】
図3及び図4は、デバイスステージのユーザインターフェースの一例を示す図である。図3に示されているユーザインターフェース(画面)は、クライアントに接続している全てのデバイスを一覧表示する「デバイスとプリンタ」のギャラリービューである。各デバイスは、大きなカスタムアイコンでデバイスの形状や色を模しており、ユーザへ視覚的に訴えることで、接続されているデバイスがより分かりやすくなっている。尚、カスタムアイコンは、カスタムオブジェクトの一例である。
クライアントにデバイスが接続されており、デバイスドライバ1053がインストールされていると、アイコンが表示される。デバイスドライバ1053は、デバイスをクライアントから制御するために必要なモジュールである。OS1054は、デバイスの種類ごとにデフォルトのアイコンを用意している。
デバイスドライバ1053にデバイスステージメタデータパッケージ1052が関連づけられていると、デバイスドライバ1053のインストール時にデバイスステージがクライアントにインストールされる。そして、個々のデバイスの形状にそったカスタムアイコンを表示することができるようになる。デバイスステージは、ポータルサイトの挙動を記載したXML等のメタデータとアイコンやビットマップ等のリソースとが1つの圧縮ファイルにパッケージングされている。これをデバイスステージメタデータパッケージ1052と呼ぶ。デバイスステージやデバイスステージメタデータパッケージ1052もデバイスドライバ1053と同様に、補助記憶装置105に保持される。
デバイスを動作させるのに必要なデバイスドライバ1053をインストールするときに、プラグアンドプレイIDと関連づけてデバイスステージメタデータパッケージ1052がインストールされる。したがって、1つのデバイスステージメタデータパッケージ1052には必ず1つのデバイスドライバ1053が関連づけられている。
【0015】
図4に示されているユーザインターフェース(画面)は、「デバイスとプリンタ」ギャラリービューのアイコンから起動される、デバイス詳細ページのポータルサイトである。ポータルサイトは大きく2つの領域に分類される。デバイス名401、デバイスの状態を表示するデバイスステータス402、メーカーのロゴ403、デバイスのカスタムアイコン404を表示するブランディングバー領域と、タスクへのリンク405領域と、である。タスクとは、ポータルサイトからリンクするデバイス機能のことで、オンラインマニュアルやデバイスオプションの購入ページへのリンクが主である。しかし、プリンタの印刷設定やスキャナ画像の取り込み等、デバイスの機能や付属のアプリケーション、ユーティリティへのリンクもタスクとして記述することができる。プリンタでは印刷に関するタスクしか存在しないが、複合機では印刷だけでなくFAXやスキャナに関するタスクもポータルサイトに同時に表示される。
【0016】
図5、6、7、8、9は、デバイスステージメタデータパッケージ1052に含まれる、デバイスステージを構成するためのXMLファイルの一例を示す図である。図5のPackageInfo.xmlには、デバイスステージメタデータパッケージがどのように構成されているかが記載されている、全体を管理しているXMLファイルである。より具体的に説明すると、PackageInfo.xmlには、デバイスドライバ1053と関連づけを行うためのハードウェアIDや、ロケール情報等が記載されている。PackageInfo.xmlの情報を基にOS1054は、パッケージに含まれるデータからデバイスステージの画面を構築する。
図6のDeviceInfo.xmlには、ターゲットとなるデバイスの情報が記載されている。より具体的に説明するとDeviceInfo.xmlには、デバイスの種別を表すカテゴリや、デバイスのモデル名やメーカー名等が記載されている。複合機の場合、DeviceInfo.xmlには、カテゴリにプリンタとFAXとスキャナとの3つに関する記載がある。
図7のWindowsInfo.xmlは、OS1054に対してデバイスステージの構成を知らせるためのファイルである。図8と図9とは、デバイスステージのデバイス詳細ページのポータルサイトを構成するための情報が記載されたファイルである。図8のBehavior.xmlには、デバイス詳細ページのブランディングバーのレイアウトがどのように構成されるかが記載されている。より具体的に説明するとBehavior.xmlには、デバイスステータス402として何を表示するか、メーカーのロゴ403やデバイスのカスタムアイコン404等のアイコンファイル名、どのようなタスクのリンク405があるのか等が記載されている。OS1054は、デバイスステージメタデータパッケージ内に含まれているファイル名を指定することで、パッケージ内のアイコンファイルを表示する。図9のTasks.xmlは、タスクのリンク405をクリックしたときにどのような挙動をするのかが記載されたファイルである。より具体的に説明すると、Tasks.xmlには、起動するプログラムの指定や、リンク先のURL等が記載されている。
これらの5種類のXMLファイルと、アイコンファイルやビットマップ等のリソースデータを、圧縮して1つのファイルにまとめたものがデバイスステージメタデータパッケージ1052となる。
【0017】
図10は、デバイスドライバのインストールを説明するための図である。OS1054に含まれるモジュールが、デバイスごとに提供されるデバイスドライバのインストールを行っている。まず、PCに接続されているデバイスの一覧を表示するデバイスマネージャ1001や、ハードウェアの追加ウィザード1002が、デバイスドライバ1053のインストールの処理を開始する。特にプリンタドライバをインストールする際は、ハードウェアの追加ウィザード1002のプリンタ版ともいえる専用のプリンタの追加ウィザードが処理を行う。尚、以下ではハードウェアの追加ウィザード1002を単に追加ウィザード1002という。
インストールでは、追加ウィザード1002は、まず対話形式のユーザインターフェースを表示する。そして追加ウィザード1002は、ユーザインターフェースを介してユーザにinfファイル(Device Setup Information File)1005、ドライバの種類・デバイスの機種名・接続先のポート名を選択させる。そして追加ウィザード1002は、選択された情報に基づき、インストール設定情報を作成する。
infファイル1005は、デバイスドライバのインストール方法が記載されたファイルで、機種名やプラグアンドプレイID、モジュール構成等が記載されている。インストール設定情報が作成されると、追加ウィザード1002が、OS1054のAPIであるSetupAPIやCfgMgrAPI1003を呼び出すことによって、インストール処理を開始する。ここで、APIとは、Application Programming Interfaceの略である。
【0018】
SetupAPIやCfgMgrAPI1003は、インストール設定情報に基づきデバイスドライバのinfファイル1005を取得する。SetupAPIやCfgMgrAPI1003は、infファイル1005をプラグアンドプレイマネージャ1004に渡して、プラグアンドプレイマネージャ1004が実際のデバイスドライバ1053のインストールを行う。プラグアンドプレイマネージャ1004は、infファイル1005から、インストール設定情報のデバイスの機種名を基にプラグアンドプレイIDを取得する。
この対話形式のユーザインターフェースに従ってデバイスドライバ1053をインストールする方法は手動(マニュアル)インストールと呼ばれる。
他の方法としてPCにデバイスを接続して自動的にデバイスドライバ1053のインストールを開始するプラグアンドプレイがある。プラグアンドプレイの場合、プラグアンドプレイマネージャ1004は、手動インストールとは逆にプラグアンドプレイIDから機種名を検索する。デバイスを接続すると、プラグアンドプレイマネージャ1004が、デバイスから会社名を表すMFGの文字列とデバイス名を表すMDLの文字列とを受け取ってプラグアンドプレイIDを作成する。作成されたプラグアンドプレイIDを基に、プラグアンドプレイマネージャ1004は、infファイル1005に記載された同一のプラグアンドプレイIDの機種名を探し出す。これがプラグアンドプレイによるデバイスドライバ1053のインストールである。
どちらかの方法でinfファイル1005を使って機種とプラグアンドプレイIDとが特定できた場合、プラグアンドプレイマネージャ1004は、関連するモジュール構成を読み出しドライバ1006のパッケージの中から関連するモジュールをインストールする。このとき、プラグアンドプレイマネージャ1004は、レジストリ1008に機種名とプラグアンドプレイIDとを記載する。
レジストリ1008は、OS1054の設定値を保存するデータベースであり、名前と型とデータとの3つの組で設定値を保存する。レジストリ1008には、OS1054を通じて、OS1054自身もデバイスドライバ1053からも設定値を読み書き可能である。
【0019】
以上のOS1054のデバイスドライバ1053のインストール動作から、機種1つにつき1つのデバイスドライバ1053がインストールされることになる。また、プラグアンドプレイIDは、デバイスに接続して開始するプラグアンドプレイ動作でなくても、infファイル1005から取得され、機種名と関連づけられることもできる。
プラグアンドプレイマネージャ1004は、デバイスドライバ1053のインストールが終了すると、次はデバイスステージのインストールを行う。プラグアンドプレイマネージャ1004は、デバイスステージのインストールデータとして、OS1054のDeviceMetadataStoreフォルダにあるデバイスステージメタデータパッケージ1007を使って行う。DeviceMetadataStoreフォルダの中には、既にOS1054が持つデバイスステージメタデータパッケージ1007が存在する。しかし、追加でデバイス特有のデバイスステージメタデータパッケージ1007をインストールすることもできる。追加には2つの方法がある。
1つは、インストーラやインターネットのサイトからのダウンロードを使用して、DeviceMetadataStoreフォルダにデバイスステージメタデータパッケージ1007をコピーする方法である。もう1つは、デバイスドライバのinfファイル1005にデバイスステージメタデータパッケージを構成ファイルの1つとして記載しておき、プラグアンドプレイマネージャ1004がデバイスドライバをインストールする際に、コピーしてもらう方法である。どちらの方法であっても、DeviceMetadataStoreフォルダにコピーされると、OS1054は、パッケージの圧縮を解凍し、DeviceMetadataフォルダにパッケージの中身のファイルを置く。このファイルは、デバイスステージメタデータキャッシュと呼ばれる。プラグアンドプレイマネージャ1004は、デバイスステージのインストールを行う際に、DeviceMetadataフォルダのデバイスステージメタデータキャッシュを見て、PackageInfo.xmlファイルを取得する。プラグアンドプレイマネージャ1004は、PackageInfo.xmlファイルの中に記載されているモデル名を取得して、現在インストールしているデバイスドライバの機種名と一致するかどうかを判定し、一致するデバイスステージをインストールする。一致するものがなければ、デバイスステージはインストールされず、OS1054が持つデフォルトのアイコンが表示されるのみである。
【0020】
<実施形態1>
次に図11と図13とのフローチャートを使用して、実施形態1について説明する。図11は、デバイスドライバ1053のインストール処理の一例を示すフローチャートである。
OS1054は、デバイスドライバ1053をインストールする際に、まずはデバイスドライバ1053のインストールイベント関数を呼び出す(S1201)。するとデバイスドライバ1053は、デバイスと接続するポート名をOS1054のAPIを呼び出して取得する(S1202)。次にデバイスドライバ1053は、接続しているデバイスから個体識別番号(シリアルナンバー)を取得する(S1203)。これはデバイスに対してコマンドを送付して、デバイスからの返答を受け取る形で取得する。
次にデバイスドライバ1053は、OS1054に既に登録されている同じ種類のデバイスドライバを列挙してリストに保存しておく(S1204)。ドライバの種類とは、現在インストールしようとしているデバイスドライバがプリンタドライバならプリンタ、スキャナドライバならスキャナ、FAXドライバならFAX等のカテゴリである。尚、次にデバイスドライバ1053は、OS1054に既に登録されているデバイスドライバ(登録済みデバイスドライバ)を列挙してリストに保存しておくようにしてもよい。
デバイスドライバ1053は、リストにドライバが存在する、つまり既にインストールされたデバイスドライバの中に種類が同一のものがあるか否かを判定する(S1205)。デバイスドライバ1053は、リストの先頭からデバイスドライバの名称を取得する(S1206)。デバイスドライバ1053は、取得したデバイスドライバの名称からデバイスに接続しているポート名と機種名とを取得する(S1207)。デバイスドライバ1053は、ポート名が現在インストールしようとしているデバイスドライバと同一(S1208)、かつ、機種名が同一か否かを判定する(S1209)。デバイスドライバ1053は、ドライバ名を取得したデバイスドライバのデバイスに個体識別番号を問い合わせる(S1210)。そして、デバイスドライバ1053は、個体識別番号も等しいことを確認する(S1211)。S1211の処理は、一致判定の処理の一例である。デバイスドライバ1053は、取得したデバイスドライバから種類を問い合わせる(S1212)。デバイスドライバ1053は、取得したデバイスドライバの種類と名称とをセットにしてレジストリ1008に保存しておく(S1213)。
【0021】
保存したレジストリ1008の設定値の構成の一例を示す図が図12である。レジストリ1008は、レジストリデータ1702とデータをまとめるレジストリフォルダ1701とからなる。デバイスドライバ1053は、レジストリフォルダ1701のデバイスドライバの中に、関連するドライバのデータを保存する。レジストリデータ1702は、名前と型とデータとの3つを1組として保存する。デバイスドライバ1053は、名前として取得したデバイスドライバ1053の種類を、型はデータが文字列であることを示すREG_SZを、データは取得したデバイスドライバの名称を1組ずつ記載する。
そして、デバイスドライバ1053は、取得したデバイスドライバのステータスをOS1054のAPIを使用してオフラインに変更する(S1214)。デバイスドライバ1053は、リストに列挙された次のデバイスドライバを見るために処理済みのデバイスドライバをリストから削除し(S1215)、同様の処理を種類が同一のデバイスドライバ全てに対して行う。終了した場合、デバイスドライバ1053は、通常のインストール処理に進み(S1216)、デバイスドライバのインストールを完了する。
【0022】
デバイスドライバのインストールが完了し、デバイスステージのインストールが終了すると、図13のデバイスステージにタスクを表示する処理の一例を示すフローチャートに進む。ユーザが「デバイスとプリンタ」ギャラリービューを開くと、OS1054は、デバイスステージのカスタムアイコンの表示のために、デバイスステージメタデータパッケージのファイルを取得する(S1301)。OS1054は、デバイスステージと関連づけられているデバイスドライバ1053のステータスを参照し、オフラインかどうかを判定する(S1302)。尚、デバイスステージと関連づけられているデバイスドライバが複数存在する場合、OS1054は、デバイスステージと関連づけられているデバイスドライバの数分、S1302の処理を行う。
S1302の判定の結果、オフラインであった場合は、OS1054は、デバイスステージのカスタムアイコンを非表示にして、「デバイスとプリンタ」ギャラリービューで表示しないようにする(S1310)。アイコンを表示する場合、OS1054は、デバイス詳細ページのポータルサイトを表示するための情報をBehavior.xmlとTasks.xmlとから取得する。その際、OS1054は、タスクへのリンク(タスク)についてはリストとして保持する(S1303)。つまり、OS1054は、タスクのリストを列挙する。S1303の処理は、タスク列挙の処理の一例である。
尚、S1302の判定において、OS1054は、オフライン、かつ、デバイスステージのWindowsInfo.xmlのShowDeviceInDisconnectedStateがfalseかどうかを判定するようにしてもよい。そして、OS1054は、オフライン、かつ、デバイスステージのWindowsInfo.xmlのShowDeviceInDisconnectedStateがfalseの場合、S1310へ進むようにしてもよい。
図14は、Tasks.xmlに記載された1つのタスクを示す図である。OS1054は、デバイス詳細ページのポータルサイト画面を構築するのだが、タスクだけはリストを使って処理する。OS1054は、タスクをリストから取り出し(S1305)、タスクにRequirements要素があるとき(S1306)は、記載されたレジストリ1008を見に行く。Requirements要素には、図11のフローチャートのS1213で保存されたレジストリ1008、つまり、デバイスドライバ1053がインストール中に記載した図12の位置が記載されている。これにより、OS1054は、デバイスドライバ1053が保存したレジストリ1008からドライバの種類を読みだすことができる。OS1054は、その種類の中にRequirements要素に記載されたものと同一のものがあれば(S1307)、タスクをデバイス詳細ページに表示して(S1308)、リストから削除する(S1309)。これを繰り返して、リストから全てのタスクの処理を終えたら(S1304)、デバイス詳細ページの表示が完成する。この処理により、デバイスドライバ1053が事前に作成したレジストリ1008を基に、デバイスステージの画面を構築するため、同一ポートに関連付けられた複合機の機能が、プラグアンドプレイに関係なくデバイスドライバ1053に応じて表示される。
【0023】
ユーザが「デバイスとプリンタ」ギャラリービューのアイコンを指定し、デバイスドライバ1053を削除する場合、図15のフローチャートに従ってデバイスドライバ1053は動作する。まずOS1054は、デバイスドライバ1053のアンインストールイベントの関数を呼び出す(S1401)。次にデバイスドライバ1053は、記載したレジストリ1008を全て削除する(S1402)。そして、通常のアンインストール処理が行われ(S1403)、デバイスドライバ1053が削除される。レジストリ1008がなくなっているので、デバイスステージを次に表示した際には、関連する機能のタスクが削除され、使えなくなる。このようにして、デバイスドライバ1053とタスクとの関連性が削除時でも保たれる。
本実施形態の処理はプリンタドライバだけでなく、スキャナドライバやFAXドライバ等全てのデバイスドライバ1053に適用することができる。また、ポート名だけでデバイスが判別することができる場合は、個体識別番号をデバイスに必ずしも問い合わせる必要はない。IPV6等のように機能ごとにIPアドレスが割り当てられてしまうときは、同一のポート名が存在しなくなってしまうので、デバイスドライバ1053は、個体識別番号を使ってデバイスを特定する。
【0024】
<実施形態2>
実施形態2として、OS1054が同一ポートのデバイスドライバを検索する処理を説明する。実施形態1ではデバイスドライバ1053が同一ポートのデバイスドライバを検索し、レジストリ1008を経由してデバイスステージに情報を渡す処理を説明した。本実施形態では、OS1054がこの処理行う一例を説明する。図9のTasks.xmlにあるように、各タスクは、Property要素を使って、OS1054が持つ、デバイスステージに関連付けられたデバイスドライバのインストール情報を参照することができる。OS1054は、関連付けられたデバイスドライバの一覧リストをGUIDと共に管理している。ここで、GUIDとは、Globally Unique Identifierの略である。このリストには、同時にプラグアンドプレイIDと機種名とも記載されている。このGUIDをProperty要素に記載することで、関連付けられたデバイスドライバによって、例えばOS1054は、タスクの表示を切り替えることができる。しかし、手動インストールでは関連付けられたデバイスドライバは1つしかないので、OS1054は、他のデバイスステージに関連づけられているデバイスドライバを検索して、追加する。この処理の一例を示したフローチャートが図16である。
OS1054は、デバイスドライバ1053のインストール時に、まずinfファイル1005からプラグアンドプレイIDと機種名とを取得する(S1501)。OS1054は、全てのデバイスステージを検索する。そして、OS1054は、過去にインストールしたデバイスドライバとGUIDとのリストの中に、現在インストールの対象としているデバイスドライバ1053と同一のプラグアンドプレイIDと機種名とがあるか否かを判定する(S1502)。つまり、OS1054は、過去にインストールしたデバイスドライバとGUIDとを列挙し、リストとし、リストの中に、現在インストールの対象としているデバイスドライバ1053と同一のプラグアンドプレイIDと機種名とがあるか否かを判定する。
同一のプラグアンドプレイIDと機種名とがあれば、OS1054は、過去にインストールしたデバイスステージに関連づけられているデバイスドライバのGUIDとして、現在インストールの対象としているデバイスドライバ1053を追加する(S1504)。尚、デバイスドライバのGUIDは、デバイスドライバの識別情報の一例である。S1504の処理は、関連付けの処理の一例である。
OS1054は、デバイスステージに表示される、前記デバイスステージに関連付けられたデバイスを表すカスタムアイコンを前記デバイスステージに表示する。この処理は、カスタムオブジェクト表示の処理の一例である。
また、OS1054は、前記カスタムアイコンから起動されるデバイス詳細ページに表示する、前記カスタムアイコンが表すデバイスが提供する機能へのリンクを表すタスクを前記デバイス詳細ページに表示する。この処理は、タスク表示の処理の一例である。
【0025】
デバイスドライバのアンインストール時には、OS1054が図17のフローチャートに従って処理を実行する。OS1054は、全てのデバイスステージを検索し、過去にインストールしたデバイスドライバとGUIDとのリストの中に、現在アンインストールするデバイスドライバと同一のプラグアンドプレイIDと機種名とがあるか否かを判定する(S1601)。同一のものがあれば、OS1054は、過去にインストールしたデバイスステージに関連づけられているデバイスドライバのGUIDから、アンインストールするデバイスドライバを削除する(S1602)。
このようにOS1054が検索することで、デバイスドライバ1053は、インストール・アンインストール時に特別な処理を行わなくても、機能に応じてデバイスステージのアイコンやタスクの表示を切り替えることができる。
【0026】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0027】
以上、上述した実施形態によれば、複数の機能を提供する装置をPC等に接続する際に接続先が同一機種であればデバイスステージのデバイス詳細ページ上で前記装置の全ての機能へのリンクを使用可能にする技術を提供することができる。
【0028】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0029】
1053 デバイスドライバ、1054 OS

【特許請求の範囲】
【請求項1】
デバイスドライバ手段と、
オペレーティングシステム手段と、
を有し、
前記デバイスドライバ手段は、
前記デバイスドライバ手段のインストールの際に前記オペレーティングシステム手段に既に登録されている登録済みデバイスドライバ手段を列挙する列挙手段と、
前記列挙手段で列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のポートと一致するポートの登録済みデバイスドライバ手段が存在するか否かを判定する判定手段と、
前記判定手段で、前記列挙手段で列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のポートと一致するポートの登録済みデバイスドライバ手段が存在すると判定された場合、前記登録済みデバイスドライバ手段のドライバの種類とドライバ名とを記憶装置に記憶する記憶手段と、
を有し、
前記オペレーティングシステム手段は、
デバイスステージに表示される、前記デバイスステージに関連付けられているデバイスドライバ手段のデバイスを表すカスタムオブジェクトから起動されるデバイス詳細ページに表示する、前記カスタムオブジェクトが表すデバイスが提供する機能へのリンクを表すタスクのリストを列挙するタスク列挙手段と、
前記タスク列挙手段で列挙されたタスクに係るデバイスに、前記記憶手段で記憶装置に記憶されたドライバの種類と一致する種類のデバイスが存在する場合、前記カスタムオブジェクトが表すデバイスが提供する機能へのリンクを表すタスクを前記デバイス詳細ページに表示する表示手段と、
を有する、情報処理装置。
【請求項2】
前記デバイスドライバ手段は、
前記記憶手段で記憶装置にドライバの種類とドライバ名とを記憶したデバイスドライバのステータスをオフラインに変更する変更手段を更に有し、
前記オペレーティングシステム手段は、
前記デバイスステージを表示する際に、前記デバイスステージと関連付けられているデバイスドライバ手段のステータスがオフラインの場合、前記デバイスドライバ手段のデバイスを表すカスタムオブジェクトを非表示にする非表示手段を更に有し、
前記タスク列挙手段は、前記デバイスステージと関連付けられているデバイスドライバ手段のステータスがオフラインでない場合、デバイスステージに表示されているデバイスを表すカスタムオブジェクトから起動されるデバイス詳細ページに表示する、前記カスタムオブジェクトが表すデバイスが提供する機能へのリンクを表すタスクのリストを列挙する、請求項1記載の情報処理装置。
【請求項3】
前記デバイスドライバ手段は、前記デバイスドライバ手段のアンインストールの際に、前記記憶手段で記憶装置に記憶したドライバの種類とドライバ名とを前記記憶装置から削除する削除手段を更に有する、請求項1又は2記載の情報処理装置。
【請求項4】
前記判定手段で、前記列挙手段で列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のポートと一致するポートの登録済みデバイスドライバ手段が存在しないと判定された場合、前記列挙手段で列挙された登録済みデバイスドライバ手段のデバイスのうち、前記デバイスドライバ手段のデバイスと一致する機種名のデバイスから個体識別番号を取得し、取得した個体識別番号が前記デバイスドライバ手段のデバイスの個体識別番号と一致するか否かを判定する一致判定手段を更に有し、
前記記憶手段は、前記一致判定手段で、前記取得した個体識別番号が前記デバイスドライバ手段のデバイスの個体識別番号と一致すると判定された場合、前記デバイスドライバ手段のデバイスと個体識別番号が一致したデバイスの登録済みデバイスドライバ手段のドライバの種類とドライバ名とを記憶装置に記憶する、請求項1乃至3何れか1項記載の情報処理装置。
【請求項5】
オペレーティングシステム手段を有し、
前記オペレーティングシステム手段は、
デバイスドライバ手段のインストールの際に前記オペレーティングシステム手段に既に登録されている登録済みデバイスドライバ手段を列挙する列挙手段と、
前記列挙手段で列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のデバイスの機種名とプラグアンドプレイIDと一致する機種名とプラグアンドプレイIDとの登録済みデバイスドライバ手段が存在するか否かを判定する判定手段と、
前記判定手段で、前記列挙手段で列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のデバイスの機種名とプラグアンドプレイIDと一致する機種名とプラグアンドプレイIDとの登録済みデバイスドライバ手段が存在すると判定された場合、前記登録済みデバイスドライバ手段と関連付けられている登録済みのデバイスステージに前記デバイスドライバ手段の識別情報を更に関連付ける関連付け手段と、
を有する、情報処理装置。
【請求項6】
前記オペレーティングシステム手段は、
デバイスステージに表示される、前記デバイスステージに関連付けられているデバイスを表すカスタムオブジェクトを前記デバイスステージに表示するカスタムオブジェクト表示手段と、
前記カスタムオブジェクトから起動されるデバイス詳細ページに表示する、前記カスタムオブジェクトが表すデバイスが提供する機能へのリンクを表すタスクを前記デバイス詳細ページに表示するタスク表示手段と、
を更に有する、請求項5記載の情報処理装置。
【請求項7】
前記オペレーティングシステム手段は、前記デバイスドライバ手段のアンインストールの際に、前記関連付け手段で前記登録済みのデバイスステージと関連付けられた前記デバイスドライバ手段の識別情報を削除する削除手段を更に有する、請求項5又は6記載の情報処理装置。
【請求項8】
デバイスドライバ手段と、オペレーティングシステム手段と、を有する情報処理装置における情報処理方法であって、
前記デバイスドライバ手段が、前記デバイスドライバ手段のインストールの際に前記オペレーティングシステム手段に既に登録されている登録済みデバイスドライバ手段を列挙する列挙ステップと、
前記デバイスドライバ手段が、前記列挙ステップで列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のポートと一致するポートの登録済みデバイスドライバ手段が存在するか否かを判定する判定ステップと、
前記デバイスドライバ手段が、前記判定ステップで、前記列挙ステップで列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のポートと一致するポートの登録済みデバイスドライバ手段が存在すると判定された場合、前記登録済みデバイスドライバ手段のドライバの種類とドライバ名とを記憶装置に記憶する記憶ステップと、
を有し、
前記オペレーティングシステム手段が、デバイスステージに表示される、前記デバイスステージに関連付けられているデバイスドライバ手段のデバイスを表すカスタムオブジェクトから起動されるデバイス詳細ページに表示する、前記カスタムオブジェクトが表すデバイスが提供する機能へのリンクを表すタスクのリストを列挙するタスク列挙ステップと、
前記オペレーティングシステム手段が、前記タスク列挙ステップで列挙されたタスクに係るデバイスに、前記記憶ステップで記憶装置に記憶されたドライバの種類と一致する種類のデバイスが存在する場合、前記カスタムオブジェクトが表すデバイスが提供する機能へのリンクを表すタスクを前記デバイス詳細ページに表示する表示ステップと、
を有する、情報処理方法。
【請求項9】
オペレーティングシステム手段を有する情報処理装置における情報処理方法であって、
前記オペレーティングシステム手段が、デバイスドライバ手段のインストールの際に前記オペレーティングシステム手段に既に登録されている登録済みデバイスドライバ手段を列挙する列挙ステップと、
前記オペレーティングシステム手段が、前記列挙ステップで列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のデバイスの機種名とプラグアンドプレイIDと一致する機種名とプラグアンドプレイIDとの登録済みデバイスドライバ手段が存在するか否かを判定する判定ステップと、
前記オペレーティングシステム手段が、前記判定ステップで、前記列挙ステップで列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のデバイスの機種名とプラグアンドプレイIDと一致する機種名とプラグアンドプレイIDとの登録済みデバイスドライバ手段が存在すると判定された場合、前記登録済みデバイスドライバ手段と関連付けられている登録済みのデバイスステージに前記デバイスドライバ手段の識別情報を更に関連付ける関連付けステップと、
を有する、情報処理方法。
【請求項10】
コンピュータを、
デバイスドライバ手段と、
オペレーティングシステム手段と、
して機能させるプログラムであって、
前記デバイスドライバ手段は、
前記デバイスドライバ手段のインストールの際に前記オペレーティングシステム手段に既に登録されている登録済みデバイスドライバ手段を列挙する列挙手段と、
前記列挙手段で列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のポートと一致するポートの登録済みデバイスドライバ手段が存在するか否かを判定する判定手段と、
前記判定手段で、前記列挙手段で列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のポートと一致するポートの登録済みデバイスドライバ手段が存在すると判定された場合、前記登録済みデバイスドライバ手段のドライバの種類とドライバ名とを記憶装置に記憶する記憶手段と、
を有し、
前記オペレーティングシステム手段は、
デバイスステージに表示される、前記デバイスステージに関連付けられているデバイスドライバ手段のデバイスを表すカスタムオブジェクトから起動されるデバイス詳細ページに表示する、前記カスタムオブジェクトが表すデバイスが提供する機能へのリンクを表すタスクのリストを列挙するタスク列挙手段と、
前記タスク列挙手段で列挙されたタスクに係るデバイスに、前記記憶手段で記憶装置に記憶されたドライバの種類と一致する種類のデバイスが存在する場合、前記カスタムオブジェクトが表すデバイスが提供する機能へのリンクを表すタスクを前記デバイス詳細ページに表示する表示手段と、
を有する、プログラム。
【請求項11】
コンピュータを、オペレーティングシステム手段として機能させるプログラムであって、
前記オペレーティングシステム手段は、
デバイスドライバ手段のインストールの際に前記オペレーティングシステム手段に既に登録されている登録済みデバイスドライバ手段を列挙する列挙手段と、
前記列挙手段で列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のデバイスの機種名とプラグアンドプレイIDと一致する機種名とプラグアンドプレイIDとの登録済みデバイスドライバ手段が存在するか否かを判定する判定手段と、
前記判定手段で、前記列挙手段で列挙された登録済みデバイスドライバ手段に、前記デバイスドライバ手段のデバイスの機種名とプラグアンドプレイIDと一致する機種名とプラグアンドプレイIDとの登録済みデバイスドライバ手段が存在すると判定された場合、前記登録済みデバイスドライバ手段と関連付けられている登録済みのデバイスステージに前記デバイスドライバ手段の識別情報を更に関連付ける関連付け手段と、
を有する、プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate