(57)【要約】【課題】  スキャナでなされた読取設定に従ってスキャナに読取を実行させ、アプリケーションで読取画像を取得する際、柔軟な運用を可能とすること。【解決手段】  スキャナを制御するＰＣにおいて、スキャナにおいてなされた読取指示及び読取設定を検出し、読取設定が検出された場合に、検出された読取設定を起動パラメータとしてアプリケーションを起動する。【選択図】  図９
2014017660.tif 000002
【特許請求の範囲】
【請求項１】
スキャナを制御する情報処理装置であって、
前記スキャナにおいてなされた読取指示及び読取設定を検出する検出手段と、
前記検出手段において読取指示が検出された場合に、前記検出手段において検出された読取設定を起動パラメータとしてアプリケーションを起動する起動手段とを有することを特徴とする情報処理装置。
【請求項２】
スキャナを制御する情報処理装置であって、
前記スキャナにおいてなされた読取指示及び読取設定を検出する検出手段と、
前記検出手段において読取指示が検出された場合に、前記検出手段において検出された読取設定による読み取りを、オペレーティングシステムを介して前記スキャナに実行させる読取制御手段と、
前記読取制御手段により前記スキャナが実行した読み取りにより得られた画像データをアプリケーションに供給する供給手段とを有することを特徴とする情報処理装置。
【請求項３】
スキャナを制御する情報処理装置であって、
前記スキャナにおいてなされた読取指示及び読取設定を検出する検出手段と、
前記検出手段により読取指示が検出された場合に、アプリケーションを起動する起動手段と、
前記検出手段により検出された読取指示の発生時間を取得する第１の取得手段と、
前記起動手段によりアプリケーションが起動された起動時間を取得する第２の取得手段と、
前記第１の取得手段により取得された発生時間と前記第２の取得手段により取得された起動時間とが所定時間内であるか判定する判定手段と、
前記判定手段により発生時間と起動時間とが所定時間内であると判定された場合に、前記アプリケーションにおいて前記検出手段により検出された読取設定による読み取りを前記スキャナに実行させるよう指示する指示手段とを有することを特徴とする情報処理装置。
【請求項４】
前記アプリケーションにおいて、前記検出手段により検出された読取設定を変更する変更手段を有することを特徴とする請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記変更手段は、前記検出手段により検出された読取設定と、前記アプリケーションにおいてなされた読取設定とが異なる場合に前記アプリケーションにおいてなされた読取設定に変更することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記検出手段により検出された読取設定と、前記アプリケーションにおいてなされた読取設定のいずれを優先させるか選択する選択手段を有し、
前記変更手段は、前記選択手段において前記アプリケーションにおいてなされた読取設定を優先させることが選択された場合に、前記検出手段により検出された読取設定を変更することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記アプリケーションにおいて、前記検出手段により検出された読取設定に他の設定を付加する付加手段を有し、
前記アプリケーションは、前記付加手段により付加された設定により前記スキャナによる読み取りによって得た画像データを処理させることを特徴とする請求項１〜６のいずれか１項に記載の情報処理装置。
【請求項８】
スキャナを制御する情報処理装置の制御方法であって、
前記スキャナにおいてなされた読取指示及び読取設定を検出し、
前記読取指示が検出された場合に、前記検出された読取設定を起動パラメータとしてアプリケーションを起動することを特徴とする情報処理装置の制御方法。
【請求項９】
スキャナを制御する情報処理装置の制御方法であって、
前記スキャナにおいてなされた読取指示及び読取設定を検出し、
前記読取指示が検出された場合に、前記検出された読取設定による読み取りを、オペレーティングシステムを介して前記スキャナに実行させ、
前記スキャナが実行した読み取りにより得られた画像データをアプリケーションに供給することを特徴とする情報処理装置の制御方法。
【請求項１０】
スキャナを制御する情報処理装置の制御方法であって、
前記スキャナにおいてなされた読取指示及び読取設定を検出し、
前記読取指示が検出された場合に、アプリケーションを起動し、
前記検出された読取指示の発生時間を取得し、
前記アプリケーションが起動された起動時間を取得し、
前記取得された読取指示の発生時間と前記取得されたアプリケーションの起動時間とが所定時間内であるか判定し、
所定時間内であると判定された場合に、前記アプリケーションにおいて前記検出された読取設定による読み取りを前記スキャナに実行させるよう指示することを特徴とする情報処理装置の制御方法。
【請求項１１】
請求項１〜７のいずれか１項に記載の各手段または請求項８〜１０のいずれか１項に記載の情報処理装置の制御方法をコンピュータにより実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャナを制御可能な情報処理装置、その制御方法およびプログラムに関する。
【背景技術】
【０００２】
従来、画像入力装置の一つであるイメージスキャナ（以下、スキャナ）では、スキャン動作の開始希望を知らせるイベントをスキャナに接続されている情報処理装置に通知し、その情報を元に情報端末装置からの指示でスキャンを行うものが知られている。この場合、スキャナの操作部からユーザが読み取りの操作をすることでスキャナによるスキャンが実行され、スキャナに接続された情報端末装置にスキャンによって得た画像データを転送する（特許文献１参照）。
【０００３】
情報処理装置では、スキャナの操作部からユーザが読み取りの操作を行ったことを知るために、スキャナのボタンイベントを定期的に監視するボタン監視プログラムを備えている。そして、ボタン監視プログラムはスキャナから読み取り開始等のボタンが押されたイベントを受け取ると情報処理装置において所定のアプリケーションを起動して、スキャナドライバ経由で画像データの取得を行う。アプリケーションは、ＴＷＡＩＮ（Ｔｅｃｈｎｏｌｏｇｙ  Ｗｉｔｈｏｕｔ  Ａｎ  Ｉｎｔｅｒｅｓｔｉｎｇ  Ｎａｍｅ）やＷＩＡ（Ｗｉｎｄｏｗｓ  Ｉｍａｇｅ  Ａｃｑｕｉｓｉｔｉｏｎ）などの規格に準拠したＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を介してスキャナドライバにスキャン処理を実行させて画像データを取得する。また、スキャナの操作部で設定した読取設定を情報処理装置からの指示によるスキャンに反映させるため、スキャナの操作部で設定した読取設定情報をボタン監視プログラムが情報端末装置の共有メモリに保存する。そして、ボタン監視プログラムにより起動されたアプリケーションが共有メモリにアクセスして読取設定情報を解釈し、この読取設定情報に従ったスキャンをスキャナドライバに指示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−３５５４８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、情報処理装置のオペレーティングシステム（ＯＳ）によっては、システムが不正に操作されるのを防止するために、サンドボックス技術を適用したものがある。このようなシステムでは、アプリケーションやデバイスドライバをサンドボックス化し、セキュリティの高いシステムを提供するものである。しかしながら、アプリケーションをサンドボックス化するとシステムで保護された領域内での動作に制限されてしまうため、起動後は上記の読取設定情報にアクセスできなくなってしまう。
【０００６】
本発明は、以上の点に鑑みてなされたものであり、スキャナでなされた読取設定に従ってスキャナに読取を実行させ、アプリケーションで読取画像を取得する際、柔軟な運用が可能な情報処理装置、その制御方法及びプログラムを提供するものである。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明の一態様は、スキャナを制御する情報処理装置であって、前記スキャナにおいてなされた読取指示及び読取設定を検出する検出手段と、前記検出手段において読取指示が検出された場合に、前記検出手段において検出された読取設定を起動パラメータとしてアプリケーションを起動する起動手段とを有する。また、前記スキャナにおいてなされた読取指示及び読取設定を検出する検出手段と、前記検出手段において読取指示が検出された場合に、前記検出手段において検出された読取設定による読み取りを、オペレーティングシステムを介して前記スキャナに実行させる読取制御手段と、前記読取制御手段により前記スキャナが実行した読み取りにより得られた画像データをアプリケーションに供給する供給手段とを有する。また、前記スキャナにおいてなされた読取指示及び読取設定を検出する検出手段と、前記検出手段により読取指示が検出された場合に、アプリケーションを起動する起動手段と、前記検出手段により検出された読取指示の発生時間を取得する第１の取得手段と、前記起動手段によりアプリケーションが起動された起動時間を取得する第２の取得手段と、前記第１の取得手段により取得された発生時間と前記第２の取得手段により取得された起動時間とが所定時間内であるか判定する判定手段と、前記判定手段により発生時間と起動時間とが所定時間内であると判定された場合に、前記アプリケーションにおいて前記検出手段により検出された読取設定による読み取りを前記スキャナに実行させるよう指示する指示手段とを有する。
【発明の効果】
【０００８】
本発明によれば、スキャナでなされた読取設定に従ってスキャナに読取を実行させ、アプリケーションで読取画像を取得する際、柔軟な運用が可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態におけるスキャナの概略構成を示すブロック図である。
【図２】本発明の実施形態におけるＰＣの概略構成を示すブロック図である。
【図３】本発明の実施形態におけるスキャナとＰＣを含むシステムの概略構成を示す図である。
【図４】図１に示したＭＦＰ１００の操作パネルの構成を示す図である。
【図５】プッシュスキャンを行う際に選択可能な保存先とそれに応じた原稿種類の例を示す図である。
【図６】プッシュスキャンを行う際の原稿種類に応じた読取設定の例を示す図である。
【図７】図２に示したＰＣ２００のソフトウェア構成を示す図である。
【図８】ＭＦＰ１００のプッシュイベントで起動するアプリケーションを選択するダイアログボックスの例を示す図である。
【図９】プッシュスキャンを行う際のシーケンスを含むフローチャートである。
【図１０】プッシュスキャンのイベント情報に含まれるスキャン設定の例を示す図である。
【図１１】スキャンアプリケーションが指定するスキャン設定の例を示す図である。
【図１２】実施形態２におけるＭＦＰのプッシュイベントで起動するアプリケーションを選択するダイアログボックスの例を示す図である。
【図１３】実施形態２におけるプッシュスキャンを行う際のシーケンスを含むフローチャートである。
【図１４】実施形態３におけるプッシュスキャンを行う際のシーケンスを含むフローチャートである。
【図１５】実施形態３に係るスキャンアプリケーションがプッシュスキャンのイベントを発生させたデバイスを識別する処理の流れを示すフローチャートである。
【図１６】実施形態３に係るプッシュスキャンのイベント情報に含まれるスキャン設定の例を示す図である。
【図１７】実施形態４におけるプッシュスキャンでスキャン設定が異なる場合に表示する画面例を示す図である。
【図１８】実施形態４におけるプッシュスキャンを行う際のシーケンスを含むフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施の形態の一例を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１１】
＜実施形態１＞
図１は本実施形態に係るスキャナの一例であるＭＦＰの概略構成を示すブロック図である。ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ  ）１００は、プリンタ機能、スキャナ機能及びストレージ機能を備えており、ネットワークやＵＳＢを経由してそれぞれの機能を外部装置に対して提供することができる。
【００１２】
ＭＦＰ１００において、プリンタ機能はプリンタ部１０１で、スキャナ機能はスキャナ部１０２で、ストレージ機能はメモリカード装着部１０３及びメモリカード１０４で実現する。プリンタ部１０１は、外部から受信したプリントデータやメモリカード１０４に格納されている画像データなどを、インクジェット方式や電子写真方式などによって印刷媒体上に画像としてプリントする。スキャナ部１０２は、原稿台にセットされた、あるいは自動原稿給送装置（ＡＤＦ）から給送される原稿を光学的に読み取って画像データに変換する。スキャナ部１０２によって得た画像データは、指定されたファイル形式に変換してネットワークやＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）経由で外部装置に送信したり、メモリに保存することが可能である。またＭＦＰ１００はスキャナ部１０２で読み取って生成した画像データをプリンタ部１０１へ転送してプリンタ部１０１が印刷媒体にその画像データに基づく画像をプリントするコピーも可能である。またＭＦＰ１００はメモリカード１０４に格納されているファイルを、ネットワークやＵＳＢを経由して接続された外部装置が読み出したり、外部装置からメモリカード内にファイルを格納することなどが可能である。
【００１３】
更に、ＭＦＰ１００はＭＦＰ各部を制御するための中央演算装置（ＣＰＵ）１０５、ＣＰＵ１０５が実行するプログラムコードなどを格納するＲＯＭなどのプログラムメモリ１０６を備える。また、ＣＰＵ１０５による各処理の実行時に画像データなどを一時格納したり、バッファリングしたりするためのＲＡＭなどのワークメモリ１０７を備える。また、ユーザに提示する情報を表示する表示部１０８、後述する各キーを備える操作部１０９を備える。なお、表示部１０８と操作部１０９とは、それぞれを兼用したタッチパネル形式の操作部としてもよい。
【００１４】
また、ＭＦＰ１００は、ネットワークを介して通信を行うためのネットワーク通信部１１０と、ＭＦＰ１００をネットワークに接続するためのネットワーク接続部１１１を備える。ネットワーク通信部１１０は有線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）と無線ＬＡＮのうち、少なくともいずれかに対応する。有線ＬＡＮ対応の場合、ネットワーク接続部１１１は有線ＬＡＮのケーブルをＭＦＰ１００に接続するためのコネクタであり、無線ＬＡＮ対応の場合、ネットワーク接続部１１１は無線通信用アンテナである。
【００１５】
また更に、ＭＦＰ１００はＭＦＰ１００が取得したり、ユーザにより入力された種々の情報を格納するためのフラッシュメモリ１１２を備える。
【００１６】
また更に、ＭＦＰ１００はＵＳＢインターフェースを介してＵＳＢ規格に従って外部装置と通信するためのＵＳＢ通信部１１４を備え、ＵＳＢを介して通信する外部装置とはＵＳＢコネクタなどによるＵＳＢ接続部１１５により接続する。なお、ＭＦＰ１００はネットワーク接続部１１１またはＵＳＢ接続部１１５のいずれかによって外部装置と接続可能であればよい。また、ＵＳＢに代えて他のローカルインターフェースを介して外部装置と接続するものであってもよい。
【００１７】
以上説明したＭＦＰ１００の各部は信号線１１３により接続される。なお、ここではスキャナとしてスキャナ機能だけでなく、プリンタ機能、ストレージ機能を有するものを示したが、プリンタ機能、ストレージ機能を有さないものとしてもよいし、他の機能を有するものとしてもよい。
【００１８】
図２は、本実施形態に係る情報処理装置の一例であるパーソナルコンピュータ（ＰＣ）の概略構成を示すブロック図である。
【００１９】
図２において、ＣＰＵ２０１はＰＣ２００の各部を制御する。ディスク装置２０２はＣＰＵ２０１が実行するアプリケーションプログラム、オペレーティングシステム（ＯＳ）、スキャナドライバなどのプログラム、各種ファイルなどをディスク形式の記憶媒体に記憶する。ディスク装置２０２をディスク形式以外の記憶媒体を扱う装置とすることも可能である。外部ディスク読み取り装置２０３はＣＤ−ＲＯＭなどのディスク形式の外部記憶媒体（着脱可能）に記憶されている内容を読み出す。外部ディスク読み取り装置２０３をディスク形式以外の外部記憶媒体の読み取り装置としてもよい。メモリ２０４はＣＰＵ２０１が必要に応じてデータの一時的格納、バッファリング等を行うためのものである。表示装置２０５はユーザに提供する情報などの表示を行うものであり、ＰＣに内蔵のものや外付けのものなどを採用可能である。操作部２０６はキーボードやマウスなど、ユーザによる操作を受け付ける。ネットワーク通信部２０７はＰＣ２００をネットワークに接続して各種通信を行い、ネットワーク接続部２０８はＰＣ２００をネットワークに接続する。
【００２０】
ネットワーク通信部２０７とネットワーク接続部２０８は、有線ＬＡＮと無線ＬＡＮの内、少なくともいずれかに対応する。ネットワーク通信部２０７及びネットワーク接続部２０８は対応ＬＡＮに応じて必要な機能及び形態をとる。ＵＳＢ通信部２１０は各種周辺装置とＵＳＢインターフェースを介してＵＳＢ規格に従って通信する。ＵＳＢ接続部２１１はＵＳＢコネクタなどで構成される。なお、ＰＣ２００はネットワーク接続部２０８またはＵＳＢ接続部２１１のいずれかを介して周辺装置と接続可能であればよい。また、ＵＳＢに代えて他のローカルインターフェースを介して周辺装置と接続するものとしてもよい。以上の各部は信号線２０９を介して接続される。
【００２１】
図３は、図１に示したＭＦＰ１００と図２に示したＰＣ２００とをネットワークを介して接続させたシステムの概略構成を示すブロック図である。図３に示すように本システムにおいては、有線ＬＡＮ３００にＭＦＰ１００がネットワーク接続部１１１を介して、ＰＣ２００がネットワーク接続部２０８を介して接続される。
【００２２】
図３及び以降の説明では、有線ＬＡＮ３００を介してＭＦＰ１００とＰＣ２００とが接続される例について述べるが、ＭＦＰ１００とＰＣ２００とが無線、ＵＳＢなどのローカルインターフェース、ＦｉｒｅＷｉｒｅを介して接続されるものであっても同様である。尚、図３では１台のＰＣ、１台のＭＦＰのみを図示しているが、複数のＰＣおよび複数のＭＦＰ（あるいはスキャナ専用機）、さらには他の装置を同一ＬＡＮ上に接続可能である。
【００２３】
図４は図１に示したＭＦＰ１００の表示部１０８と操作部１０９とを含む操作パネル４００のレイアウト構成の例を示す図である。
【００２４】
図４において、表示部４０１は表示部１０８であり、ユーザに提供すべき情報を文字や図形などに表示する。操作キー４０２〜４１２は操作部１０９に対応し、ユーザが種々の指示を行うために押下する。
【００２５】
電源キー４０２はＭＦＰ１００の電源ＯＮ／ＯＦＦを選択指示するためのキーである。コピーキー４０３はスキャナ部１０２とプリンタ部１０１を用いたコピーを実行させるためのキーである。スキャンキー４０４はスキャナ部１０２によるプッシュスキャン（疑似プッシュスキャン）を要求（読取指示）するためのキーである。
【００２６】
プッシュスキャンとは、ＭＦＰ１００の操作をトリガとして、スキャナ部１０２により原稿上の画像を読み取って得られたスキャンデータを、指定したＰＣに送信するサービスのことをいう。ユーザは例えばスキャンデータをどこに保存するか、原稿の種類は何であるか、どのような読取設定でスキャンを行うかなどを、表示部４０１を見ながら後述する矢印キー４１０及び決定キー４１２を操作することにより選択可能である。なお、本実施形態ではスキャンキー４０４が操作されたときに、この操作が行われたことをＰＣ２００に伝え、ＰＣ２００からの指示でスキャンを実行させる疑似プッシュスキャンを行うものである。
【００２７】
また、メモリカードキー４０５はメモリカード装着部１０３にメモリカード１０４が装着されている場合に、そのカードに格納されている画像ファイルの処理を実行させるためのキーである。メモリカードキー４０５はメモリカード１０４内の画像ファイルを表示部４０１に表示させ、指定された画像をプリントさせる（以下、メモリカードプリント）際に用いられる。
【００２８】
カラースタートキー４０６はコピー、プッシュスキャン、メモリカードプリントなどをカラーで実行開始させるためのキーである。コピーキー４０３、スキャンキー４０４、メモリカードキー４０５により処理の内容が選択された後、カラースタートキー４０６を押下することによりカラーによる処理が実行される。モノクロスタートキー４０７はコピー、プッシュスキャン、メモリカードプリントなどをモノクロで実行開始させるためのキーである。中止キー４０８は実行開始させたコピー、プッシュスキャン、メモリカードプリントなどを中止させるためのキーである。
【００２９】
矢印キー４１０は表示部４０１に表示された処理メニューやメモリカード１０４内のプリントまたは表示したいファイルを選択する際に用いるキーである。戻るキー４１１は表示部４０１のメニュー画面を一画面前に戻す場合などに使用するためのキーである。決定キー４１２は表示部４０１においてカーソル表示されている項目を決定するためのキーである。
【００３０】
図５はユーザがプッシュスキャンを行う際に選択可能な保存先とそれに応じた原稿種類の例である。例えば、スキャンキー４０４が押されると、表示部４０１に、まず保存先のリスト「パソコン／メールに添付／メモリカード／ＵＳＢメモリ」を表示して、どこに保存したいかをユーザに選択させる。その後、スキャンを行う原稿種類を選択させることで、さらに原稿種類に応じた読取設定を可能にする。
【００３１】
ここで、保存先として「パソコン」や「メールに添付」を選択した場合には、ＵＳＢ接続されているＰＣか、または複数のネットワーク上に接続されているＰＣのうちどれに対してスキャンをするかを選択する必要がある。そのため、表示部４０１上に接続方式やＰＣの名称またはＰＣにログインしているユーザの名称等を表示し、ユーザに選択させることで、適切な宛先へスキャンによって得た画像データを送信可能である。
【００３２】
ここで、保存先として「メモリカード」が選択された場合には、ＭＦＰ１００のメモリカード装着部１０３に装着したメモリカード１０４に対してスキャンによって得た画像データの保存を行う。そのため、ＰＣ２００との通信は必要なく、ＭＦＰ１００内部の処理のみでスキャン動作か完了する。ここでは、メモリカードを例にとって説明したが、ＵＳＢメモリ装着部とそこに装着したＵＳＢメモリに対しても、同じように直接画像の保存を行うことが可能である。同じようにＣＤやＤＶＤ、ＨＤＤ等の書き込み可能なメディアに対して、ＭＦＰ１００がこれらと直接接続されていれば、保存先のリストに表示して保存を行わせることができる。
【００３３】
図６はユーザがプッシュスキャンを行う際の原稿種類に応じた読取設定の例である。  ユーザは、上記のように保存先及び原稿種類が選択された後に表示部４０１に表示される読取設定を確認しながら、希望の読取設定を行うことが可能である。読取サイズでは、Ａ４、Ｌ判、２Ｌ判、はがき、ＫＧ、名刺、レターサイズ、オートクロップ等のサイズ選択が可能である。オートクロップとは、原稿台上の所定領域（例えば、全面）をスキャンして、原稿のサイズに応じたクロップを行う機能である。保存形式では、ＪＰＥＧ、ＴＩＦＦ、ＰＤＦ等のファイル形式を選択可能である。ここでＰＤＦやＪＰＥＧの圧縮率等をあわせて設定できるようにしてもよい。解像度では、７５ｄｐｉ、１５０ｄｐｉ、３００ｄｐｉ、６００ｄｐｉ、１２００ｄｐｉ、２４００ｄｐｉ、４８００ｄｐｉ等の解像度を選択可能である。この解像度のリストは、原稿種類に応じて選択可能な（表示させる）解像度を変更するようにしてもよい。ＡＤＦ原稿向きでは、ＡＤＦにセットする原稿が縦長画像か横長画像かの選択が可能である。この選択により、スキャンした画像を適切な方向に回転して出力することが可能である。ＡＤＦの両面読取では、ＡＤＦにセットされた原稿の両面を読み取るか、片面のみを読み取るかを設定する。裏写り低減では、両面原稿の裏面の写りこみを低減するような画像処理を行うかどうかを設定する。モアレ低減では、雑誌等のスキャン時に発生するモアレを低減させるための画像処理を行うかどうかを設定する。輪郭強調では、画像の輪郭を強調するための画像処理を行うかどうかを設定する。
【００３４】
次に、図７を用いて、ＰＣ２００の機能的な構成（ＰＣ２００にインストールされるソフトウェア構成）の一例について説明する。尚、各種機能部は、例えば、ＣＰＵ２０１がメモリ２０４をワークエリアとしてディスク装置２０２に記憶された（インストールされた）プログラムを読み込み実行することで実現される。
【００３５】
ＰＣ２００にインストールされるソフトウェアは、所定の画像通信規格に準拠したスキャンアプリケーション５００と、ＯＳ６００と、スキャナドライバ７００とに大きく分けられる。
【００３６】
ＯＳ６００は、表示装置２０５への出力や操作部２０６からの入力などを制御する入出力機能、ディスク装置２０２のメモリ管理機能、など多くのアプリケーションに基本的な機能を提供し、ＰＣ２００全体を管理する。
【００３７】
また、ＯＳ６００は、スキャンアプリケーション５００やスキャナドライバ７００を制御するスキャンライブラリ６０１を備えている。スキャンライブラリ（ＳＬ）６０１は、所定の画像通信規格に従ってスキャンアプリケーション５００とスキャナドライバ７００との通信を実現するＡＰＩを提供する。
【００３８】
更に、ＯＳ６００は、デバイス検出部６０２やスキャナドライバ起動制御部６０３を備えている。デバイス検出部６０２は、ＭＦＰ１００などの周辺装置がネットワークやＵＳＢなどのローカルインターフェースを介して接続された（通信可能となった）ことを検出する。スキャナドライバ起動制御部６０３は、検出された周辺装置がスキャナであり、これに対応したスキャナドライバが存在すれば、当該スキャナドライバの起動を行う。また、ネットワークやローカルインターフェースなどを介したスキャナとの接続が解除された場合に当該スキャナのスキャナドライバが既に起動していれば当該スキャナドライバの終了を行う。
【００３９】
更に、ＯＳ６００は、アプリケーション登録部６０４やアプリケーション起動制御部６０５を備えている。アプリケーション登録部６０４は、ＭＦＰ１００などの周辺装置で発生したイベント情報に関連付けて起動するアプリケーションを登録する。登録に際しては周辺装置の種類、関連付けるイベント情報の種類、登録するアプリケーションをユーザが選択する画面などを表示装置２０５に表示させ、この画面で選択されたアプリケーションを登録する。アプリケーション起動制御部６０５は、イベントが発生した場合に関連付けられたアプリケーションを起動し、起動したアプリケーションに対し、発生したイベントの詳細情報をパラメータとして渡すＡＰＩを提供する。
【００４０】
スキャンアプリケーション５００は、画像データを処理するソフトウェアである。スキャンアプリケーション５００は、スキャンライブラリ６０１を介して、所定の画像通信規格に準拠したスキャナドライバから画像データを取得することが可能である。そして、取得した画像データの補正や編集を行った後、表示装置２０５へ表示させたり、また、画像ファイルとしてディスク装置２０２に格納したりすることが可能である。スキャンアプリケーションとしては、例えば、画像データを編集する画像編集ソフトウェアや、画像データに含まれる文字を認識して文字コード化するＯＣＲソフトウェア等が挙げられる。
【００４１】
スキャンアプリケーション５００は、ＳＬ通信制御部５０１、起動パラメータ判別部５０２、スキャン設定合成部５０３を備える。
【００４２】
ＳＬ通信制御部５０１は、ＳＬ６０１を介してスキャナドライバ７００と所定の画像通信規格に準拠したコマンド群の授受を行う。起動パラメータ判別部５０２は、アプリケーション起動時に呼び出し元のプログラムが何かを判別したり、起動時に渡されるパラメータの内容を判別したりする。スキャン設定合成部５０３は、スキャナドライバ７００にスキャン要求を行う際にスキャン設定の各種情報を追加したり編集したりする。
【００４３】
スキャナドライバ７００は、ＭＦＰ１００のスキャナ機能に対応したデバイスドライバである。スキャナドライバ７００は、ＭＦＰ１００のスキャナ部１０２を制御するコマンドの送信を行ったり、画像データやＭＦＰ１００の状態を表すデータの受信等を行ったりする。尚、コマンドの送信や画像データの受信は、インターフェース制御部７０７を介して行われる。また、スキャナドライバ７００は、ＳＬ通信制御部７０１と、画像データ取得部７０２とを備える。
【００４４】
ＳＬ通信制御部７０１は、スキャンライブラリ６０１を介してスキャンアプリケーション５００と所定の画像通信規格に準拠したコマンド群の授受を行う。ＳＬ通信制御部７０１は、読取解像度、カラーモード、原稿サイズ等の設定を受け付けたり、スキャン要求に対して読み取った画像データを指定されたフォルダに保存したりする。
【００４５】
画像データ取得部７０２は、ＭＦＰ１００のスキャナ部１０２により原稿の画像を読み取って得られた画像データを、インターフェース制御部７０７を介して取得する。また、取得した画像データをメモリ（例えば、ディスク装置２０２）に格納する。
【００４６】
更に、スキャナドライバ７００は、ボタンイベント監視部７０３とイベント情報取得部７０４とスキャン設定生成部７０５とスキャン設定解析部７０６とを備える。
【００４７】
ボタンイベント監視部７０３は、ＭＦＰ１００の操作パネル４００上でユーザの操作によって発生したボタンイベントを定期的に監視する。操作パネル４００上で読み取り開始等のボタンイベントを検知した場合、イベント情報取得部７０４により、操作パネル４００を用いて入力されたスキャン設定データ（図５、６に示した各種設定）を取得する。スキャン設定生成部７０５は、イベント情報取得部７０４で取得したスキャン設定データを基に、スキャンアプリケーション５００やＳＬ６０１が解釈可能な設定値としてスキャン設定情報を生成する。そして、ＳＬ通信制御部７０１により、イベントが発生したことを上記スキャン設定情報とともにスキャンライブラリ６０１に通知する。スキャン設定解析部７０６は、スキャンアプリケーション５００がスキャン要求時に指定するスキャン設定情報を解析して、ＭＦＰ１００の操作パネル４００で入力されたスキャン設定データとの照合を行う。
【００４８】
図８は表示装置２０５に表示させるＭＦＰ１００のプッシュイベントに対して起動するアプリケーションを選択する画面例である。図８のデバイス設定ダイアログボックス８００は、ＯＳ６００のアプリケーション登録部６０４がプリンタやスキャナの各種設定のために提供する画面である。デバイスリスト８０１にはＰＣ２００に接続されているデバイスや以前ＰＣ２００に接続したデバイスが表示され、ユーザは設定を行いたい、あるいは設定を変更したいデバイスを選択する。ドロップダウンリスト８０２では、スキャナのボタンイベントが発生したときに起動させるアプリケーションを指定する。ドロップダウンリスト８０２では、ＰＣ２００にインストールされているアプリケーションをリスト表示し、その中からユーザが所望のアプリケーションを選択する。なお、ユーザがスキャナドライバやスキャンアプリケーションをインストールしたときに、自動的にアプリケーションを設定してもよい。あるいは、予めインストールされている標準のアプリケーションを初期値として登録してもよい。適用ボタン８０３はこれがユーザにより押されるとこの画面で設定した内容を確定させる。閉じるボタン８０４は、これが押されるとデバイス設定ダイアログボックス８００を閉じる。
【００４９】
図９はＭＦＰ１００とＰＣ２００を用いて疑似プッシュスキャンを行う際の読取制御シーケンスを含むフローチャートである。ＰＣ２００のＯＳ６００は、サンドボックス技術に対応した高いセキュリティを備えたＯＳとする。また、スキャンアプリケーション５００やスキャナドライバ７００は、サンドボックス化したプログラムとする。
【００５０】
サンドボックス化したプログラムは、システムで保護された領域内での動作に制限されてしまうため、共有メモリ上に存在する一般的なファイルにはアクセスできない。但し、ユーザが作成して複数のアプリケーションで共有する目的のファイルは、ＯＳが定めたフォルダに限りアクセスできる。
【００５１】
ＯＳ６００は、デバイス検出部６０２によりＭＦＰ１００が検出されると、ＭＦＰ１００に対応したスキャナドライバ７００をスキャナドライバ起動制御部６０３により起動させる（Ｓ９０１）。そしてＯＳ６００はスキャナドライバ７００に対し、デバイス接続コマンドを発行してＭＦＰ１００との接続の確立を要求する（Ｓ９０２）。そして、ＭＦＰ１００でボタンイベントが発生した場合に当該ボタンイベントを受信するためのボタン監視要求コマンドをスキャナドライバ７００に対し発行する（Ｓ９０３）。ここでは、デバイスの接続が検出されるとスキャナドライバを起動してボタン監視要求を行うものとしているが、事前にユーザが登録したデバイスのみを対象としてスキャナドライバを起動するようにしてもよい。これにより、ボタンポーリングを行うデバイスを制限することで、ネットワーク上に複数のデバイスが接続される環境においてネットワークトラフィックを軽減することもできる。
【００５２】
スキャナドライバ７００は、起動後にボタン監視要求コマンドを受信すると、ボタンイベント監視部７０３によりＭＦＰ１００のボタンイベントを監視するための周期的なポーリングを行う。ＭＦＰ１００の操作パネル４００上でユーザの操作により読み取り開始を指示するカラースタートキー４０６やモノクロスタートキー４０７等が操作されるとスキャナドライバ７００のボタンイベント監視部７０３はこのボタンイベントを検知する。そして、イベント情報取得部７０４は検知されたボタンイベントに対応したイベント情報を取得し、ＳＬ通信制御部７０１はＳＬ６０１に取得されたイベント情報を通知する（Ｓ９０４）。イベント情報の設定内容は、例えば、図１０に示すようなディクショナリ形式のファイルである。イベント情報にはイベントの種類やユーザが疑似プッシュスキャンを行う際の原稿種類に応じたスキャン設定（図５、６に示した各種設定からユーザに設定されたもの）がＳＬ６０１やスキャンアプリケーション５００が解釈可能な設定値として格納されている。
【００５３】
ＳＬ６０１は、イベント情報の通知を受けると当該イベント情報を起動時のパラメータ（引数）に指定してアプリケーション起動制御部６０５に所定のアプリケーションの起動を行わせる（Ｓ９０５）。ここで指定されるパラメータは汎用的な形式であり、種々のアプリケーションが解釈可能な形式である。またこのときイベント情報にはどのデバイスからイベントが発生したかを識別するために、ＳＬ６０１がＭＦＰ１００を示すデバイス情報を追加する。あるいは、スキャナドライバ７００がイベント情報にこのデバイス情報を含めるようにしてもよい。ここで起動されるアプリケーションはアプリケーション登録部６０４でＭＦＰ１００のボタンイベントと関連付けて登録されたスキャンアプリケーション５００である。
【００５４】
スキャンアプリケーション５００は、ＳＬ６０１を介して起動されると、起動パラメータ判別部５０２で起動時のパラメータを参照して該当デバイスであるＭＦＰ１００に対応したスキャナドライバ７００にスキャン設定の取得コマンドを発行する（Ｓ９０６）。取得するスキャン設定の内容は、光学解像度や読取可能領域、ＡＤＦやフィルムスキャンのサポート有無などのデバイス性能情報が含まれる。このデバイス性能情報は、例えばプルスキャン（スキャンアプリケーション５００からのトリガでスキャンを行う）時にスキャンアプリケーション５００が表示するスキャン設定画面に使用されるものである。
【００５５】
スキャンアプリケーション５００は、疑似プッシュスキャンを行うために、上記イベント情報を基にスキャン設定合成部５０３でスキャン設定を合成し、スキャン設定の指定コマンドを発行する（Ｓ９０７）。ここでは操作パネル４００で設定されたスキャン設定に、スキャンアプリケーション５００においてなされる他の設定が付加される。図１１は、スキャン設定の合成の例で、上位７項目は起動時のパラメータであるイベント情報をそのまま設定し、下位３項目はスキャンアプリケーション５００が受け取る画像データのファイル形式やファイル名を設定するために追加される。これにより操作パネル４００でなされた設定によるスキャンが実行され、このスキャンによって得られた画像データの処理が付加された設定により行わせることが可能である。
【００５６】
スキャンアプリケーション５００は上記スキャン設定の指定コマンドに対する成功応答をスキャナドライバ７００から受け取ると、スキャン設定合成部５０３で合成されたスキャン設定によるスキャン要求コマンドを発行する（Ｓ９０８）。スキャナドライバ７００はスキャン要求コマンドを受信すると、指定されたスキャン設定を基にＭＦＰ１００のスキャナ部１０２にスキャンを実行させる。そしてスキャンによって得た画像データの取得を画像データ取得部７０２により行い、指定されたファイル形式の画像ファイルを作成する。スキャナドライバ７００は、画像ファイルの作成が完了すると、スキャンアプリケーション５００にスキャン完了の通知を行うとともにスキャンされた画像ファイルを送信する（Ｓ９０９）。
【００５７】
スキャンアプリケーション５００は、スキャン完了の通知とともに画像ファイルを受けると当該画像ファイルに対応する画像を表示させる。例えば、画像はスキャンアプリケーション５００のメインダイアログボックスにサムネイル画像などとして表示してもよいし、ＯＳ標準のファイル管理画面で画像ファイルとして表示してもよい。尚、疑似プッシュスキャン実行時にスキャンの進捗状況やＭＦＰ１００のステータスをユーザに知らせるために、スキャンアプリケーション５００がステータス情報を表示してもよい。ＳＬ６０１は、スキャン完了通知を行ったスキャナドライバ７００に対して、ボタンポーリングを再開させるために、ボタン監視要求コマンドを発行する（Ｓ９１０）。
【００５８】
以上のように、本実施形態ではスキャナドライバ７００はボタンイベントを検知したときにＭＦＰ１００の操作パネル４００で設定されているイベント情報をＯＳ６００に通知する。ＯＳ６００はこのイベント情報をスキャンアプリケーション５００の起動時のパラメータとしてスキャンアプリケーション５００に渡す。スキャンアプリケーション５００はこのイベント情報に従ってスキャナドライバ７００にＭＦＰ１００によるスキャンを実行させる。スキャンアプリケーション５００はＯＳ６００から起動時のパラメータとしてＭＦＰ１００で設定されたスキャン設定を取得しているので、サンドボックス化されていてもスキャン設定を取得可能である。そして、このときのユーザによる操作は、ＭＦＰ１００への読取対象の原稿のセット及びＭＦＰ１００の操作パネル４００による読取開始指示のみである。従って、サンドボックス技術などに対応したＯＳ上であっても、アプリケーション間で共有ファイルを使用しない処理方法により、スキャナの簡単操作での疑似プッシュスキャン機能を汎用的なアプリケーションを使用してユーザに提供することができる。
【００５９】
また、ＯＳがスキャン設定を汎用的なパラメータとした引数によってアプリケーションを起動することによって汎用的なアプリケーションを用いて疑似プッシュスキャンを行わせることができる。即ち、スキャンアプリケーションを、スキャナベンダー固有のスキャン設定を解釈可能なものに限定せず、種々のものとすることができる。これはサンドボックス技術を採用しないＯＳであっても同様な効果を奏する。
【００６０】
＜実施形態２＞
次に、実施形態２について説明する。実施形態１では、スキャナドライバがボタンイベントを受信するとＯＳに通知して、ＯＳから所定のスキャンアプリケーションが起動され、イベント情報に基づいたスキャンが開始されるものであった。即ち、実施形態１では、スキャナドライバへの画像生成の指示をスキャンアプリケーションが行っているが、実施形態２ではＯＳが直接行うものとする。尚、実施形態２におけるＭＦＰとＰＣ、構成概略、操作パネルのレイアウト構成は、図１〜図４で説明したものと同様の構成を用いることができるため、ここではその説明については省略する。
【００６１】
また、疑似プッシュスキャンを行う際のスキャン設定、ＰＣにおけるソフトウェア構成は、図５〜図７で説明したものと同様の構成を用いることができるため、それらについての説明も省略する。
【００６２】
ただし、保存先や原稿種類の選択を操作パネル４００の１つのキーに割り当て、当該キーの選択により保存先や原稿種類を決定するようにしてもよい。例えば、操作パネル４００の写真ボタンが押された場合は原稿種類を「写真」とし、文書ボタンが押された場合は原稿種類を「文書」とし、メールボタンが押された場合は保存先を「メールに添付」とするなどである。なお、保存先が「メールに添付」とはＰＣ２００にインストールされている所定の電子メールソフトウェアを起動させ、送信文書作成画面にスキャンによって得た画像ファイルを添付ファイルとして添付した状態とするものである。以下では保存先や原稿種類の選択を操作パネル４００に設けられた１つのキーに割り当てたものとして説明するが、これには限らない。矢印キー４１０で表示部４０１のメニューを切り替えて、決定キー４１２を押下した後に、カラースタートキー４０６やモノクロスタートキー４０７を操作するものであっても同様である。
【００６３】
図１２は表示装置２０５に表示させるＭＦＰ１００のプッシュイベントに対して起動するアプリケーションを選択する画面例である。図１２では図８が１種類のボタンイベントに対する登録であったのに対し、複数種類のボタンイベントに対する登録としている。ただし、図８に示すように１種類のボタンイベントに対するアプリケーションの登録としてもよい。また、実施形態１が図１２に示すように複数種類のボタンイベントのそれぞれに対するアプリケーションの登録としてもよい。
【００６４】
図１２のデバイス設定ダイアログボックス１２００は、ＯＳ６００のアプリケーション登録部６０４がプリンタやスキャナの各種設定のために提供する画面である。デバイスリスト１２０１にはＰＣ２００に接続されているデバイスや以前ＰＣ２００に接続したデバイスが表示され、ユーザは設定を行いたい、あるいは設定を変更したいデバイスを選択する。ドロップダウンリスト１２０２〜１２０４では、スキャナのボタンイベントが発生したときに起動させるアプリケーションを指定する。例えば、スキャナの写真ボタンが押下された場合は所望の画像編集用アプリケーション、文書ボタンが押下された場合は所望の文書編集用アプリケーション、メールボタンが押下された場合は所望の電子メールアプリケーションをそれぞれ設定したりする。これにより、スキャンした画像データを所望のアプリケーションで編集や加工、メール送信といった各種用途に応じたアプリケーションを設定する。また、ユーザがスキャナドライバやアプリケーションをインストールしたときに、自動的にアプリケーションを設定してもよい。あるいは、予めインストールされている標準のアプリケーションを初期値として登録してもよい。適用ボタン１２０５はユーザが設定変更した内容を反映させるためのものであり、閉じるボタン１２０６は、デバイス設定ダイアログボックス１２００を閉じるためのものである。
【００６５】
図１３はＭＦＰ１００とＰＣ２００とで疑似プッシュスキャンを行う際のシーケンスを含むフローチャートである。ＰＣ２００のＯＳ６００は、サンドボックス技術に対応した高いセキュリティを備えたＯＳとする。また、スキャンアプリケーション５００やスキャナドライバ７００は、サンドボックス化したプログラムとする。
【００６６】
ＯＳ６００は、デバイス検出部６０２によりＭＦＰ１００が検出されると、ＭＦＰ１００に対応したスキャナドライバ７００をスキャナドライバ起動制御部６０３により起動させる（Ｓ１３０１）。そしてＯＳ６００はスキャナドライバ７００に対し、デバイス接続コマンドを発行してＭＦＰ１００との接続の確立を要求する（Ｓ１３０２）。そして、ＭＦＰ１００でボタンイベントが発生した場合に当該ボタンイベントを受信するためのボタン監視要求コマンドをスキャナドライバ７００に対し発行する（Ｓ１３０３）。
【００６７】
スキャナドライバ７００は、起動後にボタン監視要求コマンドを受信すると、ボタンイベント監視部７０３によりＭＦＰ１００のボタンイベントを監視するための周期的なポーリングを行う。ＭＦＰ１００の操作パネル４００上でユーザの操作により読み取り開始のためのキーが操作されるとスキャナドライバ７００のボタンイベント監視部７０３はこのボタンイベントを検知する。そして、イベント情報取得部７０４は検知されたボタンイベントに対応したイベント情報を取得し、ＳＬ通信制御部７０１はＳＬ６０１にイベント情報を通知する（Ｓ１３０４）。イベント情報の設定内容には、イベントの種類として写真や文書、メールなどの設定値が格納されている。また、スキャナドライバ７００は疑似プッシュスキャンを行う際の原稿種類（Ｓ１３０４におけるイベント情報の設定）に応じたスキャン設定を内部的（スキャナドライバ７００が参照可能なメモリ２０４内の領域）に保持する。
【００６８】
ＳＬ６０１は、イベント情報の通知を受けるとスキャナドライバ７００にスキャン要求コマンドを発行する（Ｓ１３０５）。スキャナドライバ７００はスキャン要求コマンドを受信すると、上記のように内部的に保持したスキャン設定を基にＭＦＰ１００のスキャナ部１０２にスキャンを実行させる。そしてスキャンによって得た画像データの取得を画像データ取得部７０２により行い、指定されたファイル形式の画像ファイルを作成する。ＭＦＰ１００の操作パネル４００上で画像データの保存フォルダやファイル名などを設定することができない場合は、スキャナドライバ７００の初期値（デフォルト設定）に従って画像ファイルを作成してもよい。そして、スキャナドライバ７００は、画像ファイルの作成が完了すると、ＳＬ６０１にスキャン完了の通知を行う（Ｓ１３０６）。
【００６９】
ＳＬ６０１は、スキャン完了の通知を受けるとスキャナドライバ７００がＳ１３０６で作成した画像ファイルを指定して、アプリケーション登録部６０４でイベントの種類に関連付けられたスキャンアプリケーション５００を起動させる（Ｓ１３０７）。これにより起動されたスキャンアプリケーション５００には指定された画像ファイルが供給される。起動されたスキャンアプリケーション５００は、この画像ファイルを示す画像を表示して、ユーザからの編集や加工、メール送信などの指示を受け付ける。そして、ＳＬ６０１は、スキャン完了通知を行ったスキャナドライバ７００に対して、ボタンポーリングを再開するために、ボタン監視要求コマンドを発行する（Ｓ１３０８）。
【００７０】
尚、本実施形態では、スキャナドライバ７００がＭＦＰ１００から取得した画像データに基づき画像ファイルを作成しているが、ＭＦＰ１００において画像ファイルを作成し、スキャナドライバ７００がそれを取得するようにしてもよい。
【００７１】
以上のように、本実施形態ではスキャナドライバ７００はボタンイベントを検知したときにＭＦＰ１００の操作パネル４００におけるイベントの内容をＯＳ６００に通知するとともに、操作パネル４００で設定されているスキャン設定を保持しておく。そして、スキャナドライバ７００は保持していたスキャン設定に従ってＭＦＰ１００によるスキャンを実行させる。イベントの通知を受けたＯＳ６００はスキャナドライバ７００からスキャンによって得た画像データを取得するとともにイベントに応じたスキャンアプリケーション５００を起動し、取得した画像ファイルを渡す。スキャナドライバ７００は自身が保持しているスキャン設定でスキャンを実行させればよいので、サンドボックス技術などに対応したＯＳ上であっても、スキャナの簡単操作での疑似プッシュスキャン機能をユーザに提供することができる。
【００７２】
また、スキャナドライバ７００へのスキャン要求の指示はＯＳ６００のスキャンライブラリが行うため、プッシュイベントで起動するアプリケーションはスキャナドライバに指示する機能を備えなくともよい。従って、ユーザは多くのアプリケーションを利用することができる。
【００７３】
＜実施形態３＞
次に、実施形態３について説明する。実施形態３では、プッシュスキャンのイベント発生時にＯＳから起動されたスキャンアプリケーションが、スキャナドライバに対してイベント発生有無を問い合わせて、イベント情報を受け取るものとする。尚、実施形態３におけるＭＦＰとＰＣ、構成概略、操作パネルのレイアウト構成は、図１〜図４で説明したものと同様の構成を用いることができるため、ここではその説明については省略する。
【００７４】
また、スキャン設定、ＰＣにおけるソフトウェア構成、プッシュイベントで起動するアプリケーションの選択などの例は、図５〜図８、１２で説明したものと同様の構成を用いることができるため、それらについての説明は省略する。
【００７５】
図１４はＭＦＰ１００とＰＣ２００とで疑似プッシュスキャンを行う際のシーケンスを含むフローチャートである。ＰＣ２００のＯＳ６００は、サンドボックス技術に対応した高いセキュリティを備えたＯＳとする。また、スキャンアプリケーション５００やスキャナドライバ７００は、サンドボックス化したプログラムとする。
【００７６】
ＯＳ６００は、デバイス検出部６０２によりＭＦＰ１００が検出されると、ＭＦＰ１００に対応したスキャナドライバ７００をスキャナドライバ起動制御部６０３により起動させる（Ｓ１４０１）。そしてＯＳ６００はスキャナドライバ７００に対し、デバイス接続コマンドを発行してＭＦＰ１００との接続の確立を要求する（Ｓ１４０２）。そして、ＭＦＰ１００でボタンイベントが発生した場合に当該ボタンイベントを受信するためのボタン監視要求コマンドをスキャナドライバ７００に対し発行する（Ｓ１４０３）。
【００７７】
スキャナドライバ７００は、起動後にボタン監視要求コマンドを受信すると、ボタンイベント監視部７０３によりＭＦＰ１００のボタンイベントを監視するための周期的なポーリングを行う。ＭＦＰ１００の操作パネル４００上でユーザの操作により読み取り開始のためのキーが操作されるとスキャナドライバ７００のボタンイベント監視部７０３はボタンイベントを検知する。そして、イベント情報取得部７０４は検知されたボタンイベントに対応したイベント情報を取得し、ＳＬ通信制御部７０１はＳＬ６０１にイベント情報を通知する（Ｓ１４０４）。イベント情報の設定内容には、イベントの種類として操作パネル４００で設定されたスキャン設定値が格納されている。また、スキャナドライバ７００はプッシュスキャンを行う際の原稿種類に応じたスキャン設定（Ｓ１４０４におけるイベント情報の設定）とイベント発生の日時情報（発生時間）を内部的（スキャナドライバ７００が参照可能なメモリ２０４内の領域）に保持する。イベント発生の日時情報はイベント情報を取得する際にＭＦＰ１００から取得してもよいし、ＰＣ２００においてイベントを検知したときにＰＣ２００内の時計機能から取得してもよい。
【００７８】
ＳＬ６０１は、イベント情報の通知を受けるとアプリケーション起動制御部６０５により、アプリケーション登録部６０４で当該イベントと対応付けて登録されているスキャンアプリケーション５００を起動させる（Ｓ１４０５）。スキャンアプリケーション５００は、ＳＬ６０１から起動されるとスキャナドライバ７００に対しデバイスリストの取得コマンドを発行して、スキャナドライバ７００で対応しているＰＣ２００に接続中のデバイスのリストを取得する（Ｓ１４０６）。このとき、スキャンアプリケーション５００は起動時の日時情報（起動時間）を内部的に保持する。日時情報は上記と同様に取得するものとする。そして、デバイスリストから選択したデバイス（ここではＭＦＰ１００とする）用のスキャナドライバ７００にスキャン設定の取得コマンドを発行し、その応答としてスキャン設定を取得する（Ｓ１４０７）。ここで取得されるスキャン設定の内容は、光学解像度や読取設定可能領域、ＡＤＦやフィルムスキャンのサポート有無などのデバイス性能情報が含まれる。ここで取得されるスキャン設定には、更に、図１６に示すような疑似プッシュスキャンを行う際の原稿種類に応じたスキャン設定とイベント発生の日時情報なども含まれる。なお、スキャン設定の取得コマンドを受けたスキャナドライバ７００はＳ１４０４でイベント情報を取得していれば、このイベント情報をスキャン設定に付加する。
【００７９】
スキャンアプリケーション５００は、Ｓ１４０７で取得したスキャン設定の内容を参照して、図１５に示す処理の流れでＳ１４０６において取得した情報が示すデバイスがプッシュスキャンのイベントを発生させたデバイスであるか判定する（１４５０）。まず、スキャンアプリケーション５００は、取得したスキャン設定の内容を参照して（Ｓ１５０１）、プッシュスキャンのイベント情報が含まれているかを判定する（Ｓ１５０２）。イベント情報が含まれていない場合は、プッシュスキャンを発生させたデバイスでないと判断して、本判定処理を終了する（Ｓ１５０３）。イベント情報が含まれている場合は、イベント発生時の日時情報を取得し（Ｓ１５０４）、また内部的に保持しておいたアプリケーション起動時の日時情報を取得する（Ｓ１５０５）。そして、イベント発生日時とアプリケーション起動日時とを比較して（Ｓ１５０６）、これらの差が所定時間内であるかを判定する（Ｓ１５０７）。所定時間内でないと判定した場合、例えば１時間以上も前に発生したイベントであった場合などは、プッシュスキャンが発生したデバイスでないと判断して、本判定処理を終了する（Ｓ１５０３）。所定時間内であると判定した場合、例えば１秒前に発生したイベントであった場合などは、プッシュスキャンが発生したデバイスであると判断して、本判定処理を終了する（Ｓ１５０８）。なお、所定時間は固定的に決められたものとしてもよいし、ユーザが適宜決められるようにしてもよい。
【００８０】
イベント判定処理１４５０で、Ｓ１４０６で取得した情報が示すデバイスがプッシュスキャンを発生させたデバイスであると判断されると（１４５１のＹｅｓ）Ｓ１４０８に進む。Ｓ１４０８では、スキャンアプリケーション５００は、疑似プッシュスキャン処理を行うために、スキャナドライバ７００に対しＳ１４０７で取得したスキャン設定の内容を基にスキャン設定の指定コマンドを発行する。
【００８１】
スキャンアプリケーション５００はこの指定コマンドに対する成功応答をスキャナドライバ７００から受けると、当該スキャン設定に基づくスキャン要求コマンドをスキャナドライバ７００に対し発行する（Ｓ１４０９）。スキャナドライバ７００はこのスキャン要求コマンドを受信すると、指定されたスキャン設定を基にＭＦＰ１００から当該スキャン設定に基づき行われたスキャンに対応する画像データの取得を行い、指定されたファイル形式の画像ファイルを作成する。スキャナドライバ７００は、画像ファイルの作成が完了すると、スキャンアプリケーション５００にスキャン完了の通知を行うとともに画像ファイルの送信を行う（Ｓ１４１０）。
【００８２】
スキャンアプリケーション５００は、スキャン完了の通知と画像ファイルを受けるとスキャナドライバ７００が作成した画像ファイルを画面表示させる。例えば、画像はスキャンアプリケーション５００のメインダイアログボックスにサムネイル画像などとして表示してもよいし、ＯＳ標準のファイル管理画面で画像ファイルとして表示してもよい。ＳＬ６０１は、スキャン完了通知を行ったスキャナドライバ７００に対して、ボタンポーリングを再開させるために、ボタン監視要求コマンドを発行する（Ｓ１４１１）。
【００８３】
イベント判定処理１４５０で、Ｓ１４０６で取得した情報が示すデバイスがプッシュスキャンを発生させたデバイスでないと判断されると（１４５１のＮｏ）、スキャンアプリケーション５００はスキャン設定の指定コマンドやスキャン要求コマンドの発行はしない。なお、Ｓ１４０６で取得したデバイスリストに複数のデバイスが含まれていた場合は、各々のデバイスに対して、イベント判定処理を行う。あるいは、事前にユーザが登録したデバイスのみを対象としてイベント判定処理を行ってもよい。
【００８４】
イベント判定処理１４５０では、イベント発生日時とアプリケーション起動日時を比較しているが、イベント発生時点でスキャンアプリケーション５００が既に起動していた場合は、次のようにしてもよい。即ち、アプリケーション起動日時に代え、ＳＬ６０１から再起動などの起動指示の通知を受け取った日時でイベント発生日時と比較してもよい。
【００８５】
以上のように、本実施形態ではスキャナドライバ７００はボタンイベントを検知したときにＭＦＰ１００の操作パネル４００におけるイベントの内容と、イベントが発生した日時とを保持する。スキャンアプリケーション５００はスキャナドライバ７００におけるイベント発生の有無を確認するとともに、イベント発生日時とアプリケーション起動日時または起動指示を受け取った日時とを比較し、これらが所定期間内かを確認する。そして所定期間内であった場合に操作パネル４００で指定された内容に従ったスキャンを実行させる。これによって、サンドボックス技術などの高いセキュリティを備えたＯＳ上であっても、スキャナの簡単操作での疑似プッシュスキャン機能を汎用的なアプリケーションを使用してユーザに提供することができる。なお、以上の実施形態において日時情報を用いるものとしたが、日付は考慮せずに、時間情報を用いるようにしてもよい。
【００８６】
＜実施形態４＞
上記実施形態１では、ＭＦＰ１００の操作パネルで設定されたスキャン設定に従ってそのまま疑似プッシュスキャンを実行するものとした。即ち、図９のＳ９０７では、ＭＦＰ１００の操作パネル４００で設定されたスキャン設定と、スキャンアプリケーション５００におけるスキャン設定とに矛盾がない（不都合が生じない）場合について述べた。しかしながら、場合によっては上記スキャン設定に矛盾が生ずることがある。以下にその場合の例について説明する。
【００８７】
図１７は、スキャン設定の指定コマンド（Ｓ９０７）において、ＭＦＰ１００の操作パネル４００上でユーザが指定したスキャン設定と異なる設定が指定された場合に表示装置２０５で表示される画面例である。スキャン設定変更確認ダイアログボックス１７００のスキャン設定情報フィールド１７０１は、ＭＦＰ１００の操作パネル４００上で指定したスキャン設定とスキャンアプリケーション５００が変更したスキャン設定を表示する。動作選択フィールド１７０２は、スキャンアプリケーション５００の設定を優先するか、ＭＦＰ１００の操作パネル４００の設定を優先するかを選択するフィールドである。チェックボックス１７０３は、次回以降の疑似プッシュスキャンにおいて本ダイアログボックスを表示するか否かを指定するためのものである。ＯＫボタン１７０４は選択した内容を保持して、動作選択フィールド１７０２で指定された動作を実行させるためのものである。
【００８８】
図１７は、例えば、スキャンアプリケーション５００がＯＣＲ用ソフトウェアである場合に表示される。ＯＣＲ用ソフトウェアはスキャンする画像データの解像度は文字認識精度を確保するため、３００ｄｐｉ以上の解像度を要求することがある。仮に、ＭＦＰ１００の操作パネル４００で指定した解像度が７５ｄｐｉであったとしてスキャンアプリケーション５００側でスキャン設定を変更しない場合、スキャン後の画像データは７５ｄｐｉのものがアプリケーションに提供されてしまう。そのためアプリケーションが適切に処理できずにエラーが発生することがあり、これではユーザの利便性を損ねてしまう。そこで、本ダイアログボックスを表示することで、ユーザに変更内容を通知すると同時に次の動作を選択してもらうことで、ユーザの利便性を向上することができる。
【００８９】
スキャン設定変更確認ダイアログボックス１７００は、スキャナドライバ７００がＰＣの表示装置２０５に表示させてもよいし、ＭＦＰ１００の表示部４０１に表示させてもよい。あるいは、表示装置２０５と表示部４０１の両方に表示してもよい。図１８は、ＭＦＰ１００の表示部４０１にスキャン設定変更確認ダイアログボックス１７００を表示する際のシーケンスを含むフローチャートである。このフローチャートは図９においてＳ９０６までの処理を行った以降の処理を示している。
【００９０】
スキャンアプリケーション５００は、疑似プッシュスキャンを行うために、スキャン設定の指定コマンドを発行し（Ｓ１８０１）、当該コマンドの成功応答を受け取ると、スキャン要求コマンドを発行する（Ｓ１８０２）。スキャナドライバ７００はスキャン要求コマンドを受信すると、スキャンアプリケーション５００から指定されたスキャン設定値とＭＦＰ１００の操作パネル４００上でユーザが指定したスキャン設定値を照合する（１８５０）。スキャン設定値に変更があると判定されるとＭＦＰ１００に画面情報指定コマンドを発行して表示内容を指定する（Ｓ１８０３）。さらに、画面表示要求コマンドを発行して（Ｓ１８０４）、ＭＦＰ１００の表示部４０１にスキャン設定変更確認ダイアログボックス１７００を表示させる。
【００９１】
スキャナドライバ７００は、ステータス確認コマンドを定期的に発行することで、ＭＦＰ１００の操作パネル４００上での操作イベントを問い合わせる（Ｓ１８０５）。ユーザから次の動作の選択指示があった場合、スキャナドライバ７００は選択指示の内容により、使用すべきスキャン設定値を決定する。即ち、スキャンアプリケーション５００から指定されたスキャン設定値を使用するか、ＭＦＰ１００の操作パネル４００上でユーザが指定したスキャン設定値を使用するかを決定する（１８５１）。スキャナドライバ７００は決定したスキャン設定値を基に読取設定コマンドを発行し（Ｓ１８０６）、読取要求コマンドによりＭＦＰ１００にスキャンをさせて得られる画像データを取得する（Ｓ１８０７）。スキャナドライバ７００は指定されたファイル形式の画像ファイルを作成すると、スキャンアプリケーション５００にスキャン完了の通知を行う（Ｓ１８０８）。
【００９２】
本実施形態では、操作パネル４００で設定されたスキャン設定とスキャンアプリケーション５００で設定されているスキャン設定とが異なる場合に限らない。操作パネル４００で設定されたスキャン設定での画像取得をスキャンアプリケーション５００が行えない場合にも適用可能である。
【００９３】
以上のように本実施形態では、実施形態１で述べた効果に加え、操作パネル４００によるスキャン設定とスキャンアプリケーション５００での設定とに矛盾がある場合に、適切に処理を行うことが可能となる。
【００９４】
なお、以上の実施形態では、ＰＣ２００に接続されたスキャナを用いて疑似プッシュスキャンを実行させる例について説明したが、ＰＣ２００とスキャナとが一体化されたものとしてもよい。また、画像データの入力を、原稿上の画像をスキャンするスキャナとしたが、デジタルカメラによる撮影など、他の方式での入力としてもよい。また、以上の実施形態は適宜融合させてもよい。
【００９５】
また、以上の実施形態は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータを連動させて実行させてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部または全部をハードウェアによって実現するようにしてもよい。
【図１】
2014017660.tif 000003
【図２】
2014017660.tif 000004
【図３】
2014017660.tif 000005
【図４】
2014017660.tif 000006
【図５】
2014017660.tif 000007
【図６】
2014017660.tif 000008
【図７】
2014017660.tif 000009
【図８】
2014017660.tif 000010
【図９】
2014017660.tif 000011
【図１０】
2014017660.tif 000012
【図１１】
2014017660.tif 000013
【図１２】
2014017660.tif 000014
【図１３】
2014017660.tif 000015
【図１４】
2014017660.tif 000016
【図１５】
2014017660.tif 000017
【図１６】
2014017660.tif 000018
【図１７】
2014017660.tif 000019
【図１８】
2014017660.tif 000020