(57)【要約】【課題】開発コストや保守コストを抑制することができるアプリケーションプログラム等を提供すること。【解決手段】第１アプリケーションは、画像処理装置に画像処理を実行させるための第１命令情報を、共通記憶領域に記憶させる。第２アプリケーションは、第１命令情報が共通記憶領域に記憶されることに応じて、画像処理を実行することを指示する第２命令情報を画像処理装置へ出力する。第２アプリケーションは、第２命令情報に基づいて画像処理装置で画像処理された画像データを画像処理装置から取得することに応じて取得した画像データを共通記憶領域に記憶させる。第１アプリケーションは、第１命令情報に基づいて画像処理装置で画像処理された画像データが共通記憶領域に記憶されることに応じて、共通記憶領域内の画像データにアクセスし、画像データに基づいた表示画像を表示部に表示させる。【選択図】図４
2015011448.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置と画像データを通信することが可能な情報処理装置に読込まれるアプリケーションプログラムであって、
前記情報処理装置は、
プロセッサと、
共通記憶領域を提供する記憶部と、
表示部と、
を備えており、
前記アプリケーションプログラムには、第１アプリケーションと、第２アプリケーションと、が含まれており、
前記第１アプリケーションは、前記画像処理装置を制御するためのドライバプログラムが実装されていないアプリケーションであり、
前記第２アプリケーションは、前記ドライバプログラムが実装されているアプリケーションであり、
前記第１アプリケーションは、前記画像処理装置および前記第２アプリケーションと前記画像データの受け渡しをすることができないアプリケーションであり、
前記第２アプリケーションは、前記画像処理装置と前記画像データの受け渡しをすることが可能なアプリケーションであり、
前記第１アプリケーションと前記第２アプリケーションとは、直接に通信することが不可能とされており、
前記第１アプリケーションおよび前記第２アプリケーションは、前記共通記憶領域にアクセスすることが可能とされており、
前記第１アプリケーションは、前記画像処理装置に画像処理を実行させるための第１命令情報を、前記共通記憶領域に記憶させる第１記憶制御手段として前記プロセッサを機能させ、
前記第２アプリケーションは、
前記第１記憶制御手段によって前記第１命令情報が前記共通記憶領域に記憶されることに応じて、前記画像処理を実行することを指示する第２命令情報を前記画像処理装置へ出力する第１出力制御手段と、
前記第２命令情報に基づいて前記画像処理装置で画像処理された画像データを前記画像処理装置から取得することに応じて、取得した前記画像データを前記共通記憶領域に記憶させる第２記憶制御手段と、
して前記プロセッサを機能させ、
前記第１アプリケーションは、前記第１命令情報に基づいて前記画像処理装置で画像処理された画像データが前記共通記憶領域に記憶されることに応じて、前記共通記憶領域内の前記画像データにアクセスし、前記画像データに基づいた表示画像を前記表示部に表示させる第１表示制御手段として前記プロセッサをさらに機能させることを特徴とするアプリケーションプログラム。
【請求項２】
前記第２アプリケーションは、前記第１出力制御手段が前記第２命令情報を前記画像処理装置へ出力することに応じて、前記画像処理装置で前記画像処理を実行中であることを示す処理情報を前記共通記憶領域に記憶させる第３記憶制御手段として前記プロセッサをさらに機能させ、
前記第１表示制御手段は、前記処理情報が前記共通記憶領域に記憶されることに応じて、前記画像処理装置で前記画像処理を実行中であることを示す画像を前記表示部に表示させることを特徴とする請求項１に記載のアプリケーションプログラム。
【請求項３】
前記第２アプリケーションは、前記第１記憶制御手段によって前記第１命令情報が前記共通記憶領域に記憶されることに応じて、前記画像処理装置が前記画像処理を実行可能な状態であるか否かを確認し、前記画像処理装置が前記画像処理を実行できない状態である場合に、前記画像処理装置が前記画像処理を実行することができない状態であることを示す装置情報を前記共通記憶領域に記憶させる第４記憶制御手段として前記プロセッサをさらに機能させ、
前記第１表示制御手段は、前記装置情報が前記共通記憶領域に記憶されることに応じて、前記画像処理装置で前記画像処理を実行できないことを示す画像を前記表示部に表示させることを特徴とする請求項１または２に記載のアプリケーションプログラム。
【請求項４】
前記第１アプリケーションは、
前記画像処理の各種の処理設定の入力を受け付ける設定受付画面を前記表示部に表示させ、前記処理設定の入力を受け付ける入力受付手段と、
前記入力受付手段で入力が受け付けられた前記処理設定の内容を表す設定情報を、前記共通記憶領域に記憶させる第５記憶制御手段と、
して前記プロセッサをさらに機能させ、
前記第１出力制御手段は、前記共通記憶領域に記憶されている前記設定情報に基づく前記画像処理を実行することを指示する前記第２命令情報を生成して前記画像処理装置へ出力することを特徴とする請求項１〜３の何れか１項に記載のアプリケーションプログラム。
【請求項５】
前記第１記憶制御手段は、前記第１表示制御手段が前記表示画像を前記表示部に表示させた後に、前記第１命令情報を前記共通記憶領域から削除することを特徴とする請求項１〜４の何れか１項に記載のアプリケーションプログラム。
【請求項６】
前記画像処理は、原稿を読み取って前記画像データを生成するスキャン処理であることを特徴とする請求項１〜５の何れか１項に記載のアプリケーションプログラム。
【請求項７】
画像処理装置と画像データを通信することが可能な情報処理装置に読込まれるアプリケーションプログラムであって、
前記情報処理装置は、
プロセッサと、
共通記憶領域を提供する記憶部と、
表示部と、
を備えており、
前記アプリケーションプログラムには、第１アプリケーションと、第２アプリケーションと、が含まれており、
前記第１アプリケーションは、前記画像処理装置を制御するためのドライバプログラムが実装されていないアプリケーションであり、
前記第２アプリケーションは、前記ドライバプログラムが実装されているアプリケーションであり、
前記第１アプリケーションは、前記画像処理装置および前記第２アプリケーションと前記画像データの受け渡しをすることができないアプリケーションであり、
前記第２アプリケーションは、前記画像処理装置と前記画像データの受け渡しをすることが可能なアプリケーションであり、
前記第１アプリケーションと前記第２アプリケーションとは、直接に通信することが不可能とされており、
前記第１アプリケーションおよび前記第２アプリケーションは、前記共通記憶領域にアクセスすることが可能とされており、
前記第１アプリケーションは、画像処理を実行した画像データを前記第２アプリケーションに対して出力することを前記画像処理装置へ命令するための第３命令情報を、前記画像処理装置へ出力する第２出力制御手段として前記プロセッサを機能させ、
前記第２アプリケーションは、前記第３命令情報に基づいて前記画像処理装置で画像処理された画像データである特定画像データを前記画像処理装置から取得することに応じて、前記特定画像データを前記共通記憶領域に記憶させる第６記憶制御手段として前記プロセッサを機能させ、
前記第１アプリケーションは、前記特定画像データが前記共通記憶領域に記憶されることに応じて、前記共通記憶領域内の前記特定画像データにアクセスし、前記特定画像データに基づいた表示画像を前記表示部に表示させる第２表示制御手段として前記プロセッサをさらに機能させることを特徴とするアプリケーションプログラム。
【請求項８】
前記第６記憶制御手段は、前記特定画像データを識別するための識別情報を、前記特定画像データに対応付けて前記共通記憶領域に記憶させ、
前記第２表示制御手段は、前記識別情報に基づいて、前記共通記憶領域内に記憶されている各種のデータのうちから前記特定画像データを識別してアクセスすることを特徴とする請求項７に記載のアプリケーションプログラム。
【請求項９】
前記第２出力制御手段は、前記第３命令情報を前記画像処理装置へ出力した出力時刻を前記記憶部に記憶させ、
前記第２表示制御手段は、前記出力時刻以降に前記共通記憶領域内に記憶された各種のデータのうちから前記特定画像データを識別してアクセスすることを特徴とする請求項７または８に記載のアプリケーションプログラム。
【請求項１０】
前記第３命令情報は、前記特定画像データを生成したことを通知する通知情報を前記第２アプリケーションに対して出力することを、前記画像処理装置へ命令する情報であり、
前記第６記憶制御手段は、
前記画像データとともに前記通知情報を前記画像処理装置から取得した場合には、取得した前記画像データを前記特定画像データとして前記共通記憶領域に記憶させ、
前記通知情報を前記画像処理装置から取得しなかった場合には、取得した前記画像データを前記特定画像データ以外のデータとして前記記憶部に記憶させることを特徴とする請求項７〜９の何れか１項に記載のアプリケーションプログラム。
【請求項１１】
前記第２表示制御手段は、
前記第２出力制御手段が前記第３命令情報を前記画像処理装置へ出力することに応じて、前記画像処理装置での前記画像処理が完了したか否かを前記画像処理装置へ問い合わせ、
前記画像処理が完了したことを示す情報が取得されることに応じて、前記共通記憶領域内の前記特定画像データにアクセスすることを特徴とする請求項７〜１０の何れか１項に記載のアプリケーションプログラム。
【請求項１２】
前記第１アプリケーションは、
前記第２出力制御手段が前記第３命令情報を前記画像処理装置へ出力することに応じて、前記画像処理装置で前記画像処理を実行中であるか否かを前記画像処理装置へ問い合わせ、
前記画像処理を実行中であることを示す情報が取得される場合には、前記画像処理装置で前記画像処理を実行中であることを示す画像を前記表示部に表示させる第３表示制御手段として前記プロセッサをさらに機能させることを特徴とする請求項７〜１１の何れか１項に記載のアプリケーションプログラム。
【請求項１３】
前記第１アプリケーションは、
前記第２出力制御手段が前記第３命令情報を前記画像処理装置へ出力することに応じて、前記画像処理装置が前記画像処理を実行可能な状態であるか否かを前記画像処理装置へ問い合わせ、
前記画像処理を実行することが不可能であることを示す情報が取得される場合には、前記画像処理装置が前記画像処理を実行できない状態であることを示す画像を前記表示部に表示させる第４表示制御手段として前記プロセッサをさらに機能させることを特徴とする請求項７〜１２の何れか１項に記載のアプリケーションプログラム。
【請求項１４】
前記画像処理は、原稿を読み取って前記画像データを生成するスキャン処理であることを特徴とする請求項７〜１３の何れか１項に記載のアプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載されている技術は、画像処理装置に画像処理を実行させることができるアプリケーションプログラムに関する。
【背景技術】
【０００２】
Ｗｉｎｄｏｗｓ８（登録商標）の新しいユーザインターフェースでは、従来のＷｉｎｄｏｗｓ（登録商標）のＯＳとは全く異なるコンセプトが採用されている。Ｗｉｎｄｏｗｓ８（登録商標）用のアプリケーション（以下、特定アプリケーションと呼ぶ）は、個々のアプリケーションのセキュリティ性が向上されている。このセキュリティ性の向上により、特定アプリケーションは、従来のＷｉｎｄｏｗｓ（登録商標）で動作する従来のアプリケーションと、通信することができない。また、関連する技術が、特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１１２２３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
多機能機などの画像処理装置にスキャン等の画像処理を実行させることができる特定アプリケーションが、必要とされている。特定アプリケーションを用いて画像処理装置に画像処理を実行させるためには、画像処理ドライバを特定アプリケーションが使用できる状態にある必要がある。しかし、特定アプリケーションは従来のアプリケーションと通信することができないため、従来のアプリケーションに実装されている画像処理ドライバを、特定アプリケーションが使用することは困難である。また、特定アプリケーションと従来のアプリケーションとの各々に画像処理ドライバを実装する場合には、アプリケーションの開発コストや保守コストが増大してしまう問題がある。
【課題を解決するための手段】
【０００５】
本明細書に記載されているアプリケーションプログラムは、画像処理装置と画像データを通信することが可能な情報処理装置に読込まれるアプリケーションプログラムであって、情報処理装置は、プロセッサと、共通記憶領域を提供する記憶部と、表示部と、を備えており、アプリケーションプログラムには、第１アプリケーションと、第２アプリケーションと、が含まれており、第１アプリケーションは、画像処理装置を制御するためのドライバプログラムが実装されていないアプリケーションであり、第２アプリケーションは、ドライバプログラムが実装されているアプリケーションであり、第１アプリケーションは、画像処理装置および第２アプリケーションと画像データの受け渡しをすることができないアプリケーションであり、第２アプリケーションは、画像処理装置と画像データの受け渡しをすることが可能なアプリケーションであり、第１アプリケーションと第２アプリケーションとは、直接に通信することが不可能とされており、第１アプリケーションおよび第２アプリケーションは、共通記憶領域にアクセスすることが可能とされており、第１アプリケーションは、画像処理装置に画像処理を実行させるための第１命令情報を、共通記憶領域に記憶させる第１記憶制御手段としてプロセッサを機能させ、第２アプリケーションは、第１記憶制御手段によって第１命令情報が共通記憶領域に記憶されることに応じて、画像処理を実行することを指示する第２命令情報を画像処理装置へ出力する第１出力制御手段と、第２命令情報に基づいて画像処理装置で画像処理された画像データを画像処理装置から取得することに応じて、取得した画像データを共通記憶領域に記憶させる第２記憶制御手段と、してプロセッサを機能させ、第１アプリケーションは、第１命令情報に基づいて画像処理装置で画像処理された画像データが共通記憶領域に記憶されることに応じて、共通記憶領域内の画像データにアクセスし、画像データに基づいた表示画像を表示部に表示させる第１表示制御手段としてプロセッサをさらに機能させることを特徴とする。
【０００６】
本明細書に記載されているアプリケーションプログラムによれば、直接に通信することが不可能な第１アプリケーションと第２アプリケーションとの間の通信を、共通記憶領域を介して実行することが可能となる。これにより、第１アプリケーションは、第２アプリケーションに実装されているドライバプログラムを使用することが可能となる。従って、第１アプリケーションは、画像処理の実行命令を画像処理装置へ出力する処理や、画像データを画像処理装置から取得する処理などを、第２アプリケーションのドライバプログラムを介して実行することが可能となる。以上より、第２アプリケーションに実装されているドライバプログラムを、第１アプリケーションと第２アプリケーションとで共用することが可能となるため、アプリケーションの開発コストや保守コストが増大してしまう事態を防止することができる。
【０００７】
本明細書に記載されているアプリケーションプログラムによれば、画像処理装置で画像処理を実行中であることを、第１アプリケーションに表示させることができる。これにより、画像処理の進捗状況をユーザに報知することができるため、利便性を高めることが可能となる。
【０００８】
本明細書に記載されているアプリケーションプログラムによれば、画像処理装置が画像処理を実行できない状態であることを、第１アプリケーションに表示させることができる。よって、利便性を高めることが可能となる。
【０００９】
本明細書に記載されているアプリケーションプログラムによれば第１アプリケーションで入力を受け付けた処理設定に基づいて、画像処理装置に画像処理を実行させることが可能となる。よって、利便性を高めることが可能となる。
【００１０】
本明細書に記載されているアプリケーションプログラムによれば、不要な情報が記憶部に残存してしまう事態を防止することが可能となる。
【００１１】
本明細書に記載されているアプリケーションプログラムによれば、第１アプリケーションを用いて画像処理装置にスキャン処理を実行させ、生成された画像データを第１アプリケーションを用いて表示することが可能となる。
【００１２】
本明細書に記載されているアプリケーションプログラムによれば、識別情報を用いることで、特定画像データを容易に識別することが可能となる。これにより、特定画像データにアクセスする処理の処理負担を軽減することができる。
【００１３】
本明細書に記載されているアプリケーションプログラムによれば、出力時刻を用いることで、特定画像データを容易に識別することが可能となる。これにより、特定画像データにアクセスする処理の処理負担を軽減することができる。
【００１４】
本明細書に記載されているアプリケーションプログラムによれば、第１アプリケーションから出力された命令に従って処理された特定画像データと、その他の命令に従って処理された画像データとを区別することが可能となる。これにより、特定画像データにアクセスする処理の処理負担を軽減することができる。
【００１５】
本明細書に記載されているアプリケーションプログラムによれば、画像処理装置での画像処理が完了したことに応じて、特定画像データにアクセスすることができる。これにより、不要なアクセス処理が実行されてしまうことを防止することができる。
【図面の簡単な説明】
【００１６】
【図１】通信システムのブロック図である。
【図２】デスクトップアプリの動作フローチャートを示す図である。
【図３】ストアアプリの動作フローチャートを示す図である。
【図４】第１の動作具体例の説明図である。
【図５】デスクトップアプリの動作フローチャートを示す図である。
【図６】ストアアプリの動作フローチャートを示す図である。
【図７】ＭＦＰの動作フローチャートを示す図である。
【図８】スキャン処理の動作フローチャートを示す図である。
【図９】第２の動作具体例の説明図である。
【発明を実施するための形態】
【実施例１】
【００１７】
＜通信システム１の構成＞
図１に、本願に係る実施形態として例示される通信システム１のブロック図を示す。通信システム１は、情報処理装置１０、ＭＦＰ（Multifunction Peripheralの略）５１、アクセスポイント６２、を備える。情報処理装置１０は、マウスなどのポインティングデバイスを使用するＰＣ（Personal Computerの略）であってもよい。また情報処理装置１０は、タッチパネルにより操作入力を受け付ける、タブレット端末であってもよい。ＭＦＰ５１は、プリンタ機能、スキャナ機能、コピー機能、ファクシミリ機能などを備える多機能周辺装置である。アクセスポイント６２は、既知の中継装置である。
【００１８】
情報処理装置１０とアクセスポイント６２とは、インフラストラクチャーモードの無線ＬＡＮ接続方式により、無線通信２００を行うことが可能とされている。また、ＭＦＰ５１とアクセスポイント６２とは、インフラストラクチャーモードの無線ＬＡＮ接続方式により、無線通信２０１を行うことが可能とされている。なお、無線通信２００および２０１の方式の例としては、例えばＩＥＥＥ８０２．１１ａ／ｂ／ｇの規格で定められる通信方式が挙げられる。
【００１９】
＜情報処理装置１０の構成＞
情報処理装置１０は、ＣＰＵ１１、記憶部１２、無線ＬＡＮ送受信部１５、無線ＬＡＮアンテナ部１６、ボタン入力部１７、タッチパネル１８、を主に備えている。
【００２０】
ＣＰＵ１１は、記憶部１２に記憶されるプログラム２１や、無線ＬＡＮ送受信部１５を介して送受信される各種信号などに従って、各機能の制御を行う。以降、ストアアプリ２１ａやデスクトップアプリ２１ｂやオペレーティングシステム２１ｅなど、プログラムを実行するＣＰＵ１１のことを、単にプログラム名でも記載する場合がある。例えば「ストアアプリ２１ａが」という記載は、「ストアアプリ２１ａを実行するＣＰＵ１１が」を意味する場合がある。なお、記憶部１２は、ＲＡＭ（Random Access Memoryの略）、ＲＯＭ（Read Only Memoryの略）、フラッシュメモリ、ＨＤＤ（ハードディスクドライブの略）などが組み合わされて構成されているとしてもよい。
【００２１】
無線ＬＡＮ送受信部１５は、無線ＬＡＮアンテナ部１６を介して、インフラストラクチャーモードの無線通信２００を行う。そして、無線ＬＡＮ送受信部１５により、各種のデータを構成するデジタル信号が送受信される。ボタン入力部１７は、情報処理装置１０の各機能を実行するためのキーである。タッチパネル１８は、表示装置と入力装置が一体化した装置である。タッチパネル１８は、各種の画像を表示するとともに、指先などの指示体の接触座標を検出することができる。
【００２２】
記憶部１２は、プログラム２１を記憶する。ＣＰＵ１１は、記憶部１２内のプログラム２１に従って処理を実行する。プログラム２１は、ストアアプリケーション２１ａ（以下、ストアアプリ２１ａと記載する）、デスクトップアプリケーション２１ｂ（以下、デスクトップアプリ２１ｂと記載する）、オペレーティングシステム２１ｅ、を含んでいる。
【００２３】
オペレーティングシステム２１ｅは、ストアアプリ２１ａやデスクトップアプリ２１ｂに共通して利用される基本的な機能を提供するプログラムである。本明細書では、オペレーティングシステム２１ｅとして、Ｗｉｎｄｏｗｓ８（登録商標）が用いられる場合を説明する。
【００２４】
ストアアプリ２１ａおよびデスクトップアプリ２１ｂは、スキャン処理や印刷処理などの各種処理をＭＦＰ５１に実行させるためのアプリケーションである。ストアアプリ２１ａは、Ｗｉｎｄｏｗｓ８（登録商標）で導入された新しいアプリケーション実行環境で動作する、新型のアプリケーションである。一方、デスクトップアプリ２１ｂは、Ｗｉｎｄｏｗｓ７（登録商標）以前のアプリケーション実行環境で動作する、旧型のアプリケーションである。ストアアプリ２１ａとデスクトップアプリ２１ｂとは、アプリケーション実行環境が異なるため、直接に通信することが不可能である。従って、ストアアプリ２１ａとデスクトップアプリ２１ｂとは、画像データなどの各種データの受け渡しを、直接行うことができない。
【００２５】
デスクトップアプリ２１ｂには、スキャナドライバ２２が実装されている。スキャナドライバ２２は、ＭＦＰ５１のスキャン処理を制御するために用意されたプログラムである。デスクトップアプリ２１ｂは、スキャナドライバ２２を介して、ＭＦＰ５１との間で、スキャン処理に関する各種のデータ（例：スキャン処理で生成された画像データ）の受け渡しをすることが可能である。一方、ストアアプリ２１ａは、ドライバプログラムが実装されていないアプリケーションである。そのためストアアプリ２１ａは、ＭＦＰ５１との間で、スキャン処理に関する各種のデータの受け渡しをすることができない。
【００２６】
記憶部１２には、共通記憶領域１３が備えられている。共通記憶領域１３は、ストアアプリ２１ａおよびデスクトップアプリ２１ｂが、共にアクセスすることが可能な記憶領域である。共通記憶領域１３は、例えば、「マイピクチャ」などのフォルダ領域であってもよい。共通記憶領域１３内には、後述するように、管理ファイル１４が作成される場合がある。管理ファイル１４は、スキャン処理に関する各種の情報を記憶するファイルである。
【００２７】
＜ＭＦＰ５１の構成＞
ＭＦＰ５１は、ＣＰＵ３２、記憶部３３、無線ＬＡＮ＿Ｉ／Ｆ３４、ボタン入力部３８、パネル３９、プリンタ１９、スキャナ２０、を主に備えている。これらの構成要素は、入出力ポート４３を介して互いに通信可能とされている。
【００２８】
ＣＰＵ３２は、記憶部３３に記憶されるプログラム３１を実行する。記憶部３３は、ＲＡＭ、ＲＯＭ、フラッシュメモリ、ＨＤＤ、ＣＰＵ７２が備えるバッファ、などが組み合わされて構成されている。プログラム３１は、ＯＳ２９等を含んでいる。また記憶部３３は、後述するストアアプリ要求フラグ、などを記憶する。
【００２９】
無線ＬＡＮ＿Ｉ／Ｆ３４は、無線ＬＡＮ方式の無線通信２０１を実行するためのインターフェイスである。ボタン入力部３８は、ＭＦＰ５１の各機能を実行するためのキーである。パネル３９は、ＭＦＰ５１の各種機能情報を表示する。プリンタ１９は、記憶部３３に記憶されている画像データを用いて印刷を実行する部位である。スキャナ２０は、読み取りを実行する部位である。
【００３０】
＜ストアアプリ２１ａの動作＞
実施例１では、ストアアプリ２１ａによるプルスキャンを、デスクトップアプリ２１ｂのプルスキャン機能を用いて実現する動作について説明する。図３を用いて、ストアアプリ２１ａの動作を説明する。図３のフローは、ストアアプリ２１ａが起動されることに応じて開始される。
【００３１】
Ｓ２００においてストアアプリ２１ａは、スキャン設定入力画面をタッチパネル１８に表示させる。スキャン設定入力画面は、ＭＦＰ５１で実行されるスキャン処理に関するスキャン設定（例：解像度）の入力を受け付けるための画面である。Ｓ２０５においてストアアプリ２１ａは、スキャン設定が入力されたか否かを判断する。否定判断される場合（Ｓ２０５：ＮＯ）にはＳ２０５へ戻り、肯定判断される場合（Ｓ２０５：ＹＥＳ）にはＳ２１０へ進む。
【００３２】
Ｓ２１０においてストアアプリ２１ａは、スキャン実行命令の入力を受け付けたか否かを判断する。当該判断は、例えば、タッチパネル１８に表示されているスキャン実行ボタンがタッチされたか否かによって行われてもよい。否定判断される場合（Ｓ２１０：ＮＯ）にはＳ２１０へ戻り、肯定判断される場合（Ｓ２１０：ＹＥＳ）にはＳ２１５へ進む。
【００３３】
Ｓ２１５においてストアアプリ２１ａは、共通記憶領域１３に管理ファイル１４を作成する。管理ファイル１４は、スキャン処理に関する各種の情報を記憶するファイルである。Ｓ２２０においてストアアプリ２１ａは、管理ファイル１４に、第１命令情報およびスキャン設定情報を記憶させる。第１命令情報は、ＭＦＰ５１に対してスキャン処理の実行を命令するための情報である。スキャン設定情報は、Ｓ２０５で入力が受け付けられたスキャン設定の内容を表す情報である。
【００３４】
Ｓ２３０においてストアアプリ２１ａは、スキャン実行命令に基づいて開始されたスキャン処理が、ＭＦＰ５１で実行中であるか否かを判断する。当該判断は、スキャン中であることを示す処理情報が、管理ファイル１４内に記憶されているか否かによって行われてもよい。肯定判断される場合（Ｓ２３０：ＹＥＳ）には、Ｓ２３３へ進む。Ｓ２３３においてストアアプリ２１ａは、ＭＦＰ５１でスキャン処理を実行中であることを示す画像を、タッチパネル１８に表示させる。例えば、「スキャン中」という文字列を含んだ画像を表示させてもよい。Ｓ２３５においてストアアプリ２１ａは、予め定められた一定時間を待機する。そして、一定時間の経過後にＳ２３０へ戻る。
【００３５】
一方、Ｓ２３０において否定判断される場合（Ｓ２３０：ＮＯ）には、Ｓ２４０へ進む。Ｓ２４０においてストアアプリ２１ａは、ＭＦＰ５１に実行させているスキャン処理が完了したか否かを判断する。当該判断は、スキャン処理が完了したことを示すスキャン完了情報が、管理ファイル１４内に記憶されているか否かを、ストアアプリ２１ａが定期的に監視することで行われても良い。そして、管理ファイル１４内にスキャン完了情報が記憶されたことを検出することに応じて、スキャン処理が完了したと判断してもよい。否定判断される場合（Ｓ２４０：ＮＯ）には、Ｓ２６０へ進む。
【００３６】
Ｓ２６０においてストアアプリ２１ａは、スキャン処理に関するエラーが発生しているか否かを判断する。当該判断は、ＭＦＰ５１がスキャン処理を実行することができない状態であることを示す第２のエラー装置情報が、管理ファイル１４内に記憶されているか否かによって行われてもよい。否定判断される場合（Ｓ２６０：ＮＯ）にはＳ２３０へ戻り、肯定判断される場合（Ｓ２６０：ＹＥＳ）にはＳ２６５へ進む。Ｓ２６５においてストアアプリ２１ａは、ＭＦＰ５１でスキャン処理を実行できないことを示す画像を、タッチパネル１８に表示させる。例えば、「スキャンエラー発生」という文字列を含んだ画像を表示させてもよい。そして、Ｓ２５５へ進む。
【００３７】
一方、Ｓ２４０において肯定判断される場合（Ｓ２４０：ＹＥＳ）には、Ｓ２４５へ進む。Ｓ２４５においてストアアプリ２１ａは、スキャン処理によって生成された画像データが存在するか否かを判断する。当該判断は、スキャン画像情報が管理ファイル１４内に記憶されているか否かによって行われてもよい。否定判断される場合（Ｓ２４５：ＮＯ）にはＳ２６５へ進み、肯定判断される場合（Ｓ２４５：ＹＥＳ）にはＳ２５０へ進む。
【００３８】
Ｓ２５０においてストアアプリ２１ａは、スキャン画像情報のパスに従って、共通記憶領域１３内の画像データにアクセスする。そして、画像データによって形成される表示画像を、タッチパネル１８に表示させる。そしてＳ２５５へ進む。Ｓ２５５においてストアアプリ２１ａは、管理ファイル１４を共通記憶領域１３から削除する。これにより、管理ファイル１４に記憶されていた各種情報（第１命令情報、スキャン設定情報、処理情報、スキャン完了情報、スキャン画像情報、など）が削除される。そしてフローが終了する。
【００３９】
＜デスクトップアプリ２１ｂの動作＞
図２を用いて、実施例１に係るデスクトップアプリ２１ｂの動作を説明する。Ｓ１１０においてデスクトップアプリ２１ｂは、ストアアプリ２１ａから第１命令情報が出力されたか否かを判断する。当該判断は、管理ファイル１４内に第１命令情報が記憶されているか否かを、デスクトップアプリ２１ｂが定期的に監視することで行われても良い。そして、管理ファイル１４内に第１命令情報が記憶されたことを検出した場合に、ストアアプリ２１ａから第１命令情報が出力されたと判断してもよい。否定判断される場合（Ｓ１１０：ＮＯ）にはＳ１１０へ戻り、肯定判断される場合（Ｓ１１０：ＹＥＳ）にはＳ１１３へ進む。Ｓ１１３においてデスクトップアプリ２１ｂは、管理ファイル１４に記憶されているスキャン設定情報を読み出す。
【００４０】
Ｓ１１５においてデスクトップアプリ２１ｂは、ＭＦＰ５１の装置状態が、スキャン処理が可能な状態であるか否かを確認する。例えば、装置状態を問い合わせるための第１の問合せ情報を、無線通信２００および２０１を介してＭＦＰ５１へ送信してもよい。そして、ＭＦＰ５１から返信される、装置状態を示す装置情報を受信し、装置情報を解読することで、スキャン処理の可否を判断してもよい。スキャン処理が不可能な場合の例としては、ＭＦＰ５１が故障している場合や、ＭＦＰ５１の本体カバーが空いている場合などが挙げられる。また、第１の問合せ情報をＭＦＰ５１へ送信してから所定時間内に、装置情報がＭＦＰ５１から返信されない場合には、スキャン処理が不可能な状態であると判断してもよい。装置情報が返信されない場合の例としては、ＭＦＰ５１の電源が投入されていない場合が挙げられる。
【００４１】
Ｓ１１５において否定判断される場合（Ｓ１１５：ＮＯ）には、Ｓ１２０へ進む。Ｓ１２０においてデスクトップアプリ２１ｂは、管理ファイル１４に、第１のエラー装置情報を記憶させる。第１のエラー装置情報は、ＭＦＰ５１がスキャン処理を実行できない状態であることを示す情報である。そしてフローを終了する。
【００４２】
一方、Ｓ１１５において肯定判断される場合（Ｓ１１５：ＹＥＳ）には、Ｓ１１６へ進む。Ｓ１１６においてデスクトップアプリ２１ｂは、スキャナドライバ２２に第２命令情報を生成させる。第２命令情報は、共通記憶領域１３に記憶されているスキャン設定情報に基づくスキャン処理の実行を、ＭＦＰ５１へ指示するための情報である。Ｓ１１７においてデスクトップアプリ２１ｂは、スキャナドライバ２２に、第２命令情報をＭＦＰ５１へ出力させる。第２命令情報は、無線通信２００および２０１を介して、ＭＦＰ５１へ出力される。
【００４３】
Ｓ１２５においてデスクトップアプリ２１ｂは、処理情報を管理ファイル１４に記憶させる。処理情報は、ＭＦＰ５１でスキャン処理中であることを示す情報である。
【００４４】
Ｓ１４０においてデスクトップアプリ２１ｂは、第２命令情報によって開始されたスキャン処理が、ＭＦＰ５１で実行中であるか否かを判断する。例えば、スキャン処理の進捗状況を問い合わせるための第２の問合せ情報を、無線通信２００および２０１を介してＭＦＰ５１へ送信してもよい。そして、ＭＦＰ５１から返信される、進捗状況を示す装置情報を受信し、装置情報を解読することで進捗状況を判断してもよい。肯定判断される場合（Ｓ１４０：ＹＥＳ）にはＳ１４５へ進み、デスクトップアプリ２１ｂは、ＭＦＰ５１でスキャン処理中であることを示す処理情報を、管理ファイル１４に記憶させる。そしてＳ１４０へ戻る。一方、否定判断される場合（Ｓ１４０：ＮＯ）には、Ｓ１５０へ進む。
【００４５】
Ｓ１５０においてデスクトップアプリ２１ｂは、ＭＦＰ５１に実行させていたスキャン処理が完了したか否かを判断する。この判断は、例えば、スキャンが完了したことを示す装置情報をＭＦＰ５１から受信したか否かによって行われても良い。否定判断される場合（Ｓ１５０：ＮＯ）には、Ｓ１７５へ進む。Ｓ１７５においてデスクトップアプリ２１ｂは、管理ファイル１４に、第２のエラー装置情報を記憶させる。第２のエラー装置情報は、ＭＦＰ５１がスキャン処理に失敗したことを示す情報である。スキャン処理の失敗例としては、例えば、ＡＤＦ（Auto Document Feederの略）への原稿詰まりなどが挙げられる。そしてフローを終了する。
【００４６】
一方、Ｓ１５０において肯定判断される場合（Ｓ１５０：ＹＥＳ）には、Ｓ１５３へ進む。Ｓ１５３においてデスクトップアプリ２１ｂは、スキャン処理によって生成された画像データを、スキャナドライバ２２に、ＭＦＰ５１から取得させる。画像データは、無線通信２００および２０１を介して取得される。Ｓ１５５においてデスクトップアプリ２１ｂは、取得した画像データを、スキャナドライバ２２に共通記憶領域１３へ記憶させる。
【００４７】
Ｓ１６０においてデスクトップアプリ２１ｂは、スキャン画像情報を管理ファイル１４に記憶させる。スキャン画像情報は、スキャン処理によって生成された画像データに関する情報である。例えば、Ｓ１５５において共通記憶領域１３に記憶させた画像データへのパスであってもよい。
【００４８】
Ｓ１６５においてデスクトップアプリ２１ｂは、スキャン完了情報を管理ファイル１４に記憶させる。スキャン完了情報は、スキャン処理が完了したことをストアアプリ２１ａへ報知するための情報である。そしてフローを終了する。
【００４９】
＜第１の動作具体例＞
図４を用いて、第１の動作具体例を説明する。例として、ＭＦＰ５１がスキャン処理を実行可能な場合を説明する。
【００５０】
ユーザは、ＭＦＰ５１のＡＤＦ（不図示）に原稿をセットする。そしてユーザがストアアプリ２１ａを起動し、ストアアプリ２１ａのスキャン実行ボタンをタッチすると（Ｓ２１０：Ｙ）、第１命令情報およびスキャン設定情報が管理ファイル１４に記憶される（矢印Ｙ１参照）。デスクトップアプリ２１ｂは、管理ファイル１４内に第１命令情報が記憶されたことを検出する（Ｓ１１０：Ｙ）（矢印Ｙ２参照）。そしてデスクトップアプリ２１ｂは、スキャナドライバ２２に、第２命令情報をＭＦＰ５１へ出力させる（Ｓ１１７）（矢印Ｙ３参照）。
【００５１】
ＭＦＰ５１でのスキャン処理が完了すると（Ｓ１５０：Ｙ）、デスクトップアプリ２１ｂは、スキャン処理によって生成された画像データを、スキャナドライバ２２に、ＭＦＰ５１から取得させる（Ｓ１５３）（矢印Ｙ４参照）。デスクトップアプリ２１ｂは、取得した画像データを、スキャナドライバ２２に、共通記憶領域１３へ記憶させる（Ｓ１５５）（矢印Ｙ５参照）。またデスクトップアプリ２１ｂは、スキャン画像情報およびスキャン完了情報を、管理ファイル１４に記憶させる（Ｓ１６０、Ｓ１６５）（矢印Ｙ６参照）。
【００５２】
ストアアプリ２１ａは、管理ファイル１４内にスキャン完了情報が記憶されたことを検出する（Ｓ２４０：Ｙ）（矢印Ｙ７参照）。ストアアプリ２１ａは、スキャン画像情報のパスに従って、共通記憶領域１３内の画像データにアクセスする（Ｓ２５０）（矢印Ｙ８参照）。そしてストアアプリ２１ａは、画像データによって形成される表示画像を、タッチパネル１８に表示させる。その後、ストアアプリ２１ａは、管理ファイル１４を共通記憶領域１３から削除する（Ｓ２５５）（矢印Ｙ９参照）。
【００５３】
＜実施例１の効果＞
ＭＦＰ５１にスキャン処理を実行させることができるストアアプリ２１ａが、必要とされている。ストアアプリ２１ａを用いてＭＦＰ５１にスキャン処理を実行させるためには、スキャナドライバをストアアプリ２１ａが使用できる状態にする必要がある。しかし、ストアアプリ２１ａはデスクトップアプリ２１ｂと通信することができないため、デスクトップアプリ２１ｂに実装されているスキャナドライバ２２を、ストアアプリ２１ａが使用することは困難である。また、ストアアプリ２１ａとデスクトップアプリ２１ｂとの各々にスキャナドライバを実装する場合には、アプリケーションの開発コストや保守コストが増大してしまう問題がある。
【００５４】
本明細書に記載されているストアアプリ２１ａおよびデスクトップアプリ２１ｂによれば、直接に通信することが不可能なストアアプリ２１ａとデスクトップアプリ２１ｂとの間の通信を、共通記憶領域１３を介して実行することが可能となる。これにより、ストアアプリ２１ａは、デスクトップアプリ２１ｂに実装されているスキャナドライバ２２を使用することが可能となる。従って、ストアアプリ２１ａは、第２命令情報をＭＦＰ５１へ出力する処理（Ｓ１１７）や、画像データをＭＦＰ５１から取得する処理（Ｓ１５３）などを、デスクトップアプリ２１ｂのスキャナドライバ２２を介して実行することが可能となる。以上より、デスクトップアプリ２１ｂに実装されているスキャナドライバ２２を、ストアアプリ２１ａとデスクトップアプリ２１ｂとで共用することが可能となるため、アプリケーションの開発コストや保守コストが増大してしまう事態を防止することができる。また、ストアアプリ２１ａでのプルスキャンを、デスクトップアプリ２１ｂのプルスキャン機能を用いて実現することができる。
【００５５】
デスクトップアプリ２１ｂは、スキャン処理がＭＦＰ５１で実行中であるか否かをＭＦＰ５１へ問合せ（Ｓ１４０）、実行中である場合には、スキャン中であることを示す処理情報を管理ファイル１４に記憶させる（Ｓ１２５）。ストアアプリ２１ａは、処理情報が管理ファイル１４に記憶されている場合には、スキャン処理を実行中であると判断し（Ｓ２３０：ＹＥＳ）、スキャン処理を実行中であることをタッチパネル１８に表示させる（Ｓ２３３）。すなわち、スキャン処理を実行中であることを、デスクトップアプリ２１ｂからストアアプリ２１ａへ、処理情報を介して報知することができる。これにより、スキャン処理の進捗状況を、ストアアプリ２１ａがユーザに報知することが可能となるため、利便性を高めることができる。
【００５６】
デスクトップアプリ２１ｂは、スキャン処理がＭＦＰ５１で実行可能であるか否かをＭＦＰ５１へ問い合わせる（Ｓ１１５）。スキャン処理が実行可能ではない場合には（Ｓ１１５：ＮＯ）、第１のエラー装置情報を管理ファイル１４に記憶させる（Ｓ１２０）。ストアアプリ２１ａは、第１のエラー装置情報が管理ファイル１４に記憶されている場合には、スキャン処理に関するエラーが発生していると判断し（Ｓ２６０：ＹＥＳ）、ＭＦＰ５１でスキャン処理を実行できないことを示す画像をタッチパネル１８に表示させる（Ｓ２６５）。すなわち、スキャン処理を実行できないことを、デスクトップアプリ２１ｂからストアアプリ２１ａへ、第１のエラー装置情報を介して報知することができる。これにより、スキャン処理を実行できないことを、ストアアプリ２１ａがユーザに報知することが可能となるため、利便性を高めることができる。
【００５７】
ストアアプリ２１ａは、スキャン設定入力画面をタッチパネル１８に表示させ（Ｓ２００）、スキャン設定の入力を受け付け（Ｓ２０５）、入力が受け付けられたスキャン設定を管理ファイル１４に記憶させる（Ｓ２２０）。デスクトップアプリ２１ｂは、共通記憶領域１３に記憶されているスキャン設定情報に基づくスキャン処理の実行を、ＭＦＰ５１に指示する（Ｓ１１６）。すなわち、スキャン設定情報を、ストアアプリ２１ａからデスクトップアプリ２１ｂへ、共通記憶領域１３を介して受け渡すことができる。これにより、ストアアプリ２１ａで入力を受け付けたスキャン設定情報に基づいて、ＭＦＰ５１にスキャン処理を実行させることが可能となるため、利便性を高めることが可能となる。
【００５８】
ストアアプリ２１ａは、スキャン処理によって生成された画像データに基づく画像をタッチパネル１８に表示（Ｓ２５０）させた後に、管理ファイル１４を共通記憶領域１３から削除する（Ｓ２５５）。これにより、不要な情報が共通記憶領域１３に残存してしまう事態を防止することが可能となる。
【実施例２】
【００５９】
実施例２に係る通信システム１の構成は、実施例１と同様の構成であるため、説明を省略する。
【００６０】
＜ストアアプリ２１ａの動作＞
実施例２では、ストアアプリ２１ａによるプルスキャンを、デスクトップアプリ２１ｂのプッシュスキャン機能を用いて実現する動作について説明する。図６を用いて、ストアアプリ２１ａの動作を説明する。図６のフローは、ストアアプリ２１ａが起動されることに応じて開始される。
【００６１】
Ｓ４１０においてストアアプリ２１ａは、スキャン実行命令の入力を受け付けたか否かを判断する。否定判断される場合（Ｓ４１０：ＮＯ）にはＳ４１０へ戻り、肯定判断される場合（Ｓ４１０：ＹＥＳ）にはＳ４１５へ進む。
【００６２】
Ｓ４１５においてストアアプリ２１ａは、無線通信２００および２０１を介して、第３命令情報をＭＦＰ５１へ送信する。第３命令情報は、スキャン処理を実行して生成した画像データをデスクトップアプリ２１ｂに対して出力することを、ＭＦＰ５１に対して命令するための情報である。また第３命令情報は、第３命令情報に基づいて画像データを生成したことを通知する通知情報を、デスクトップアプリ２１ｂに対して出力することを、ＭＦＰ５１へ命令する情報でもある。第３命令情報は、スキャン設定（例：解像度）を含んでいてもよい。第３命令情報は、ＴＣＰ／ＩＰに基づいて送信されてもよいし、ＨＴＴＰに基づいて送信されてもよい。
【００６３】
Ｓ４１７においてストアアプリ２１ａは、第３命令情報をＭＦＰ５１へ出力した出力時刻を、オペレーティングシステム２１ｅから取得する。そして、取得した出力時刻を記憶部１２に記憶させる。
【００６４】
Ｓ４２０においてストアアプリ２１ａは、ＭＦＰ５１の装置状態が、スキャン処理が可能な状態であるか否かを確認する。この判断は、ＭＦＰ５１から返信される、装置状態を示す装置情報を受信し、装置情報を解読することで行なわれてもよい。Ｓ４２０において否定判断される場合（Ｓ４２０：ＮＯ）には、Ｓ４２３へ進む。Ｓ４２３においてストアアプリ２１ａは、ＭＦＰ５１でスキャン処理を実行できないことを示す画像を、タッチパネル１８に表示させる。そしてフローを終了する。
【００６５】
一方、Ｓ４２０において肯定判断される場合（Ｓ４２０：ＹＥＳ）には、Ｓ４３０へ進む。Ｓ４３０においてストアアプリ２１ａは、第３命令情報によって開始されたスキャン処理が、ＭＦＰ５１で実行中であるか否かを判断する。例えばストアアプリ２１ａは、スキャン処理の進捗状況を問い合わせるための第４の問合せ情報を、無線通信２００および２０１を介してＭＦＰ５１へ送信してもよい。そして、ＭＦＰ５１から返信される、進捗状況を示す装置情報を受信し、装置情報を解読することで判断してもよい。肯定判断される場合（Ｓ４３０：ＹＥＳ）には、Ｓ４３３へ進む。
【００６６】
Ｓ４３３においてストアアプリ２１ａは、ＭＦＰ５１でスキャン処理を実行中であることを示す画像を、タッチパネル１８に表示させる。例えば、「スキャン中」という文字列を含んだ画像を表示させてもよい。Ｓ４３５においてストアアプリ２１ａは、予め定められた一定時間を待機する。そして、一定時間の経過後にＳ４３０へ戻る。
【００６７】
また、Ｓ４３０で否定判断される場合（Ｓ４３０：ＮＯ）には、Ｓ４４０へ進む。Ｓ４４０においてストアアプリ２１ａは、ＭＦＰ５１に実行させているスキャン処理が、完了したか否かを判断する。この判断は、例えば、スキャンが完了したことを示す装置情報をＭＦＰ５１から受信したか否かによって行われても良い。否定判断される場合（Ｓ４４０：ＮＯ）には、Ｓ４６０へ進む。
【００６８】
Ｓ４６０においてストアアプリ２１ａは、スキャン処理に関するエラーが発生しているか否かを判断する。この判断は、例えば、エラー内容を示す装置情報をＭＦＰ５１から受信したか否かによって行われても良い。否定判断される場合（Ｓ４６０：ＮＯ）にはＳ４３０へ戻り、肯定判断される場合（Ｓ４６０：ＹＥＳ）にはＳ４６５へ進む。Ｓ４６５においてストアアプリ２１ａは、ＭＦＰ５１でスキャン処理を実行できないことを示す画像を、タッチパネル１８に表示させる。例えば、「スキャンエラー発生」という文字列を含んだ画像を表示させてもよい。そして、フローを終了する。
【００６９】
一方、Ｓ４４０において肯定判断される場合（Ｓ４４０：ＹＥＳ）には、Ｓ４４５へ進む。Ｓ４４５においてストアアプリ２１ａは、ストアアプリ２１ａのプルスキャン用に生成された画像データが、存在するか否かを判断する。当該判断の具体例を説明する。ストアアプリ２１ａは、共通記憶領域１３に記憶されている複数の画像データのうちから、Ｓ４１７で取得した出力時刻以降に共通記憶領域１３に記憶された画像データを抽出する。この抽出処理は、画像データに付加されている、記憶時刻情報に基づいて行われる。記憶時刻情報は、画像データを共通記憶領域１３に記憶させた時刻を示す情報である。そして、抽出した画像データのうちから、特定文字列がファイル名に含まれている画像データを検索する。特定文字列は、ストアアプリ２１ａのプルスキャン用の画像データを識別するために、予め定められた文字列である。特定文字列が含まれているファイル名を有する画像データが検出された場合には、ストアアプリ２１ａのプルスキャン用の画像データが存在すると判断される。Ｓ４４５において否定判断される場合（Ｓ４４５：ＮＯ）にはＳ４６５へ進み、肯定判断される場合（Ｓ４４５：ＹＥＳ）にはＳ４５０へ進む。
【００７０】
Ｓ４５０においてストアアプリ２１ａは、ストアアプリ２１ａのプルスキャン用の画像データにアクセスし、表示画像をタッチパネル１８に表示させる。そしてフローを終了する。
【００７１】
＜デスクトップアプリ２１ｂの動作＞
図５を用いて、実施例２に係るデスクトップアプリ２１ｂの動作を説明する。Ｓ３１０においてデスクトップアプリ２１ｂは、通知情報を、無線通信２００および２０１を介して、ＭＦＰ５１から受信したか否かを判断する。通知情報は、ＭＦＰ５１で発生した各種イベント（例：ＭＦＰ５１でのプッシュスキャンの実行）の内容を示す情報である。否定判断される場合（Ｓ３１０：ＮＯ）にはＳ３１０へ戻り、肯定判断される場合（Ｓ３１０：ＹＥＳ）にはＳ３１５へ進む。
【００７２】
Ｓ３１５においてデスクトップアプリ２１ｂは、スキャン処理によって生成された画像データを、スキャナドライバ２２がＭＦＰ５１から受信したか否かを判断する。否定判断される場合（Ｓ３１５：ＮＯ）にはＳ３１５へ戻り、肯定判断される場合（Ｓ３１５：ＹＥＳ）にはＳ３２０へ進む。
【００７３】
Ｓ３２０においてデスクトップアプリ２１ｂは、スキャナドライバ２２が受信した画像データが、ストアアプリ２１ａのプルスキャン用の画像データであるか否かを判断する。当該判断は、Ｓ３１０で受信した通知情報が示すイベント内容が、「ストアアプリ２１ａのプルスキャン」であるか否かによって行ってもよい。肯定判断される場合（Ｓ３２０：ＹＥＳ）には、Ｓ３３０へ進む。
【００７４】
Ｓ３３０においてデスクトップアプリ２１ｂは、取得した画像データを、ストアアプリ２１ａのプルスキャン用の画像データとして、共通記憶領域１３に記憶させる。具体的には、特定文字列を含んだファイル名を付与して、共通記憶領域１３に記憶させる。また、デスクトップアプリ２１ｂは、画像データを共通記憶領域１３に記憶させた時刻を示す記憶時刻情報を、画像データに付加する。そしてフローを終了する。
【００７５】
一方、Ｓ３２０において否定判断される場合（Ｓ３２０：ＮＯ）には、Ｓ３４０へ進む。Ｓ３４０においてデスクトップアプリ２１ｂは、取得した画像データを、ストアアプリ２１ａのプルスキャン用の画像データ以外の画像データとして、記憶部１２に記憶させる。具体的には、特定文字列を含んでいないファイル名を付与して、記憶部１２に記憶させる。そしてフローを終了する。
【００７６】
＜ＭＦＰ５１の動作＞
図７を用いて、ＭＦＰ５１の動作を説明する。Ｓ５１０においてＣＰＵ３２は、ストアアプリ２１ａから第３命令情報を受信したか否かを判断する。肯定判断される場合（Ｓ５１０：ＹＥＳ）にはＳ５１５へ進む。
【００７７】
Ｓ５１５においてＣＰＵ３２は、ストアアプリ要求フラグを「オン」に設定する。ストアアプリ要求フラグは、ストアアプリ２１ａからプルスキャンの要求が来たことを示す情報である。そしてＳ５２０へ進む。
【００７８】
一方、Ｓ５１０において否定判断される場合（Ｓ５１０：ＮＯ）には、Ｓ５１３へ進む。Ｓ５１３においてＣＰＵ３２は、プッシュスキャンの命令が入力されたか否かを判断する。プッシュスキャンの命令は、ＭＦＰ５１のボタン入力部３８を介して受け付けられるとしてもよい。否定判断される場合（Ｓ５１３：ＮＯ）にはＳ５１０へ戻り、肯定判断される場合（Ｓ５１３：ＹＥＳ）にはＳ５２０へ進む。
【００７９】
Ｓ５２０においてＣＰＵ３２は、ＭＦＰ５１の装置状態が、スキャン処理が可能な状態であるか否かを確認する。例えば、ＭＦＰ５１が印刷処理などを実行中である場合には、スキャン処理が可能な状態ではないと判断される。否定判断される場合（Ｓ５２０：ＮＯ）には、Ｓ５２５へ進む。Ｓ５２５においてＣＰＵ３２は、スキャン処理が実行できないことを示す装置情報を、ストアアプリ２１ａへ送信する。そしてフローを終了する。一方、Ｓ５２０において肯定判断される場合（Ｓ５２０：ＹＥＳ）には、Ｓ５３０へ進む。
【００８０】
Ｓ５３０においてＣＰＵ３２は、スキャン処理を実行する。図８のフローを用いて、スキャン処理の内容を説明する。図８のスキャン処理は、図７のメイン処理と並列に動作する。Ｓ６１０においてＣＰＵ３２は、スキャン処理が完了したか否かを判断する。否定判断される場合（Ｓ６１０：ＮＯ）にはＳ６１０へ戻り、肯定判断される場合（Ｓ６１０：ＹＥＳ）にはＳ６１５へ進む。Ｓ６１５においてＣＰＵ３２は、ストアアプリ要求フラグが「オン」であるか否かを判断する。肯定判断される場合（Ｓ６１５：ＹＥＳ）にはＳ６２０へ進む。Ｓ６２０においてＣＰＵ３２は、ストアアプリ２１ａからプルスキャンの要求イベントがあったことを示す通知情報を、デスクトップアプリ２１ｂへ送信する。そしてＳ６３０へ進む。
【００８１】
一方、Ｓ６１５において否定判断される場合（Ｓ６１５：ＮＯ）にはＳ６２５へ進む。Ｓ６２５においてＣＰＵ３２は、ＭＦＰ５１からのプッシュスキャンのイベントが発生したことを示す通知情報を、デスクトップアプリ２１ｂへ送信する。そしてＳ６３０へ進む。
【００８２】
Ｓ６３０においてＣＰＵ３２は、スキャン処理によって生成された画像データを、デスクトップアプリ２１ｂへ送信する。そしてフローを終了する。
【００８３】
図７のＳ５４０においてＣＰＵ３２は、スキャン処理を実行可能であることを示す装置情報を、ストアアプリ２１ａへ送信する。Ｓ５５０においてＣＰＵ３２は、第４の問合せ情報をストアアプリ２１ａから受信したか否かを判断する。否定判断される場合（Ｓ５５０：ＮＯ）にはＳ５５０へ戻り、肯定判断される場合（Ｓ５５０：ＹＥＳ）にはＳ５５５へ進む。
【００８４】
Ｓ５５５においてＣＰＵ３２は、スキャン処理がスキャナ２０で実行中であるか否かを判断する。肯定判断される場合（Ｓ５５５：ＹＥＳ）にはＳ５６０へ進み、ＣＰＵ３２は、スキャン処理中であることを示す装置情報をストアアプリ２１ａへ送信する。そしてＳ５５０へ戻る。
【００８５】
一方、Ｓ５５５において否定判断される場合（Ｓ５５５：ＮＯ）には、Ｓ５６５へ進む。Ｓ５６５においてＣＰＵ３２は、スキャン処理が完了したか否かを判断する。否定判断される場合（Ｓ５６５：ＮＯ）には、Ｓ５８０へ進む。Ｓ５８０においてＣＰＵ３２は、スキャン処理に関するエラーが、スキャナ２０で発生しているか否かを判断する。否定判断される場合（Ｓ５８０：ＮＯ）にはＳ５５０へ戻り、肯定判断される場合（Ｓ５８０：ＹＥＳ）にはＳ５８５へ進む。Ｓ５８５においてＣＰＵ３２は、エラー内容を示す装置情報をストアアプリ２１ａへ送信する。そしてフローを終了する。また、Ｓ５６５において肯定判断される場合（Ｓ５６５：ＹＥＳ）には、Ｓ５７５へ進む。Ｓ５７５においてＣＰＵ３２は、スキャンが完了したことを示す装置情報をストアアプリ２１ａへ送信する。そしてフローを終了する。
【００８６】
＜第２の動作具体例＞
図９を用いて、第１の動作具体例を説明する。例として、ＭＦＰ５１がスキャン処理を実行可能な場合を説明する。
【００８７】
ユーザは、ＭＦＰ５１のＡＤＦ（不図示）に原稿をセットする。そしてユーザがストアアプリ２１ａを起動し、ストアアプリ２１ａのスキャン実行ボタンをタッチすると（Ｓ４１０：Ｙ）、第３命令情報がＭＦＰ５１へ送信される（Ｓ４１５）（矢印Ｙ１１参照）。
【００８８】
ＭＦＰ５１は、スキャンが完了して画像データが生成されると（Ｓ６１０：Ｙ）、ストアアプリ２１ａからプルスキャンの要求イベントがあったことを示す通知情報を、デスクトップアプリ２１ｂへ送信する（Ｓ６２０）（矢印Ｙ１２参照）。デスクトップアプリ２１ｂは、スキャナドライバ２２に、ＭＦＰ５１から画像データを取得させる（Ｓ３１５）（矢印Ｙ１３参照）。デスクトップアプリ２１ｂは、取得した画像データを、ストアアプリ２１ａのプルスキャン用の画像データとして、共通記憶領域１３に記憶させる（Ｓ３３０）（矢印Ｙ１４参照）。
【００８９】
ＭＦＰ５１は、スキャン処理が完了すると（Ｓ５６５：Ｙ）、スキャンが完了したことを示す装置情報をストアアプリ２１ａへ送信する（Ｓ５７５）（矢印Ｙ１５参照）。ストアアプリ２１ａは、スキャン処理が完了したことを装置情報に基づいて判断すると（Ｓ４４０：Ｙ）、共通記憶領域１３内から、ストアアプリ２１ａのプルスキャン用の画像データを検索する（Ｓ４４５）（矢印Ｙ１６参照）。そしてストアアプリ２１ａのプルスキャン用の画像データにアクセスし、表示画像をタッチパネル１８に表示させる（Ｓ４５０）。
【００９０】
＜実施例２の効果＞
本明細書に記載されているストアアプリ２１ａおよびデスクトップアプリ２１ｂによれば、直接に通信することが不可能なストアアプリ２１ａとデスクトップアプリ２１ｂとの間の通信を、共通記憶領域１３を介して実行することが可能となる。これにより、ストアアプリ２１ａは、デスクトップアプリ２１ｂに実装されているスキャナドライバ２２を使用することが可能となる。従って、ストアアプリ２１ａは、画像データをＭＦＰ５１から取得する処理（Ｓ３１５）などを、デスクトップアプリ２１ｂのスキャナドライバ２２を介して実行することが可能となる。以上より、デスクトップアプリ２１ｂに実装されているスキャナドライバ２２を、ストアアプリ２１ａとデスクトップアプリ２１ｂとで共用することが可能となるため、アプリケーションの開発コストや保守コストが増大してしまう事態を防止することができる。また、ストアアプリ２１ａでのプルスキャンを、プッシュスキャン機能を用いて実現することができる。
【００９１】
デスクトップアプリ２１ｂは、ストアアプリ２１ａのプルスキャン用の画像データに、特定文字列を含んだファイル名を付与して、共通記憶領域１３に記憶させる（Ｓ３３０）。ストアアプリ２１ａは、特定文字列がファイル名に含まれている画像データを、ストアアプリ２１ａのプルスキャン用の画像データとして識別する（Ｓ４４５）。これにより、特定文字列を用いることで、ストアアプリ２１ａのプルスキャン用の画像データを、デスクトップアプリ２１ｂからストアアプリ２１ａへ報知することができる。これにより、ストアアプリ２１ａのプルスキャン用の画像データに、容易にアクセスすることが可能となる。
【００９２】
ストアアプリ２１ａは、第３命令情報をＭＦＰ５１へ出力した出力時刻を、記憶部１２に記憶させる（Ｓ４１７）。そしてストアアプリ２１ａは、共通記憶領域１３に記憶されている複数の画像データのうちから、出力時刻以降に共通記憶領域１３に記憶された画像データを抽出し、抽出した画像データのうちから、ストアアプリ２１ａのプルスキャン用の画像データを検索する（Ｓ４４５）。これにより、出力時刻を用いることで、ストアアプリ２１ａのプルスキャン用の画像データを容易に識別することが可能となる。
【００９３】
デスクトップアプリ２１ｂは、取得した画像データが、ストアアプリ２１ａのプルスキャン用の画像データであると判断される場合には（Ｓ３２０：ＹＥＳ）、ストアアプリ２１ａのプルスキャン用の画像データとして共通記憶領域１３に記憶させる（Ｓ３３０）。また、取得した画像データが、ストアアプリ２１ａのプルスキャン用の画像データではないと判断される場合には（Ｓ３２０：ＮＯ）、ストアアプリ２１ａのプルスキャン用の画像データ以外の画像データとして、記憶部１２に記憶させる（Ｓ３４０）。これにより、ストアアプリ２１ａのプルスキャン用の画像データを、他のデータから容易に識別することが可能となる。
【００９４】
ストアアプリ２１ａは、ＭＦＰ５１にスキャン処理を開始させると（Ｓ４１５）、ＭＦＰ５１でのスキャン処理が完了したか否かを監視する（Ｓ４３０）。そしてストアアプリ２１ａは、スキャン処理が完了したことを検出することに応じて（Ｓ４４０：ＹＥＳ）、共通記憶領域１３に記憶されているストアアプリ２１ａのプルスキャン用の画像データにアクセスする（Ｓ４４５）。これにより、ストアアプリ２１ａの共通記憶領域１３への不要なアクセスを防止することが可能となる。
【００９５】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
【００９６】
＜変形例＞
ＭＦＰ５１でのスキャン処理のうちの何パーセントが完了しているかを示す進捗率を、タッチパネル１８に表示させる形態としてもよい。この場合、Ｓ１４０においてデスクトップアプリ２１ｂは、進捗率を示す装置情報をＭＦＰ５１から受信し、進捗率を示す処理情報を管理ファイル１４に記憶させればよい。そして、ストアアプリ２１ａは、Ｓ２３０において管理ファイル１４内の処理情報を読み出し、進捗率をタッチパネル１８に表示させればよい（Ｓ２３３）。
【００９７】
実施例２のＳ４４５において、ストアアプリ２１ａのプルスキャン用の画像データを検索する方法は、各種の方法を用いることができる。（例１）Ｓ３３０において、デスクトップアプリ２１ｂは、取得した画像データのヘッダ情報に、特定文字列を含ませる。Ｓ４４５においてストアアプリ２１ａは、特定文字列がヘッダ情報に含まれている画像データを検索する。（例２）Ｓ６３０においてＭＦＰ５１は、画像データに固有のファイル名を付与した上で、画像データをデスクトップアプリ２１ｂへ送信する。Ｓ５７５においてＭＦＰ５１は、固有のファイル名を含んだ装置情報を、ストアアプリ２１ａへ送信する。Ｓ４４０においてストアアプリ２１ａは、装置情報から固有のファイル名を読み出す。そして、固有のファイル名を有する画像データを検索する（Ｓ４４５）。（例３）Ｓ６３０においてＭＦＰ５１は、予め定められた独自フォーマットを有する画像データを生成し、画像データをデスクトップアプリ２１ｂへ送信する。Ｓ４４５においてストアアプリ２１ａは、独自フォーマットを有する画像データを検索する。（例４）ストアアプリ２１ａのプルスキャン用の画像データを記憶するための特定フォルダ領域を、共通記憶領域１３に予め作成しておく。Ｓ３３０においてデスクトップアプリ２１ｂは、取得した画像データを、特定フォルダ領域に記憶させる。Ｓ４４５においてストアアプリ２１ａは、特定フォルダ領域内の画像データを、プルスキャン用の画像データであると認識する。
【００９８】
ストアアプリとデスクトップアプリとで共用するドライバは、スキャナドライバに限られない。本明細書に記載されている技術では、各種の外部装置を制御するためのドライバ（例：プリンタドライバ）であって、デスクトップアプリに実装されているドライバを、ストアアプリとデスクトップアプリとで共用することが可能である。
【００９９】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【０１００】
なお、ＭＦＰ５１は、画像処理装置の一例である。ストアアプリ２１ａおよびデスクトップアプリ２１ｂは、アプリケーションプログラムの一例である。ＣＰＵ１１は、プロセッサの一例である。タッチパネル１８は、表示部の一例である。ストアアプリ２１ａは、第１アプリケーションの一例である。デスクトップアプリ２１ｂは、第２アプリケーションの一例である。スキャナドライバ２２は、ドライバプログラムの一例である。スキャン処理は、画像処理の一例である。Ｓ２２０を実行するＣＰＵ１１は、第１記憶制御手段の一例である。Ｓ１１７を実行するＣＰＵ１１は、第１出力制御手段の一例である。Ｓ１５５を実行するＣＰＵ１１は、第２記憶制御手段の一例である。Ｓ２５０を実行するＣＰＵ１１は、第１表示制御手段の一例である。Ｓ１２５、Ｓ１４５を実行するＣＰＵ１１は、第３記憶制御手段の一例である。Ｓ１２０を実行するＣＰＵ１１は、第４記憶制御手段の一例である。Ｓ２０５を実行するＣＰＵ１１は、入力受付手段の一例である。Ｓ２２０を実行するＣＰＵ１１は、第５記憶制御手段の一例である。Ｓ４１５を実行するＣＰＵ１１は、第２出力制御手段の一例である。Ｓ３２０、Ｓ３３０を実行するＣＰＵ１１は、第６記憶制御手段の一例である。Ｓ４５０を実行するＣＰＵ１１は、第２表示制御手段の一例である。ストアアプリ２１ａのプルスキャン用の画像データは、特定画像データの一例である。Ｓ４３３を実行するＣＰＵ１１は、第３表示制御手段の一例である。Ｓ４６５を実行するＣＰＵ１１は、第４表示制御手段の一例である。特定文字列は、識別情報の一例である。
【符号の説明】
【０１０１】
１：通信システム、１０：情報処理装置、１１：ＣＰＵ、１２：記憶部、１３：共通記憶領域、１４：管理ファイル、１８：タッチパネル、２１ａ：ストアアプリ、２１ｂ：デスクトップアプリ、５１：ＭＦＰ
【図１】
2015011448.tif 000003
【図２】
2015011448.tif 000004
【図３】
2015011448.tif 000005
【図４】
2015011448.tif 000006
【図５】
2015011448.tif 000007
【図６】
2015011448.tif 000008
【図７】
2015011448.tif 000009
【図８】
2015011448.tif 000010
【図９】
2015011448.tif 000011