(57)【特許請求の範囲】
【請求項１】
外部に接続されたデバイスをアプリケーションを用いて動作させることが可能な情報処理装置において、
デバイスの種類に関する情報とアプリケーションの関連付け情報において前記情報処理装置に接続されたデバイスの種類に対応するアプリケーションを、当該デバイスを動作させるアプリケーションとして登録する登録手段と、
前記関連付け情報を更新する更新手段と、
を備え、
前記更新手段は、前記デバイスに対応するデバイスドライバに係らず、前記関連付け情報を更新することが可能であることを特徴とする情報処理装置。
【請求項２】
前記登録手段は、前記デバイスの接続が検知された際に、前記登録を行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記デバイスの種類に関する情報に基づいて、前記アプリケーションが前記デバイスを動作させるためのデバイスドライバをインストールするインストール手段を有することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記デバイスドライバを格納するドライバストアを更に備え、前記インストール手段は、前記デバイスの接続が検知された際に、前記デバイスの種類に関する情報に基づいて、前記ドライバストアから前記デバイスドライバを読み出してインストールすることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記登録手段のためのソフトウェアは、前記情報処理装置のＯＳとは別に前記情報処理装置にインストールされていることを特徴とする請求項１ないし４のいずれか１項に記載の情報処理装置。
【請求項６】
前記登録手段のためのソフトウェアは、前記情報処理装置のＯＳと共に当該ＯＳに組み込まれるように前記情報処理装置にインストールされていることを特徴とする請求項１ないし４のいずれか１項に記載の情報処理装置。
【請求項７】
前記デバイスが接続された状態において前記デバイスでイベントが発生した場合、前記アプリケーションを用いて前記デバイスを動作させることを特徴とする請求項１ないし６のいずれか１項に記載の情報処理装置。  
【請求項８】
前記デバイスは、画像をスキャンするための画像読取装置であることを特徴とする請求項１ないし７のいずれか１項に記載の情報処理装置。
【請求項９】
外部に接続されたデバイスをアプリケーションを用いて動作させることが可能な情報処理装置の情報処理方法であって、
デバイスの種類に関する情報とアプリケーションの関連付け情報において前記情報処理装置に接続されたデバイスの種類に対応するアプリケーションを、当該デバイスを動作させるアプリケーションとして登録するための登録工程と、
前記関連付け情報を更新する更新工程と、
を有し、
前記更新工程では、前記デバイスに対応するデバイスドライバに係らず、前記関連付け情報を更新することが可能であることを特徴とする情報処理方法。
【請求項１０】
請求項９に記載の情報処理方法を実行するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部に接続されたデバイスで発生したイベントに応じてアプリケーションプログラムを動作させる環境において、当該イベントとアプリケーションプログラムの対応づけを行うための情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
ＰＣなどの情報処理装置と画像読取装置のようなデバイスとを接続して構成される情報処理システムでは、デバイスを動作させるためのデバイスドライバとデバイスから得た情報を処理するためのアプリケーションプログラムの関連づけが必要となる。特に、画像読取装置の操作ボタンより発信されたイベントに従って適切なアプリケーションが起動され、画像データを取得する所謂擬似プッシュスキャンがある。このプッシュスキャンを行う場合、当該プッシュスキャンで用いられるアプリケーションがＯＳ上のデバイス管理レジストリにアプリケーション情報として登録されていることがある。
【０００３】
特許文献１には、デバイスドライバのインストール時に、当該デバイスドライバのドライバ情報に基づいてアプリケーションの登録を行うことが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１３８０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のように、デバイスドライバのインストール時にデバイスドライバの情報に基づいてアプリケーションの登録を行う構成では、デバイスドライバに対してアプリケーションが一意に決められてしまう場合がある。そのため、新たなバージョンのアプリケーションがリリースされた際、従前のデバイスドライバと新たなアプリケーションの対応付けができないことがある。するとデバイスドライバも新たにリリースする必要が生じることがある。この際、例えば上記のデバイスドライバが将来の機種も含む複数機種のデバイスに共通するデバイスドライバであった場合でも、新たなアプリケーションと対応付けるために、新たなデバイスドライバをリリースしなくてはならないことがある。そのため、将来の機種も考慮してデバイスドライバが作られているにも関わらず、そのメリットを発揮することができない。
【０００６】
本発明は、上記問題点を解決するために成されたものである。よってその目的とするところは、デバイスを動作させるアプリケーションの登録を容易に行うことが可能な情報処理装置を提供することである。
【課題を解決するための手段】
【０００７】
そのために本発明は、外部に接続されたデバイスをアプリケーションを用いて動作させることが可能な情報処理装置において、デバイスの種類に関する情報とアプリケーションの関連付け情報において前記情報処理装置に接続されたデバイスの種類に対応するアプリケーションを、当該デバイスを動作させるアプリケーションとして登録する登録手段と、前記関連付け情報を更新する更新手段と、を備え、前記更新手段は、前記デバイスに対応するデバイスドライバに係らず、前記関連付け情報を更新することが可能であることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、デバイスを動作させるアプリケーションの登録を容易に行うことができる。
【図面の簡単な説明】
【０００９】
【図１】デバイスとして使用可能な画像読取装置の制御構成を示すブロック図である。
【図２】情報処理装置における制御の構成を示すブロック図である。
【図３】画像読取装置の制御に関わる情報処理装置のソフトウェア構成図である。
【図４】ＯＳによる情報の管理状態を説明するための模式図である。
【図５】疑似プッシュスキャンが発生した場合の工程を示すフローチャートである。
【図６】情報処理装置出荷時のソフトウェアインストール処理のフローチャートである。
【図７】デバイスＩＤとアプリケーションの関連づけるテーブル例を示す図である。
【図８】実施例１においてＰｎＰが発生した際の工程を説明するフローチャートである。
【図９】デバイス管理レジストリにおけるデバイス情報の管理状態を示す図である。
【図１０】デバイス管理レジストリにアプリケーション情報が登録された状態図である。
【図１１】ソフトウェアのインストール処理工程を説明するためのフローチャートである。
【図１２】アプリケーション情報が登録されたデバイス管理レジストリを示す図である。
【図１３】実施例２においてＰｎＰが発生した際の工程を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１１】
（実施例１）
図１は、本発明のデバイスとして使用可能な画像読取装置１００の制御の構成を示すブロック図である。本実施例において、画像読取装置１００は、プリンタ機能、スキャナ機能を備えており、ネットワークを経由してそれぞれの機能サービスを提供することができる。
【００１２】
プリンタ部１０１は、画像読取装置１００におけるプリンタ機能を実現し、外部から受信したプリントデータなどを、インクジェット方式や電子写真方式などによって印刷用紙にプリントする。スキャナ部１０２は、画像読取装置１００におけるスキャナ機能を実現し、原稿台にセットされた原稿を光学式に読み取って電子データに変換し、指定されたファイル形式に変換してネットワーク経由で外部装置に送信する。
【００１３】
中央演算装置（ＣＰＵ）１０５は、画像読み取り装置１００全体を制御する。中央演算装置１０５は、ＲＯＭなどのプログラムメモリ１０６に格納されているプログラムを読み出し、これに従って各種処理を実行する。この際ＲＡＭなどのワークメモリ１０７は、バッファリングなどのワーキングエリアとして使用される。
【００１４】
操作部１０９は、情報をユーザに提供したり、ユーザからの指示を受信したりするためのユーザインタフェースである。擬似プッシュスキャンを行う場合、ユーザは操作部１０９より指示入力する。
【００１５】
ネットワーク通信部１１０は、中央演算装置１０５の指示の下、ネットワーク接続部１１１を介してネットワーク通信を行う。ネットワーク通信部１１０は、有線ＬＡＮと無線ＬＡＮの少なくともいずれかに対応する。有線ＬＡＮに対応する場合、ネットワーク接続部１１１は、有線ＬＡＮのケーブルを画像読取装置１００に接続するためのコネクタとなる。無線ＬＡＮに対応する場合、ネットワーク接続部１１１はアンテナとなる。フラッシュメモリ１１２は、ネットワーク通信部１１０が受信したパケットの送信元情報を格納する。以上説明した各機能部は信号線１１３により接続されている。
【００１６】
図２は、本発明に使用可能な情報処理装置２００における制御の構成を示すブロック図である。
【００１７】
ＣＰＵ２０１は、情報処理装置２００全体を制御する。アプリケーションプログラムやＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）などは、ディスク装置２０２にインストールされ、ＣＰＵ２０１はディスク装置２０２にインストールされたアプリケーションやＯＳを読み出して各種処理を実行する。外部ディスク読取装置２０３は、ＣＤ−ＲＯＭのような外部に接続された記録媒体の内容を読み出し、ＣＰＵ２０１に提供する。メモリ２０４はＲＡＭなどで構成され、ＣＰＵ２０１が必要に応じてデータを一時的に格納したり、バッファリングを行ったりするために利用する。以下、図５、６、８、１１および１３で説明するフローチャートは、ディスク装置２０２にインストールされているＯＳ環境下において、ＣＰＵ２０１がメモリ２０４を利用しながら実行するものである。なお、ディスク装置には各種ファイルなども格納されている。
【００１８】
更にＣＰＵ２０１は、ＬＣＤなどの表示部２０５を介してユーザに情報を提供するとともに、キーボードやマウスのような操作部２０６を介してユーザからの指示を受けつける。
【００１９】
ネットワーク通信部２０７は、ＣＰＵ２０１の指示の下、ネットワーク接続部２０８を介してネットワーク通信を行う。図１で説明した画像読取装置１００と同様、ネットワーク通信部２０７は、有線ＬＡＮと無線ＬＡＮの少なくともいずれかに対応する。ＵＳＢ通信部２１０は、ＣＰＵ２０１の指示の下、コネクタなどのＵＳＢ接続部２１１を介してＵＳＢ通信を行う。以上説明した各機能部は信号線２０９により接続されている。
【００２０】
図３は、情報処理装置２００における、画像読取装置１００の制御に関わるソフトウェア構成を説明するためのブロック図である。本実施例のアプリケーションソフトウェア３０１は、画像読取装置１００に読取動作を行わせたり読み取った画像を表示させたりする際にユーザによって直接利用されるソフトウェアである。ユーザは、アプリケーションソフトウェア３０１を介して、画像読取装置１００におけるスキャン方法、カラー設定、解像度設定等を指定し、画像の読取動作開始を指示することが出来る。アプリケーションソフトウェア３０１は、ＴＷＡＩＮやＷＩＡ（ＭｉｃｒｏｓｏｆｔがＷｉｎｄｏｗｓＭｅ以降に採用しているＯＳ標準の画像入力ＡＰＩ）、ベンダー独自の規格に基づくアプリケーションプログラミングインターフェース（ＡＰＩ）を使用している。アプリケーションソフトウェア３０１を介してのユーザからの設定や指示は、ドライバソフト３０２に提供される。アプリケーションソフトウェア３０１は、画像読取装置１００の操作部１０９の機能の設定や各種フォーマットでファイルを保存する機能も有している。
【００２１】
ドライバソフト３０２は、アプリケーションソフトウェア３０１から受け取った指示や設定に基づいてデバイスドライバを起動させたり、画像読取装置１００から取得した画像をアプリケーションソフトウェア３０１に提供したりする。ドライバソフト３０２は、独自のＧＵＩ（グラフィック・ユーザ・インタフェース）を有しており、ユーザはＧＵＩを介して様々な設定を行うことが出来るようになっている。具体的には、例えば、プレビュー画像に対するクロップエリアの指定、解像度の設定、読み取りモード（２値、８ビット多値、２４ビット多値等）の設定、ガンマ補正等の色調整の設定等を行うことが出来る。
【００２２】
デバイスドライバ３０３は、画像読取装置１００に搭載されたファームウェアを制御するための制御コマンドを画像読取装置１００に送り、画像を取得する。ファームウェアが搭載されていない画像読取装置の場合は、画像読取装置１００の各モジュールの制御レジスタにアクセスする。そして、シェーディング制御、解像度やクロップ範囲に応じたモータスピードの設定、ドライバソフト３０２から受け取ったガンマ補正データの提供等を行い、画像読取装置１００が読み取り動作を行う際のフロー制御を行う。
【００２３】
ポートドライバ３０４は、パラレル、ＵＳＢ、ＩＥＥＥ１３９４、ＳＣＳＩ、ＬＡＮ、Ｗｉｒｅｌｅｓｓ  ＬＡＮ等のインタフェースに応じて画像読取装置１００との通信制御を行う。
【００２４】
オペレーティングシステム３０５は、情報処理装置２００のオペレーティングシステム（ＯＳ）であり、例えばＷｉｎｄｏｗｓ（登録商標）とすることが出来る。イベント検知サービス３０６は、ＯＳ３０５のバックグラウンドで動作することにより、ユーザとのやり取り無しで特定のサービスを提供するソフトウェアである。イベント検知サービス３０６の詳細については後述する。ボタンモニタ３０７は、例えば擬似プッシュスキャンの際に、画像読取装置１００で発生したイベント情報を受け取り、適切なアプリケーションに画像読取装置１００のデバイスＩＤとイベント情報を送信するプログラムである。
【００２５】
図４は、本発明に特徴的な情報のＯＳ３０５による管理状態を説明するための模式図である。ドライバストア４００は、デバイスドライバ３０３を一時的に格納する領域である。ＯＳ３０５を出荷する時にドライバストア４００にデバイスドライバ３０３を格納しておくことにより、情報処理装置２００に画像読取装置１００を接続した時に、ドライバストア４００から適切なデバイスドライバを読み出し、インストールすることができる。すなわち、デバイスドライバのためのインストーラを別途用意することなく、デバイスドライバ３０３をインストールすることができる。また、ＯＳ３０５を出荷する時だけでなく、情報処理装置にデバイスドライバをＯＳとともにインストールする場合についても、上記と同様の仕組みを提供することができる。
【００２６】
ＰｎＰ検知プログラム登録領域４０１は、プラグ・アンド・プレイ（ＰｎＰ）が発生した時に実行するプログラムが登録されている領域である。基本的には、ＯＳが所持するドライバインストーラが格納されており、ＰｎＰ発生時に当該ドライバインストーラが起動される。ドライバインストーラは、ＰｎＰが発生した画像読取装置１００のデバイスＩＤに基づいて、ドライバストア４００に格納されている１つ以上のデバイスドライバの中から適応する１つを探索し、これをインストールする。
【００２７】
ＰｎＰ検知プログラム登録領域４０１には、ＯＳが用意したＡＰＩ（ＲｅｇｉｓｔｅｒＤｅｖｉｃｅＮｏｔｉｆｉｃａｔｉｏｎ）を利用することにより、他のアプリケーションを登録することもできる。本実施例ではＵＳＢなどのＰｎＰを一例として取り上げるが、デバイスの接続をＯＳが検知する方法であれば、どの様な方式であっても対応可能である。また、ネットワーク接続で発生するＵｎｉｖｅｒｓａｌ  Ｐｌｕｇ  Ａｎｄ  Ｐｌａｙ（ＵＰｎＰ）や、近距離無線通信（ＮＦＣ，Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）を利用したペアリング操作による方式であっても同様に実施可能である。
【００２８】
デバイス管理レジストリ４０２は、デバイスドライバがインストールされたデバイス（画像読取装置１００）を管理するための情報が格納される領域である。デバイスドライバがインストールされると、デバイスドライバが動作するのに必要な情報や、アプリケーションがデバイスドライバを使用するときに必要な情報がデバイス管理レジストリに格納されている。
【００２９】
図５は、疑似プッシュスキャンが発生した際における、画像読取装置１００の中央演算装置１０５および情報処理装置２００のＣＰＵ２０１が実行する工程を説明するためのフローチャートである。
【００３０】
ユーザが画像読取装置１００の操作部１０９を介して疑似プッシュスキャンコマンドを発信させることにより、本処理は開始される。本処理が開始されると、画像読取装置１００の中央演算装置１０５は、指示された情報と画像読取装置１００のデバイスＩＤとを、接続されている情報処理装置２００にイベント情報として発信する（Ｓ５０１）。
【００３１】
イベント情報を受信した情報処理装置２００のＣＰＵ２０１は、デバイス管理レジストリ４０２に登録されているアプリケーションの中から、受信したデバイスＩＤに対応するアプリケーションを、ボタンモニタ３０７に捜索させる（Ｓ５０２）。その後、Ｓ５０３において、デバイスＩＤに対応するアプリケーションが見つかったか否かを判断する。デバイスＩＤに対応するアプリケーションが見つからないと判断した場合、本処理は終了する。
【００３２】
一方、デバイスＩＤに対応するアプリケーションが見つかったと判断した場合、Ｓ５０４に進み、アプリケーションの引数にデバイスＩＤとイベント情報を付加して当該アプリケーションを起動する。そして、Ｓ５０５にて、受信したイベント情報とデバイスＩＤに従って画像読取装置１００に読み取り動作を実行させる。以上で本処理が終了する。
【００３３】
このように、疑似プッシュスキャンでは、画像読取装置１００の操作部１０９からのユーザ入力に伴って、情報処理装置２００にインストールされ画像読取装置に関連付けられたアプリケーションが起動し、所定の読取処理が行われるようになっている。読取動作終了後、アプリケーションは、受け取った画像を保存するだけでなく、保存した画像に対し処理を施したり送信したりすることが出来る。具体的には、取得した画像に対してＯＣＲ処理を行ったり、ソーシャル・ネットワーキング・サービス（ＳＮＳ）やクラウドストレージサービスなどの外部Ｗｅｂサービスに画像をアップロードしたりすることができる。
【００３４】
図６は、情報処理装置２００の出荷時における、ソフトウェアのインストール処理の工程を説明するためのフローチャートである。本処理は、作業者がインストーラの起動を指示することによって開始され、情報処理装置２００のＣＰＵ２０１がインストーラに従って実行する。
【００３５】
本処理が開始されると、ＣＰＵ２０１は、Ｓ６０１において、デバイスドライバをドライバストアに格納する。続くＳ６０２において、ＣＰＵ２０１は、アプリケーションソフトウェアをインストールする。
【００３６】
Ｓ６０３において、ＣＰＵ２０１は、イベント検知サービス３０６がインストールされているか否かを判断する。インストールされていると判断された場合は、Ｓ６０６へジャンプする。一方、インストールされていないと判断された場合は、Ｓ６０４に進み、イベント検知サービスをインストールする。
【００３７】
続くＳ６０５にて、ＣＰＵ２０１は、ＰｎＰイベントが発生した際にＳ６０４でインストールされたイベント検知サービスが呼び出されるように、ＯＳに登録する。このような登録は、例えば、ＲｅｇｉｓｔｅｒＤｅｖｉｃｅＮｏｔｉｆｉｃａｔｉｏｎというＡＰＩを使用すること実現することができる。イベント検知サービス３０６のインストールおよびＯＳへの登録により、以降ＯＳ３０５が起動される際にはイベント検知サービス３０６も起動されるようになる。また、ＯＳが起動している間にＰｎＰイベントが発生すると、ＰｎＰイベントが発生した旨がイベント検知サービスに通知されるようになる。
【００３８】
Ｓ６０６において、ＣＰＵ２０１は、画像読取装置１００の種類を認識するためのデバイスＩＤとアプリケーションを関連付ける情報を、Ｓ６０４でインストールされたイベント検知サービスに登録する。
【００３９】
図７は、イベント検知サービスにおいて、デバイスＩＤとアプリケーションを関連づけるためのテーブル例を示す図である。複数のデバイスのそれぞれに対し、固有のデバイスＩＤと対応可能なアプリケーションが、ペアとして登録されている。Ｓ６０６では、図７に示すテーブルが登録され、デバイスが接続されてＰｎＰイベントが発生した際には、図７において当該デバイスのデバイスＩＤに対応するアプリケーションがデバイス管理レジストリ４０２に登録される。なお、この登録処理については図８を用いて後述する。
【００４０】
従って、図７に示したテーブルにおいてアプリケーションを更新することで、ＰｎＰが発生したときにデバイス管理レジストリ４０２に登録されるアプリケーションを更新することができる。即ち、図７のテーブルの更新により、疑似プッシュスキャンにおいて起動するアプリケーションとして、新たなアプリケーションを登録することができる。
【００４１】
なお、図７では、デバイスの機種とアプリケーションをペアとして登録する状態を示したが、デバイスに対応可能な要件を満たすアプリケーションが複数存在するような場合には、当該要件に基づいて関連付けを行うこともできる。この場合、Ｓ６０６では、デバイスドライバ側にデバイスが対応可能なアプリケーションの要件を記載すれば良い。後に、デバイス管理レジストリにアプリケーションを登録する場合には、デバイスドライバに問い合わせることによって関連付けを確認することが出来る。
【００４２】
Ｓ６０７にてイベント検知サービスの登録が完了すると本処理は終了する。本処理が実行されている間、画像読取装置１００と情報処理装置２００とは、接続されている必要は無い。デバイスドライバがプリインストールされた情報処理装置を出荷する場合は、この状態で出荷することになる。
【００４３】
図８は、図６の処理が施された情報処理装置２００でＰｎＰが発生した際、画像読取装置１００の中央演算装置１０５および情報処理装置２００のＣＰＵ２０１が実行する工程を説明するフローチャートである。このフローチャートはイベント検知サービス３０６により実行される。本工程が実行される際、情報処理装置２００は起動され、図６のＳ６０４でインストールされたイベント検知サービスも機能可能になっている。本処理は、ユーザが情報処理装置２００に画像読取装置１００を接続することによって開始される。
【００４４】
本処理が開始されると、まずＳ７０１にて、画像読取装置１００の中央演算装置１０５は、画像読取装置１００のデバイスＩＤとともにＰｎＰイベント情報を発信する。
【００４５】
ＰｎＰイベント情報を受信した情報処理装置２００のＣＰＵ２０１は、ＯＳ環境下において、以下の処理を実行する。まず、Ｓ７０２にて、ＰｎＰイベントが発生した時に通知するべきプログラムを探索し、ＰｎＰイベントが発生した旨を通知する。本実施例の場合は、イベント検知サービスが登録されているので、これに通知される。
【００４６】
続くＳ７０３において、ＰｎＰイベント情報に含まれているデバイスＩＤから、対象となる画像読取装置のデバイスドライバが既にインストールされているか否かを判定する。デバイスドライバがインストールされている場合は、改めてインストールする必要が無いため、Ｓ７０６へジャンプする。一方、デバイスドライバがインストールされていないと判断された場合は、Ｓ７０４に進み、ドライバストア４００の中から該当するデバイスドライバを選出し、インストールを実行する。インストールが完了すると、Ｓ７０５に進み、デバイス管理レジストリ４０２に画像読取装置の情報（デバイス情報）を登録する。
【００４７】
図９は、デバイス管理レジストリ４０２におけるデバイス情報の管理状態を示す図である。デバイス管理レジストリはツリー構造になっており、図ではアドレス“００００”に新たなデバイス情報が登録された状態を示している。デバイス情報には、デバイスを一意に特定するデバイスＩＤや、擬似プッシュスキャン時に押下されるボタンに関連付けるアプリケーションが登録される領域（ＰｕｓｈＢｕｔｔｏｎＰｕｓｈｅｄ１、ＰｕｓｈＢｕｔｔｏｎＰｕｓｈｅｄ２）が用意されている。新たなデバイスドライバがインストールされた際、ボタンに関連付けるアプリケーションは未だ登録されておらず、当該情報を登録すべき領域は空になっている。図９では、新たにインストールされたデバイスドライバのデバイス情報をアドレス“００００”に登録する場合を示したが、デバイス管理レジストリ４０２には情報処理装置２００が対応可能なデバイスドライバを複数登録することが可能である。よって、このようなアドレスは、新たにデバイスドライバがインストールされた順番に応じて異なるようになっている。また、図９では、ボタンに関連付けるアプリケーションを登録する領域を２つ用意しているが、このような領域の数は１つ以上であれば、特に限定されるものではない。
【００４８】
デバイス情報の登録が完了すると、Ｓ７０６に進む。Ｓ７０６においてＣＰＵ２０１は、イベント検知サービスに、図７に示したテーブルにおいて上記のデバイスＩＤに対応するアプリケーションプログラムがデバイス管理レジストリ４０２に登録されているか否かを判断させる。当該アプリケーションプログラムが登録されている場合は、本処理を終了する。
【００４９】
一方、上記のアプリケーションプログラムが登録されていないと判断された場合は、Ｓ７０７に進み、当該アプリケーションプログラムが既にインストールされているか否かを判断する。アプリケーションプログラムが未だインストールされていないと判断した場合は、Ｓ７０８に進み、アプリケーションのインストール処理を行う。例えば、アプリストアが提供する複数のアプリケーションの中に該当するものがあれば、これをインストールすれば良い。また、ベンダーが用意するアプリケーションのダウンロードサイトがあれば、当該サイトから該当するアプリケーションをダウンロードしても良い。更に、インストールを促すメッセージを表示することにより、ユーザにインストール作業を行わせる形態としても良い。
【００５０】
続くＳ７０９において、ＣＰＵ２０１は、イベント検知サービスに、登録されていたデバイスＩＤとアプリケーション情報をもとに、デバイス管理レジストリ４０２にアプリケーション情報を登録させる。例えば、再度図７を参照するに、画像読取装置のデバイスＩＤが”ＭＸ００００  ｓｅｒｉｅｓ”の場合、図７で当該デバイスＩＤに対応するアプリケーションを登録情報から探索し、デバイス管理レジストリ４０２に登録する。図１０は、図９で説明したデバイス管理レジストリ４０２に、アプリケーション情報が登録された状態を示す図である。アドレス“００００”の個々のボタンに対応づけられた領域に、アプリケーションが追加登録されている。このような登録は、例えば、ＲｅｇｉｓｔｅｒＥｖｅｎｔＣａｌｌｂａｃｋＰｒｏｇｒａｍというＡＰＩを利用することで実現可能である。以上で、本処理が終了する。
【００５１】
以上説明した本実施例によれば、情報処理装置の出荷時にイベント検知サービスプログラムをインストールしておくことにより、その後のデバイスドライバのインストールとアプリケーションの登録を分離して管理することが出来る。つまり、デバイスドライバのインストールの状態に係らず、デバイス管理情報とアプリケーションとの関連付けを、デバイス管理レジストリに対し登録したり更新したりすることが出来る。
【００５２】
また図７に示したように、ＰｎＰイベントを発生させたデバイスのデバイスＩＤに対応するアプリケーションプログラムが、疑似プッシュスキャンにおいて起動するアプリケーションプログラムとして指定されている。そのため、例えば新たなアプリケーションがリリースされた場合に、図７に示したテーブルにおいて指定されるアプリケーションを更新することで、当該新たなアプリケーションをＰｎＰによりデバイス管理レジストリに自動的に登録することができる。
【００５３】
なお、図８のフローチャートでは、Ｓ７０８においてアプリケーションをインストールする工程を設けたが、本工程は必ずしも必要ではない。アプリケーションがインストールされていない場合には、そのままエラーで終了しても構わない。この場合は、該当するアプリケーションが別途ユーザによってインストールされた後に、改めてＰｎＰが発生したタイミングで、上記フローチャートが実行されれば良い。あるいは、アプリケーションのインストールに伴って、疑似的にＰｎＰを発生させたり、イベント検知サービスに通知を行ったりして、本処理を実行させても良い。
【００５４】
（実施例２）
実施例１では、イベント検知サービスをＯＳ出荷時にインストーラが用意する形態とした。これに対し、本実施例では、イベント検知サービスをＯＳの機能として組み込んだ場合の処理にいて説明する。本実施例においても、図１で説明した画像読取装置１００と図２で説明した情報処理装置２００を使用するものとする。
【００５５】
図１１は、情報処理装置２００の出荷時における、ソフトウェアのインストール処理の工程を説明するためのフローチャートである。本処理は、作業者がインストーラの起動を指示することによって開始され、情報処理装置２００のＣＰＵ２０１がインストーラに従って実行する。
【００５６】
本処理が開始されると、ＣＰＵ２０１は、Ｓ８０１において、デバイスドライバをドライバストアに格納する。続くＳ８０２において、ＣＰＵ２０１は、アプリケーションソフトウェアをインストールする。
【００５７】
その後、Ｓ８０４において、ＣＰＵ２０１は、画像読取装置１００を認識するためのデバイスＩＤとアプリケーションを関連付ける情報（例えば図７に示すテーブル）を、ＯＳに登録する。
【００５８】
以上で、本処理が終了する。本処理が実行されている間、画像読取装置１００と情報処理装置２００は、接続されている必要は無い。デバイスドライバがプリインストールされた情報処理装置を出荷する場合は、この状態で出荷することになる。
【００５９】
本実施例では、イベント検知サービスがＯＳに組み込まれているため、インストーラがイベント検知サービスを特別にインストールする必要はない。本実施例のイベント検知サービスは、ＯＳに付属するサービスとして実行されるものとする。
【００６０】
図１３は、図１１の処理が施された情報処理装置２００でＰｎＰが発生した際、画像読取装置１００の中央演算装置１０５および情報処理装置２００のＣＰＵ２０１が実行する工程を説明するフローチャートである。
【００６１】
本処理が開始されると、まずＳ９０１にて、画像読取装置１００の中央演算装置１０５は、画像読取装置１００のデバイスＩＤとともにＰｎＰイベント情報を発信する。
【００６２】
ＰｎＰイベント情報を受信した情報処理装置２００のＣＰＵ２０１は、ＯＳ環境下において、以下の処理を実行する。まず、Ｓ９０２において、ＰｎＰイベント情報に含まれているデバイスＩＤから、対象となる画像読取装置のデバイスドライバが既にインストールされているか否かを判定する。デバイスドライバがインストールされている場合は、改めてインストールする必要が無いため、Ｓ９０５へジャンプする。一方、デバイスドライバがインストールされていないと判断された場合は、Ｓ９０３に進み、ドライバストア４００の中から該当するデバイスドライバを選出し、インストールを実行する。インストールが完了すると、Ｓ９０４に進み、デバイス管理レジストリ４０２に画像読取装置の情報（デバイス情報）を登録する。
【００６３】
デバイス情報の登録が完了すると、Ｓ９０５に進み、ＣＰＵ２０１は、イベント検知サービスに、アプリケーションプログラムがデバイス管理レジストリに登録されているか否かを判断させる。アプリケーションプログラムが登録されている場合は、本処理を終了する。
【００６４】
一方、アプリケーションプログラムが登録されていないと判断した場合は、Ｓ９０６に進み、登録されていたデバイスＩＤとアプリケーション情報をもとに、イベント検知サービスに、デバイス管理レジストリ４０２にアプリケーション情報を登録させる。例えば、再度図７を参照するに、画像読取装置のデバイスＩＤが”ＭＸ００００  ｓｅｒｉｅｓ”の場合、図７で当該デバイスＩＤに対応するアプリケーションを登録情報から探索し、デバイス管理レジストリ４０２に登録する。以上で、本処理が終了する。
【００６５】
図１２は、図１３の処理により、アプリケーション情報が登録された状態のデバイス管理レジストリ４０２を示す図である。ＯＳが管理するレジストリ領域に、デバイスＩＤとアプリケーション情報が互いに対応づけられて登録されている。このような登録は、ＯＳ側にＲｅｇｉｓｔｅｒＥｖｅｎｔＣａｌｌｂａｃｋＰｒｏｇｒａｍというＡＰＩを利用することで実現可能である。なお、図１２では、デバイスの機種とアプリケーションを１対１のペアとして登録する状態を示したが、デバイスに対応可能な要件を満たすアプリケーションが複数存在するような場合には、当該要件に基づいて関連付けを行うこともできる。この場合、デバイスドライバ側にデバイスが対応可能なアプリケーションの要件を記載しておき、Ｓ８０４では、ＣＰＵ２０１がデバイスドライバに問い合わせることによって、デバイス管理レジストリにアプリケーションを登録する形態とすれば良い。
【００６６】
以上、説明した本実施例によれば、情報処理装置の出荷時にサービスプログラムをＯＳ内に組み込んでおくことにより、その後のデバイスドライバのインストールとアプリケーションの登録処理を分離して管理することが可能となる。つまり、デバイスドライバのインストールの状態に係らず、デバイス管理情報とアプリケーションとの関連付けを、デバイス管理レジストリに対し登録したり更新したりすることが出来る。
【００６７】
そして、上記２つの実施例によれば、情報処理装置２００に対するデバイスドライバのプリインストール処理を完結させておくことにより、その後ＰｎＰが発生したタイミングでアプリケーション登録処理を完了することが出来る。
【００６８】
このような形態であれば、インストール処理が完了した後であっても、別のアプリケーションのインストーラによってデバイスＩＤとアプリケーション情報の関連づけを、イベント検知サービスにて書き換えることが出来る。すなわち、古いアプリケーション情報が登録してあるデバイス管理レジストリに新たにリリースされたアプリケーション情報を上書き登録することが出来る。
【００６９】
また、機種共通ドライバであるクラスドライバを出荷時にプリインストールする場合であっても、従来のように全ての機種デバイスに対応づけてアプリケーション登録を行う必要は無い。対象とする機種のデバイスＩＤに対応づけて、その時点で最新のアプリケーション情報をイベント検知サービスを介してイベント検知サービスに登録しておけば良い。
【００７０】
更に、上記実施例によれば、既存のデバイスドライバに対して何ら追加的処理を行っていないため、ＯＳ標準のデバイスドライバを使用する場合であっても、上述した処理と同様のアプリケーション登録を完了させることが出来る。
【００７１】
なお、以上では、画像読取装置の擬似プッシュスキャンを前提に説明を行ってきたが、本発明はこのような構成に限定されるものではない。情報処理装置に接続されるデバイスとしてはデジタルカメラやカメラ付携帯などでも良く、これらが撮影した画像を情報処理装置に送信する形態であっても同様の効果を得ることが出来る。デジタルカメラやカメラ付携帯などで発生したイベントを情報処理装置で受信し、アプリケーションを起動して転送する場合においてもアプリケーションの登録処理は必要となる。このような場合であっても、上述した疑似プッシュスキャンと同様に、登録処理を行うことが出来る。
【００７２】
本発明の目的は上記実施例の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体をシステムあるいは装置に供給し、そのシステムあるいは装置のコンピュータが上記プログラムコードを読み出して実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。ここで、プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００７３】
また、コンピュータが読み出したプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【００７４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれることによって、上記一連の処理が実行される場合も本発明に含まれる。この場合には、
書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されることになる。
【符号の説明】
【００７５】
１００    画像読取装置
２００    情報処理装置
２０１    ＣＰＵ
３０１    アプリケーションソフトウェア
３０３    デバイスドライバ
３０６    イベント検知サービスプログラム
４０２    デバイス管理レジストリ
【図１】
0006366428.tif 000002
【図２】
0006366428.tif 000003
【図３】
0006366428.tif 000004
【図４】
0006366428.tif 000005
【図５】
0006366428.tif 000006
【図６】
0006366428.tif 000007
【図７】
0006366428.tif 000008
【図８】
0006366428.tif 000009
【図９】
0006366428.tif 000010
【図１０】
0006366428.tif 000011
【図１１】
0006366428.tif 000012
【図１２】
0006366428.tif 000013
【図１３】
0006366428.tif 000014