(57)【要約】【課題】外部プログラムを通じて画像処理装置に画像処理動作を実行させるプログラムにおいて、適切な画像処理装置を簡単に選択させる技術を提供する。【解決手段】レーベルプログラムは、指定装置情報に含まれる動作ＩＤを外部プログラムから取得する第１取得処理（Ｓ７４）と、指定動作ＩＤを取得していないと判断したことに応じて（Ｓ７５：０）、外部プログラムに装置指定処理を実行させる第１指示処理（Ｓ７６）と、指定動作ＩＤを含む指定装置情報がメモリに記憶されている状態で、指定動作の実行を指示するユーザ操作を受け付けたことに応じて（Ｓ７９：プリント／スキャン）、外部プログラムに動作指示処理を実行させる第２指示処理（Ｓ８２／Ｓ８３）とを携帯端末に実行させる。【選択図】図８
2018045495.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、入力インタフェースと、通信インタフェースとを備える携帯端末によって読み取り可能なプログラムであって、
前記メモリは、該プログラムが起動可能な外部プログラムを記憶しており、前記外部プログラムは、複数の画像処理動作のうちの少なくとも１つを実行可能な画像処理装置に、前記外部プログラムがユーザに指定させた前記画像処理動作を指示するプログラムであり、
該プログラムは、
指定装置情報に含まれる動作ＩＤを、前記外部プログラムから取得する第１取得処理を前記携帯端末に実行させ、前記指定装置情報は、前記外部プログラムがユーザに指定させた前記画像処理装置である指定装置が実行可能な前記画像処理動作を識別する前記動作ＩＤを含み、
該プログラムは、
前記画像処理動作の１つである指定動作を識別する前記動作ＩＤを、前記第１取得処理で取得したか否かを判断する第１判断処理と、
前記第１判断処理で取得していないと判断したことに応じて、前記通信インタフェースを通じて通信可能な複数の前記画像処理装置のうち、前記指定動作を実行可能な前記画像処理装置を、前記指定装置としてユーザに指定させる装置指定処理を、前記外部プログラムに実行させる第１指示処理と、
前記指定動作の前記動作ＩＤを含む前記指定装置情報が前記メモリに記憶されている状態で、前記指定動作の実行を指示するユーザ操作を前記入力インタフェースを通じて受け付ける第１受付処理と、
前記通信インタフェースを通じて前記指定装置に動作指示情報を送信する動作指示処理を、前記外部プログラムに実行させる第２指示処理とを前記携帯端末に実行させ、前記動作指示情報は、前記第１受付処理で指示された前記指定動作を実行させるための情報であるプログラム。
【請求項２】
前記携帯端末は、ディスプレイを備えており、
該プログラムは、複数の前記指定動作を、前記外部プログラムを通じて前記指定装置に指示することが可能であり、
該プログラムは、
複数の前記指定動作それぞれを識別する複数の前記動作ＩＤのうち、前記第１取得処理で取得した前記動作ＩＤに対応する動作オブジェクトを含む第１画面を、前記ディスプレイに表示させる第１表示処理を、前記第１受付処理に先立って前記携帯端末に実行させ、
前記第１受付処理において、前記動作オブジェクトを指定するユーザ操作を、当該動作オブジェクトに対応する前記動作ＩＤで識別される前記指定動作の実行を指示するユーザ操作として、前記入力インタフェースを通じて受け付ける請求項１に記載のプログラム。
【請求項３】
該プログラムは、
前記指定動作の前記動作ＩＤを前記第１取得処理で複数取得したことに応じて、
前記第１表示処理と、
前記第１受付処理で実行が指示された前記指定動作の実行条件を指定するユーザ操作を、前記入力インタフェースを通じて受け付ける第２受付処理とを前記携帯端末に実行させ、
前記指定動作の前記動作ＩＤを前記第１取得処理で１つだけ取得したことに応じて、前記第１取得処理で取得した前記動作ＩＤで識別される前記指定動作の実行が指示されたものとして、前記第１表示処理及び前記第１受付処理を実行せずに、前記第２受付処理を前記携帯端末に実行させ、
前記第２指示処理において、前記第２受付処理で指定された実行条件に従った前記指定動作を、前記外部プログラムを通じて前記指定装置に指示する請求項２に記載のプログラム。
【請求項４】
前記指定動作は、画像データを出力する出力動作であり、
該プログラムは、
前記出力動作の対象となる前記画像データを指定するユーザ操作を、前記入力インタフェースを通じて受け付ける第２受付処理を前記携帯端末に実行させ、
前記第２指示処理において、前記第２受付処理で指定された前記画像データを対象とする前記出力動作を、前記外部プログラムを通じて前記指定装置に指示する請求項１から３のいずれかに記載のプログラム。
【請求項５】
前記指定動作は、該プログラムに入力する画像データを生成する入力動作であり、
該プログラムは、
前記第２指示処理で指示した前記入力動作によって生成された前記画像データを、前記外部プログラムを通じて前記指定装置から取得する第２取得処理と、
前記第２取得処理で取得した前記画像データを出力する出力処理とを前記携帯端末に実行させる請求項１から４のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯端末のプラグインプログラムであって、同じ携帯端末にインストールされたメインプログラムを通じて、画像処理装置に画像処理動作を実行させるプラグインプログラムに関する。
【背景技術】
【０００２】
従来より、画像データをユーザに指定させ、指定された画像データに対する画像処理動作を画像処理装置に実行させるプログラム（以下、「メインプログラム」と表記する。）が知られている。特許文献１に記載のメインプログラムは、例えば、携帯端末に記憶された画像データをユーザに指定させ、当該画像データで示される画像をプリンタにプリントさせる。また、メインプログラムは、例えば、所謂プラグインプログラムから指示された画像処理動作を、画像処理装置に実行させることもできる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２０３７４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、適切な画像処理装置が携帯端末に接続されていない状態で、プラグインプログラムがメインプログラムに画像処理動作を指示したとしても、当該画像処理動作は正常に実行されない。すなわち、ユーザは、適切な画像処理装置を選択してから、プラグインプログラムを通じて画像処理動作を指示する必要がある。そして、画像処理装置及びプラグインプログラムの多様化に伴って、このような手順でプログラムを操作するユーザの負担も増大する。
【０００５】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、外部プログラムを通じて画像処理装置に画像処理動作を実行させるプログラムにおいて、適切な画像処理装置を簡単に選択させる技術を提供することにある。
【課題を解決するための手段】
【０００６】
本明細書では様々な開示を行う。開示例の１つであるプログラムは、メモリと、入力インタフェースと、通信インタフェースとを備える携帯端末によって読み取り可能である。前記メモリは、該プログラムが起動可能な外部プログラムを記憶しており、前記外部プログラムは、複数の画像処理動作のうちの少なくとも１つを実行可能な画像処理装置に、前記外部プログラムがユーザに指定させた前記画像処理動作を指示するプログラムである。該プログラムは、指定装置情報に含まれる動作ＩＤを、前記外部プログラムから取得する第１取得処理を前記携帯端末に実行させる。前記指定装置情報は、前記外部プログラムがユーザに指定させた前記画像処理装置である指定装置が実行可能な前記画像処理動作を識別する前記動作ＩＤを含む。該プログラムは、前記画像処理動作の１つである指定動作を識別する前記動作ＩＤを、前記第１取得処理で取得したか否かを判断する第１判断処理と、前記第１判断処理で取得していないと判断したことに応じて、前記通信インタフェースを通じて通信可能な複数の前記画像処理装置のうち、前記指定動作を実行可能な前記画像処理装置を、前記指定装置としてユーザに指定させる装置指定処理を、前記外部プログラムに実行させる第１指示処理と、前記指定動作の前記動作ＩＤを含む前記指定装置情報が前記メモリに記憶されている状態で、前記指定動作の実行を指示するユーザ操作を前記入力インタフェースを通じて受け付ける第１受付処理と、前記通信インタフェースを通じて前記指定装置に動作指示情報を送信する動作指示処理を、前記外部プログラムに実行させる第２指示処理とを前記携帯端末に実行させる。前記動作指示情報は、前記第１受付処理で指示された前記指定動作を実行させるための情報である。
【０００７】
上記構成によれば、指定動作の動作ＩＤを指定装置情報が含んでいない場合に、指定動作を実行可能な画像処理装置のうちからユーザに指定装置を指定させる処理を、外部プログラムに実行させる。これにより、当該プログラムが第２指示処理を実行する前に、適切な指定装置を簡単に選択させることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本実施形態に係るシステム１００の概略図である。
【図２】図２（Ａ）はＭＦＰ１０のブロック図であり、図２（Ｂ）は携帯端末５０のブロック図である。
【図３】図３は、メモリ６２に記憶されたプログラムリストを示す図である。
【図４】図４は、メイン処理のフローチャートである。
【図５】図５は、メイン画面生成処理のフローチャートである。
【図６】図６は、デバイス選択処理のフローチャートである。
【図７】図７は、ＰＩ起動処理のフローチャートである。
【図８】図８は、レーベルＰＩ処理のフローチャートである。
【図９】図９は、指示受付処理のフローチャートである。
【図１０】図１０は、ディスプレイ５３の表示例であって、（Ａ）はＯＳ６４のメニュー画面を、（Ｂ）はメイン画面を示す。
【図１１】図１１は、ディスプレイ５３の表示例であって、（Ａ）はデバイス選択画面を、（Ｂ）は確認画面を示す。
【図１２】図１２は、ディスプレイ５３の表示例であって、（Ａ）はレーベルプログラム６６のメニュー画面を、（Ｂ）はレーベル編集画面を示す。
【発明を実施するための形態】
【０００９】
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
【００１０】
図１は、本実施形態に係るシステム１００の概略図である。図１に示されるシステム１００は、ＭＦＰ１０Ａ、１０Ｂ（以下、これらを総称して、「ＭＦＰ１０」と表記することがある。）と、携帯端末５０とで構成されている。ＭＦＰ１０及び携帯端末５０は、通信ネットワーク１０１を通じて通信可能に構成されている。通信ネットワーク１０１は、例えば、有線ＬＡＮ、無線ＬＡＮ、或いはこれらの組み合わせであってもよい。または、ＭＦＰ１０及び携帯端末５０は、ＵＳＢケーブル等によって接続されていてもよい。
【００１１】
ＭＦＰ１０（Multi-Function Peripheralの略）は、図２（Ａ）に示されるように、プリンタ１１と、スキャナ１２と、ディスプレイ２３と、入力Ｉ／Ｆ２４と、通信Ｉ／Ｆ２５と、ＣＰＵ３１と、メモリ３２と、通信バス３３とを主に備える。ＭＦＰ１０を構成する各構成要素は、通信バス３３を通じて相互に接続されている。ＭＦＰ１０は、画像処理装置の一例である。
【００１２】
プリンタ１１は、画像データで示される画像をシートに記録するプリント動作を実行するハードウェアである。プリンタ１１の記録方式としては、インクジェット方式や電子写真方式などの公知の方式を採用することができる。スキャナ１２は、原稿に記録されている画像を読み取って画像データ（以下、「スキャンデータ」と表記する。）を生成するスキャン動作を実行するハードウェアである。なお、ＭＦＰ１０Ａ、１０Ｂは、少なくとも１つの動作を実行可能であればよい。また、ＭＦＰ１０Ａ、１０Ｂが実行可能な動作は、異なっていてもよい。
【００１３】
プリント動作は、携帯端末５０から取得した画像データを出力する出力動作の一例である。スキャン動作は、携帯端末５０に入力する画像データを生成する入力動作の一例である。また、プリント動作及びスキャン動作は、画像処理動作の一例である。但し、画像処理動作の具体例はこれらに限定されない。出力動作の他の例としては、ＦＡＸプロトコルに従って画像データを外部装置にＦＡＸ送信するＦＡＸ送信動作が挙げられる。入力動作の他の例としては、不図示のサーバから画像データを受信するダウンロード動作が挙げられる。
【００１４】
ディスプレイ２３は、液晶ディスプレイ、有機ＥＬディスプレイ等であり、各種情報を表示する表示画面を備える。
【００１５】
入力Ｉ／Ｆ２４は、ユーザによる入力操作を受け付けるユーザインタフェースである。具体的には、入力Ｉ／Ｆ２４はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をＣＰＵ３１へ出力する。さらに、入力Ｉ／Ｆ２４は、ディスプレイ２３の表示画面に重畳された膜状のタッチセンサを有していてもよい。ディスプレイ２３の表示画面に表示されたオブジェクトを指定する操作、文字列或いは数字列を入力する操作は、ユーザ操作の一例である。「オブジェクト」とは、例えば、ディスプレイ２３に表示された文字列、アイコン、ボタン、リンク、ラジオボタン、チェックボックス、プルダウンメニュー等である。
【００１６】
タッチセンサとして実現される入力Ｉ／Ｆ２４は、ユーザがタッチした表示画面上の位置を示す位置情報を出力する。なお、本明細書中における「タッチ」とは、入力媒体を表示画面に接触させる操作全般を含む。また、入力媒体が表示画面に触れていなくても、表示画面との間の距離がごく僅かな位置まで入力媒体を近接させる「ホバー」或いは「フローティングタッチ」を、前述の「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。ディスプレイ２３に表示されたオブジェクトの位置をタップするユーザ操作は、当該オブジェクトを指定するユーザ操作の一例である。
【００１７】
通信Ｉ／Ｆ２５は、通信ネットワーク１０１を通じて外部装置と通信可能なインタフェースである。すなわち、ＭＦＰ１０は、通信Ｉ／Ｆ２５を通じて外部装置に各種情報を送信し、通信Ｉ／Ｆ２５を通じて外部装置から各種情報を受信する。通信Ｉ／Ｆ２５の具体的な通信手順は特に限定されないが、例えば、Ｗｉ−Ｆｉ（Wi-Fi Allianceの登録商標）を採用することができる。また、ＭＦＰ１０及び携帯端末５０がＵＳＢケーブルで接続される場合、通信Ｉ／Ｆ２５は、ＵＳＢケーブルを着脱可能なＵＳＢインタフェースであってもよい。
【００１８】
ＣＰＵ３１は、ＭＦＰ１０の全体動作を制御するものである。ＣＰＵ３１は、入力Ｉ／Ｆ２４から出力される各種情報、通信Ｉ／Ｆ２５を通じて外部装置から受信した各種情報等に基づいて、後述する各種プログラムをメモリ３２から取得して実行する。ＣＰＵ３１及びメモリ３２は、コントローラの一例を構成する。
【００１９】
メモリ３２は、ＯＳ３４と、装置プログラム３５とを記憶している。装置プログラム３５は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。また、メモリ３２は、装置プログラム３５の実行に必要なデータ或いは情報等を記憶する。メモリ３２は、例えば、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＨＤＤ、ＭＦＰ１０に着脱されるＵＳＢメモリ等の可搬記憶媒体、ＣＰＵ３１が備えるバッファ等、或いはそれらの組み合わせによって構成される。
【００２０】
メモリ３２は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。後述する携帯端末５０のメモリ６２についても同様である。
【００２１】
メモリ３２のＭＩＢ（Management Information Baseの略）は、図１に示される装置情報を記憶している。装置情報は、ＭＦＰ１０を識別する装置ＩＤと、ＭＦＰ１０が実行可能な画像処理動作を識別する動作ＩＤとを含む。なお、「装置ＩＤ」とは、通信ネットワーク１０１上において、ＭＦＰ１０Ａ、１０Ｂを一意に識別することができれば、テキスト形式、バイナリ形式等の形式は問わない。動作ＩＤ、後述するプログラムＩＤ、後述するデータＩＤ等についても同様である。
【００２２】
すなわち、ＭＦＰ１０Ａは、装置ＩＤ“ＭＦＰ−Ａ”で識別され、動作ＩＤ“シートプリント”、“レーベルプリント”で識別される画像処理動作を実行可能である。一方、ＭＦＰ１０Ｂは、装置ＩＤ“ＭＦＰ−Ｂ”で識別され、動作ＩＤ“シートプリント”、“レーベルプリント”、“シートスキャン”、“レーベルスキャン”で識別される画像処理動作を実行可能である。
【００２３】
動作ＩＤ“シートプリント”は、被記録媒体の一例である記録用紙に対して画像を記録するプリント動作（以下、「シートプリント動作」と表記する。）を識別する。動作ＩＤ“レーベルプリント”は、被記録媒体の一例であるレーベル（例えば、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等）の表面に画像を記録するプリント動作（以下、「レーベルプリント動作」と表記する。）を識別する。すなわち、ＭＦＰ１０Ａ、１０Ｂのプリンタ１１は、被記録媒体に画像を記録する記録位置に、記録用紙のみならず、レーベルを搬送するハードウェアを備えている。
【００２４】
動作ＩＤ“シートスキャン”は、記録用紙に記録された画像を読み取ってスキャンデータを生成するスキャン動作（以下、「シートスキャン動作」と表記する。）を識別する。動作ＩＤ“レーベルスキャン”は、レーベルに記録された画像を読み取ってスキャンデータを生成するスキャン動作（以下、「レーベルスキャン動作」と表記する。）を識別する。すなわち、ＭＦＰ１０Ａは、スキャナ１２を備えていない所謂プリンタ単能機である。一方、ＭＦＰ１０Ｂは、スキャンデータで示される画像上において、レーベルの中心位置を特定する画像処理機能を備えている。
【００２５】
携帯端末５０は、図２（Ｂ）に示されるように、ディスプレイ５３と、入力Ｉ／Ｆ５４と、通信Ｉ／Ｆ５５と、ＣＰＵ６１と、メモリ６２と、通信バス６３とを主に備える。携帯端末５０に含まれるディスプレイ５３、入力Ｉ／Ｆ５４、通信Ｉ／Ｆ５５、ＣＰＵ６１、メモリ６２、及び通信バス６３は、ＭＦＰ１０に含まれるディスプレイ２３、入力Ｉ／Ｆ２４、通信Ｉ／Ｆ２５、ＣＰＵ３１、メモリ３２、及び通信バス３３と同様の構成であるので、説明は省略する。ＣＰＵ６１及びメモリ６２は、コントローラの一例である。
【００２６】
携帯端末５０は、例えば、携帯電話、スマートフォン、或いはタブレット端末等である。より詳細には、携帯端末５０のディスプレイ５３は、表示画面のサイズが１２インチ以下、より好ましくは８インチ以下であるのが望ましい。また、携帯端末５０の入力Ｉ／Ｆ５４は、ディスプレイ５３の表示画面に重ねられたタッチセンサであるのが望ましい。メモリ６２は、ＯＳ６４と、端末プログラム６５と、レーベルプログラム６６と、地図プログラム６７とを記憶している。
【００２７】
ＯＳ６４は、例えば、Ａｎｄｒｏｉｄ（Google inc.の登録商標）  ＯＳ、ｉＯＳ（Cisco Systems,Inc.の登録商標）、Ｗｉｎｄｏｗｓ  Ｐｈｏｎｅ（Microsoft Corporationの登録商標）  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ等であってもよい。ＯＳ６４は、携帯端末５０にインストールされた複数のプログラムを並行して実行することができる。複数のプログラムは、例えば、時分割多重方式によって仮想的に並行して実行される。また、ＯＳ６４は、並行して実行する複数のプログラムのうちの１つをフォアグラウンドで実行し、その他のプログラムをバックグラウンドで実行する。
【００２８】
フォアグラウンドは、例えば、当該プログラムの実行に拠る画面がディスプレイ５３の表示領域の大部分に表示されている状態である。バックグラウンドは、例えば、当該プログラムと異なるプログラムの実行に拠る画面がディスプレイ５３の表示領域の大部分に表示されている状態である。すなわち、携帯端末５０は、並行して実行する複数のプログラムのうち、フォアグラウンドで実行されているプログラムの実行に拠る画面のみをディスプレイ５３に表示させることができる。
【００２９】
端末プログラム６５は、通信Ｉ／Ｆ５５を通じて接続されたＭＦＰ１０に、画像処理動作を実行させるプログラムである。ＭＦＰ１０に実行させる画像処理動作は、端末プログラム６５が入力Ｉ／Ｆ５４を通じてユーザに指定させてもよいし、携帯端末５０にインストールされた他のプログラムから指定されてもよい。すなわち、端末プログラム６５は、他のプログラムからの指示に従ってＭＦＰ１０に画像処理動作を実行させる所謂デバイスドライバとは異なるものである。
【００３０】
レーベルプログラム６６は、レーベルスキャン動作で生成したスキャンデータを端末プログラム６５を通じてＭＦＰ１０から取得し、取得したスキャンデータからレーベルに記録する画像を示すレーベル画像データを生成する機能を有する。また、レーベルプログラムは、入力Ｉ／Ｆ５４を通じたユーザ操作に従ってレーベル画像データを生成し、生成したレーベル画像データを対象とするレーベルプリント動作を端末プログラム６５を通じてＭＦＰ１０に実行させる機能を有する。
【００３１】
地図プログラム６７は、不図示のサーバから取得した地図画像データの一部を入力Ｉ／Ｆ５４を通じたユーザ操作に従って抽出し、抽出した地図画像データを対象とするシートプリント動作を端末プログラム６５を通じてＭＦＰ１０に実行させる機能を有する。また図示は省略するが、名刺プログラムは、シートスキャン動作で生成したスキャンデータを端末プログラム６５を通じてＭＦＰ１０から取得し、取得したスキャンデータに含まれる文字列（例えば、氏名、会社名、電話番号、メールアドレス等）をテキストデータとして抽出する機能を有する。
【００３２】
また、端末プログラム６５は、携帯端末５０にインストールされたレーベルプログラム６６及び地図プログラム６７を、所謂プラグインとして起動することができる。同様に、レーベルプログラム６６及び地図プログラム６７は、携帯端末５０にインストールされた端末プログラム６５を、所謂プラグインとして起動することができる。プラグインは、外部プログラムの一例である。なお、外部プログラムは、起動元のプログラムとは別個のプログラムで且つ独立して実行可能なプログラムであって、起動元のプログラムのサブルーチンとは異なる。また、外部プログラムは、起動元のプログラムと同じ携帯端末５０で動作するプログラムである。
【００３３】
外部プログラムは、例えば、ＯＳ６４が提供するＡＰＩ（以下、「起動ＡＰＩ」と表記する。）によって起動される。起動元のプログラムは、例えば、外部プログラムのプログラムＩＤを引数として指定して、起動ＡＰＩを実行する。ＯＳ６４は、起動ＡＰＩが実行されたことに応じて、指定されたプログラムＩＤで識別される外部プログラムを起動する。そして、外部プログラムは、所定の動作を実行し、当該動作の実行結果を起動ＡＰＩの戻り値として起動元のプログラムに引き渡す。なお、外部プログラムは、ＯＳ６４によって提供される共有機能によって起動されてもよい。
【００３４】
メモリ６２は、例えば図３に示されるように、プログラムリストを記憶することができる。プログラムリストは、１以上のプログラムレコードを含む。プログラムレコードは、例えば、端末プログラム６５のインストール時にメモリ６２に記憶される。プログラムレコードは、端末プログラム６５が起動可能な複数のプログラムのうちの１つに対応する。プログラムレコードは、プログラムＩＤと、インストールフラグと、ＰＩ機能リストと、コンテンツ情報とを含む。
【００３５】
プログラムＩＤは、端末プログラム６５が起動可能なプログラムを識別する。すなわち、レーベルプログラム６６はプログラムＩＤ“レーベル”で識別され、地図プログラム６７はプログラムＩＤ“地図”で識別され、名刺プログラムはプログラムＩＤ“名刺”で識別される。インストールフラグは、対応するプログラムＩＤで識別されるプログラムが携帯端末５０にインストールされているか否かを示す。インストールフラグには、既にインストールされていることに対応する第１値“ＹＥＳ”、或いは未だインストールされていないことに対応する第２値“ＮＯ”が設定される。
【００３６】
ＰＩ機能リストは、対応するプログラムＩＤで識別されるプログラムが、端末プログラム６５を通じてＭＦＰ１０に指示し得る指定動作を示す情報である。すなわち、レーベルプログラム６６、地図プログラム６７、及び名刺プログラムは、１以上の指定動作の実行を端末プログラム６５を通じてＭＦＰ１０に指示することができる。ＰＩ機能リストは、指定動作の動作ＩＤ（以下、「指定動作ＩＤ」と表記する）を示す。より詳細には、ＰＩ機能リストは、複数の動作ＩＤそれぞれに対応付けて、指定動作であることに対応する第３値“ＯＮ”、或いは指定動作でないことに対応する第４値“ＯＦＦ”を含む。
【００３７】
一例として、ＰＩ機能リストは、Ａｎｄｒｏｉｄ  ＯＳによって管理される所謂マニュフェストファイルに定義されていてもよい。他の例として、端末プログラム６５は、外部プログラムが提供する関数を実行することによって、当該関数の戻り値としてＰＩ機能リストを外部プログラムから取得してもよい。
【００３８】
コンテンツ情報は、対応するプログラムＩＤで識別されるプログラムから、起動ＡＰＩの戻り値として取得した動作ＩＤ及びＵＲＩ（Uniform Resource Identifierの略）を含む。動作ＩＤは、ＭＦＰ１０に実行させる画像処理動作を識別するための情報である。ＵＲＩは、対応する動作ＩＤで識別される画像処理動作の対象となる画像データを識別するデータＩＤの一例である。コンテンツ情報は、後述する指示受付処理において、端末プログラム６５によってプログラムレコードに登録される。プログラムレコードは、複数のコンテンツ情報を含んでもよいし、コンテンツ情報を含まなくてもよい。
【００３９】
また図示は省略するが、メモリ６２は、指定装置情報を記憶することができる。指定装置情報は、後述するデバイス選択処理で指定されたＭＦＰ１０（以下、「指定装置」と表記する。）のＭＩＢに記憶された装置情報である。一方、ＭＦＰ１０が指定されていないとき、メモリ６２には、指定装置情報が記憶されていない。
【００４０】
［システム１００の動作］
図４〜図９を参照して、本実施形態に係るシステム１００の動作を説明する。なお、図４のメイン処理を開始する時点において、メモリ６２には、ＭＦＰ１０Ａの装置情報が指定装置情報として記憶されているものとする。
【００４１】
本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったＣＰＵ３１、６１の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「制御」等の処理は、ＣＰＵ３１、６１の処理を表している。ＣＰＵ３１、６１による処理は、ＯＳ３４、６４を介したハードウェア制御も含む。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
【００４２】
携帯端末５０のＯＳ６４は、図１０（Ａ）に示されるメニュー画面をディスプレイ５３に表示させる。メニュー画面は、複数のプログラムアイコン１１１、１１２、１１３、１１４を含む。プログラムアイコン１１１〜１１４は、携帯端末５０にインストールされたプログラムに対応する。例えば、プログラムアイコン１１１は端末プログラム６５に対応し、プログラムアイコン１１２はレーベルプログラム６６に対応し、プログラムアイコン１１３は地図プログラム６７に対応する。そして、ＯＳ６４は、プログラムアイコン１１１〜１１４の１つを指定するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける。
【００４３】
一例として、ＯＳ６４は、プログラムアイコン１１２の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて、レーベルプログラム６６を起動させ、且つ当該プログラムをフォアグラウンドで実行する。ここで起動されたレーベルプログラム６６は、後述するレーベルＰＩ処理を実行する。他の例として、ＯＳ６４は、プログラムアイコン１１１の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて、端末プログラム６５を起動させ、且つ当該プログラムをフォアグラウンドで実行する。以下、プログラムアイコン１１１が指定された場合の処理を説明する。
【００４４】
携帯端末５０の端末プログラム６５は、ＯＳ６４によって起動されたことに応じて、メイン画面生成処理を実行する（Ｓ１１）。メイン画面生成処理は、図１０（Ｂ）に示されるメイン画面を生成する処理である。より詳細には、メイン画面生成処理は、携帯端末５０にインストールされた外部プログラムに対応するアイコンを、図１０（Ｂ）に示されるメイン画面に含めるか否かを決定する処理である。図５を参照して、メイン画面生成処理の詳細を説明する。
【００４５】
端末プログラム６５は、プログラムリストに含まれる全てのプログラムレコードそれぞれについて（Ｓ３７：Ｎｏ）、Ｓ３１〜Ｓ３６の処理を実行する。より詳細には、端末プログラム６５は、プログラムレコードのインストールフラグの設定値を判断する（Ｓ３１）。また、端末プログラム６５は、プログラムレコードがコンテンツ情報を含むか否かを判断する（Ｓ３２）。さらに、端末プログラム６５は、メモリ６２に記憶された指定装置情報が、コンテンツ情報の動作ＩＤを含むか否かを判断する（Ｓ３３）。そして、端末プログラム６５は、Ｓ３１〜Ｓ３３の判断結果に応じて、プログラムレコードに対応する外部プログラムのアイコンを決定する。
【００４６】
すなわち、端末プログラム６５は、図３の１行目のプログラムレコードについて、インストールフラグに第１値“ＹＥＳ”が設定されおり（Ｓ３１：Ｙｅｓ）、且つコンテンツ情報を含まないと判断したことに応じて（Ｓ３２：Ｎｏ）、図１０（Ｂ）に示されるように、レーベルプログラム６６に対応するＰＩアイコン１２３を、メイン画面に含めると決定する（Ｓ３６）。
【００４７】
ＰＩアイコン１２３は、コンテンツ情報が対応付けられていない外部プログラムに対応する第１オブジェクトの一例である。ＰＩアイコン１２３には、レーベルプログラム６６を示す画像が用いられる。より詳細には、ＰＩアイコン１２３は、レーベルプログラム６６の名称、略称、ロゴマーク等、レーベルプログラム６６に対応するアイコンであることを、携帯端末５０のユーザが認識できるものであればよい。
【００４８】
また、端末プログラム６５は、図３の２行目のプログラムレコードについて、インストールフラグに第１値“ＹＥＳ”が設定されおり（Ｓ３１：Ｙｅｓ）、コンテンツ情報を含み（Ｓ３２：Ｙｅｓ）、且つ指定装置情報が動作ＩＤ“シートプリント”を含むと判断したことに応じて（Ｓ３３：Ｙｅｓ）、図１０（Ｂ）に示されるように、地図プログラム６７に対応するコンテンツアイコン１２４を、指定可能な態様でメイン画面に含めると決定する（Ｓ３４）。
【００４９】
コンテンツアイコン１２４は、例えば図１０（Ｂ）に示されるように、ＵＲＩで示される画像データを加工した所謂サムネイル画像であってもよい。「加工」とは、例えば、ＵＲＩで示される画像データの一部をトリミングすることでもよいし、画像データで示される画像の解像度を低下させることでもよい。または、コンテンツアイコン１２４は、プログラムレコードに含まれるコンテンツ情報の数を表すバッヂ画像であってもよい。バッヂ画像は、対応する外部プログラムのＰＩアイコンの周囲（例えば、右上）に配置されてもよい。
【００５０】
一方図示は省略するが、端末プログラム６５は、インストールフラグに第１値“ＹＥＳ”が設定されおり（Ｓ３１：Ｙｅｓ）、コンテンツ情報を含み（Ｓ３２：Ｙｅｓ）、且つ指定装置情報が動作ＩＤ“シートプリント”を含まないと判断したことに応じて（Ｓ３３：Ｎｏ）、地図プログラム６７に対応するコンテンツアイコン１２４を、指定不能な態様でメイン画面に含めると決定する（Ｓ３５）。指定不能な態様とは、例えば、グレーアウト等であってもよい。
【００５１】
さらに、端末プログラム６５は、図３の３行目のプログラムレコードについて、インストールフラグに第２値“ＮＯ”が設定されていると判断したことに応じて（Ｓ３１：Ｎｏ）、名刺プログラムに対応するアイコンを、メイン画面に含めない。そして、端末プログラム６５は、全てのプログラムレコードに対してＳ３１〜Ｓ３６の処理を実行したことに応じて（Ｓ３７：Ｙｅｓ）、メイン画面生成処理を終了する。
【００５２】
次に図４に戻って、端末プログラム６５は、図１０（Ｂ）に示されるメイン画面をディスプレイ５３に表示させる（Ｓ１２）。メイン画面は、動作アイコン１２１、１２２と、ＰＩアイコン１２３と、指定可能な態様のコンテンツアイコン１２４と、切替アイコン１２５とを含む第１画面の一例である。そして、端末プログラム６５は、メイン画面に対するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける（Ｓ１３〜Ｓ１６）。
【００５３】
動作アイコン１２１は、シートプリント動作の実行指示に対応する。動作アイコン１２２は、シートスキャン動作の実行指示に対応する。ＰＩアイコン１２３及びコンテンツアイコン１２４は、メイン画面生成処理でメイン画面に含めると決定したアイコンである。切替アイコン１２５は、指定装置の切替指示に対応する。切替アイコン１２５には、指定装置情報に含まれる装置ＩＤ“ＭＦＰ−Ａ”が記述されている。一方、指定装置情報がメモリ６２に記憶されていない場合、切替アイコン１２５には、指定装置が選択されていないことを示す「未選択」の文字列が記述される。
【００５４】
次に、端末プログラム６５は、例えば、切替アイコン１２５の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１３：Ｙｅｓ）、デバイス選択処理を実行する（Ｓ１７）。なお、Ｓ１７で実行するデバイス選択処理の検索条件は、「通信ネットワーク１０１を通じて通信可能な全てのＭＦＰ」である。図６を参照して、デバイス選択処理の詳細を説明する。
【００５５】
まず、端末プログラム６５は、例えば、ＳＮＭＰ（Simple Network Management Protocolの略）を用いて、通信Ｉ／Ｆ５５を通じて通信が可能な複数のＭＦＰ１０を検索する（Ｓ４１）。具体的には、端末プログラム６５は、通信Ｉ／Ｆ５５を通じて通信ネットワーク１０１に送信要求情報をブロードキャストする。次に、端末プログラム６５は、送信要求情報の応答としてＭＦＰ１０Ａ、１０Ｂが送信した装置情報を、通信Ｉ／Ｆ５５を通じて受信する。すなわち、端末プログラム６５は、装置情報の送信元のＭＦＰ１０Ａ、１０Ｂを、通信可能なＭＦＰ１０として特定する。なお、通信可能なＭＦＰ１０を検索する方法は、周知の他の方法であってもよい。
【００５６】
次に、端末プログラム６５は、検索条件に合致するＭＦＰ１０をＳ４１で発見したか否かを判断する（Ｓ４２）。次に、端末プログラム６５は、ＭＦＰ１０Ａ、１０Ｂを発見したと判断したことに応じて（Ｓ４２：Ｙｅｓ）、図１１（Ａ）に示されるデバイス選択画面をディスプレイ５３に表示させる（Ｓ４３）。そして、端末プログラム６５は、デバイス選択画面に対するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける（Ｓ４４）。
【００５７】
デバイス選択画面は、デバイスアイコン１３１、１３２を含む。デバイスアイコン１３１、１３２は、ステップＳ４１で発見したＭＦＰ１０Ａ、１０Ｂに対応する。また、デバイスアイコン１３１、１３２には、対応するＭＦＰ１０Ａ、１０Ｂの装置ＩＤが記述されている。一方、Ｓ１７で実行するデバイス選択処理において、デバイスアイコン１３１、１３２には、「レーベルプリント」、「レーベルスキャン」等の文字列が記述されていなくてもよい。
【００５８】
次に、端末プログラム６５は、例えばデバイスアイコン１３１の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ４４：Ｙｅｓ）、デバイスアイコン１３１に対応するＭＦＰ１０Ｂから受信した装置情報を、指定装置情報としてメモリ６２に記憶させる（Ｓ４５）。メモリ６２に既に指定装置情報が記憶されている場合、端末プログラム６５は、当該指定装置情報を新たな指定装置情報で上書きする。一方、端末プログラム６５は、Ｓ４１でＭＦＰ１０を発見しなかったと判断したことに応じて（Ｓ４２：Ｎｏ）、Ｓ４３〜Ｓ４５の処理をスキップして、デバイス選択処理を終了する。
【００５９】
次に図４に戻って、端末プログラム６５は、メイン画面をディスプレイ５３に表示させる（Ｓ１２）。デバイスアイコン１３１が指定された後のメイン画面において、切替アイコン１２５には、指定装置ＩＤ“ＭＦＰ−Ｂ”が記述される。次に、端末プログラム６５は、例えばＰＩアイコン１２３の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１４：Ｙｅｓ）、ＰＩ起動処理を実行する（Ｓ１８）。ＰＩ起動処理は、指定されたＰＩアイコン１２３に対応するレーベルプログラム６６（以下、「指定プログラム」と表記する。）を起動する処理である。図７を参照して、ＰＩ起動処理の詳細を説明する。
【００６０】
まず、端末プログラム６５は、ＰＩアイコン１２３に対応するプログラムレコードのＰＩ機能リストを、プログラムリストから読み出す（Ｓ５１）。次に、端末プログラム６５は、読み出したＰＩ機能リストで示される指定動作を指定装置がサポートしているか否かを判断する（Ｓ５２）。換言すれば、端末プログラム６５は、ＰＩ機能リストで示される指定動作ＩＤを含む指定装置情報がメモリ６２に記憶されているか否かを判断する（Ｓ５２）。
【００６１】
端末プログラム６５は、指定動作の少なくとも一部を指定装置がサポートしていると判断したことに応じて（Ｓ５２：Ｙｅｓ）、Ｓ５３〜Ｓ５５の処理をスキップして、複数の指定動作ＩＤ“レーベルプリント”、“レーベルスキャン”のうち、指定装置情報に含まれる動作ＩＤを抽出する（Ｓ５６）。そして、端末プログラム６５は、レーベルプログラム６６のプログラムＩＤ及びサポート機能リストを引数として指定して、起動ＡＰＩを呼び出す（Ｓ５７、Ｓ５９）。
【００６２】
サポート機能リストは、Ｓ５６で抽出した動作ＩＤのリストである。一例として、ＭＦＰ１０Ａが指定装置である場合、端末プログラム６５は、一部の指定動作ＩＤ“レーベルプリント”のみを抽出し、抽出した動作ＩＤ“レーベルプリント”を示すサポート機能リストを、起動ＡＰＩの引数として指定する（Ｓ５６：Ｎｏ→Ｓ５９）。他の例として、ＭＦＰ１０Ｂが指定装置である場合、端末プログラム６５は、全ての指定動作ＩＤ“レーベルプリント”、“レーベルスキャン”を抽出し、全ての指定動作ＩＤを示すサポート機能リストを、起動ＡＰＩの引数として指定する（Ｓ５６：Ｙｅｓ→Ｓ５７）。
【００６３】
一方、端末プログラム６５は、指定装置が指定動作を全くサポートしていないと判断したことに応じて（Ｓ５２：Ｎｏ）、図１１（Ｂ）に示される確認画面をディスプレイ５３に表示させる（Ｓ５３）。なお、「指定装置が指定動作を全くサポートしていない」とは、メモリ６２に記憶されている指定装置情報が指定動作ＩＤを１つも含まないこと、或いはメモリ６２に指定装置情報が記憶されていないことを指す。
【００６４】
確認画面は、「指定装置が指定動作をサポートしていません。指定装置を選択しますか？」とのメッセージと、［ＹＥＳ］アイコン１４１と、［ＮＯ］アイコン１４２とを含む。そして、端末プログラム６５は、確認画面に対するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける（Ｓ５４）。
【００６５】
次に、端末プログラム６５は、［ＹＥＳ］アイコン１４１の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ５４：ＹＥＳ）、デバイス選択処理を実行する（Ｓ５５）。そして、端末プログラム６５は、デバイス選択処理で新たにメモリ６２に記憶された指定装置情報を用いて、Ｓ５６以降の処理を実行する。すなわち、端末プログラム６５は、指定動作ＩＤを含む指定装置情報がメモリ６２に記憶されている状態で、Ｓ５６以降の処理を実行する。［ＹＥＳ］アイコン１４１の指定は、第１指示操作の一例である。
【００６６】
Ｓ５５で実行するデバイス選択処理の検索条件は、「通信ネットワーク１０１を通じて通信可能なＭＦＰのうち、指定動作の少なくとも１つを実行可能なＭＦＰ」である。以下、Ｓ１７で説明したデバイス選択処理との共通点の詳しい説明は省略し、相違点を中心に説明する。
【００６７】
一例として、端末プログラム６５は、Ｓ４１において、ＭＦＰ１０Ａ、１０Ｂから装置情報を受信した場合に、ＭＦＰ１０Ａ、１０Ｂのうちから、装置情報が指定動作ＩＤの少なくとも１つを含むＭＦＰを抽出してもよい。他の例として、端末プログラム６５は、Ｓ４１において、指定装置ＩＤを含む送信要求情報をブロードキャストしてもよい。そして、ＭＦＰ１０Ａ、１０Ｂは、メモリ３２に記憶された装置情報が指定装置ＩＤを含む場合にのみ、通信Ｉ／Ｆ２５を通じて携帯端末５０に送信してもよい。すなわち、端末プログラム６５は、指定動作ＩＤの少なくとも１つを含む装置情報のみを受信することになる。
【００６８】
次に、端末プログラム６５は、Ｓ４３において、図１１（Ａ）に示されるように、全ての指定動作を実行可能なＭＦＰ１０Ｂに対応するデバイスアイコン１３１を、一部の指定動作のみを実行可能なＭＦＰ１０Ａに対応するデバイスアイコン１３２より優先して表示する。また、端末プログラム６５は、ＭＦＰ１０Ａ、１０Ｂが実行可能な指定動作を、対応するデバイスアイコン１３１、１３２を通じて報知する。
【００６９】
一例として、「優先して表示」とは、デバイスアイコン１３１をデバイスアイコン１３２より配列順（例えば、上下方向）の前方に配置することを指してもよい。他の例として、「優先して表示」とは、全ての指定動作を実行可能なＭＦＰ１０Ｂを発見した場合にデバイスアイコン１３１のみを表示し、全ての指定動作を実行可能なＭＦＰ１０Ｂを発見しなかった場合にデバイスアイコン１３２を表示することを指してもよい。また、「デバイスアイコン１３１、１３２を通じて指定動作を報知する」とは、例えば、対応するＭＦＰ１０Ａ、１０Ｂが実行可能な指定動作を示す情報（例えば、動作名或いは動作ＩＤのテキスト、動作を表す画像）を、デバイスアイコン１３１、１３２に記述することを指してもよい。
【００７０】
一方、端末プログラム６５は、［ＮＯ］アイコン１４２の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ５４：ＮＯ）、Ｓ５１で取得したＰＩ機能リストが出力動作の動作ＩＤを含むか否かを判断する（Ｓ５８）。すなわち、端末プログラム６５は、指定プログラムであるレーベルプログラム６６が出力動作を実行可能か否かを判断する。［ＮＯ］アイコン１４２の指定は、第２指示操作の一例である。
【００７１】
次に、端末プログラム６５は、レーベルプログラム６６が出力動作“レーベルプリント動作”を実行可能と判断したことに応じて（Ｓ５８：出力あり）、出力動作の動作ＩＤ“レーベルプリント”を示すサポート機能リストを起動ＡＰＩの引数として指定して、レーベルプログラム６６を起動する（Ｓ５９）。一方、端末プログラム６５は、指定プログラムが出力動作を実行不能と判断したことに応じて（Ｓ５８：入力のみ）、サポート機能リストに代えてガイダンスフラグを起動ＡＰＩの引数として指定して、指定プログラムを起動する（Ｓ６０）。ガイダンスフラグは、指定動作を実行可能な指定装置が指定されていないことを示す情報である。
【００７２】
ＯＳ６４は、起動ＡＰＩが実行されたことに応じて（Ｓ５７、Ｓ５９、Ｓ６０）、レーベルプログラム６６を起動させ、且つレーベルプログラム６６をフォアグラウンドで実行する。また、ＯＳ６４は、フォアグランドで実行していた端末プログラム６５をバックグラウンドに切り替える。起動ＡＰＩによって起動されたレーベルプログラム６６は、レーベルＰＩ処理を実行する。図８を参照して、レーベルＰＩ処理の詳細を説明する。
【００７３】
まず、レーベルプログラム６６は、起動ＡＰＩの引数としてガイダンスフラグを取得したことに応じて（Ｓ７１：ガイダンスフラグ）、不図示のガイダンス画面をディスプレイ５３に表示させ（Ｓ７２）、レーベルＰＩ処理を終了する。ガイダンス画面は、例えば、指定装置が指定動作を実行できないために、以降の処理を継続できないことを報知するための画面である。これにより、ＯＳ６４は、バックグラウンドの端末プログラム６５をフォアグラウンドで実行する。そして、フォアグラウンドに切り替えられた端末プログラム６５は、例えば、Ｓ１１以降の処理を実行する。
【００７４】
また、レーベルプログラム６６は、起動ＡＰＩの引数としてサポート機能リストを取得したことに応じて（Ｓ７１：サポート機能リスト）、Ｓ７３〜Ｓ７４の処理をスキップして、指定装置が指定動作をサポートしているか否かを判断する（Ｓ７５）。換言すれば、レーベルプログラム６６は、Ｓ７１で取得したサポート機能リストが指定装置ＩＤ“レーベルプリント”、“レーベルスキャン”を含むか否かを判断する（Ｓ７５）。Ｓ７５の処理は、第１判断処理の一例である。
【００７５】
次に、レーベルプログラム６６は、図１２（Ａ）に示されるメニュー画面をディスプレイ５３に表示させる（Ｓ７７、Ｓ７８）。メニュー画面は、動作アイコン１５１、１５２を含む第１画面の一例である。動作アイコン１５１、１５２は、レーベルプログラム６６の指定動作である“レーベルプリント動作”、“レーベルスキャン動作”に対応する動作オブジェクトの一例である。そして、レーベルプログラム６６は、メニュー画面に対するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける（Ｓ７９）。Ｓ７７、Ｓ７８の処理は第１表示処理の一例であり、Ｓ７９の処理は第１受付処理の一例である。
【００７６】
なお、サポート機能リストが全ての指定装置ＩＤを含むと判断した場合（Ｓ７５：ＡＬＬ）、レーベルプログラム６６は、全ての動作アイコン１５１、１５２を、指定可能な態様でメニュー画面に表示させる（Ｓ７７）。一方、サポート機能リストが一部の指定動作ＩＤ“レーベルプリント”のみを含むと判断した場合（Ｓ７５：一部）、レーベルプログラム６６は、指定装置がサポートするレーベルプリント動作に対応する動作アイコン１５１を指定可能な態様で、指定装置がサポートしていないレーベルスキャン動作に対応する動作アイコン１５２を指定不能な態様で、メニュー画面に表示させる（Ｓ７８）。
【００７７】
次に、レーベルプログラム６６は、指定可能な態様の動作アイコン１５１の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ７９：プリント）、図１２（Ｂ）に示されるレーベル編集画面をディスプレイ５３に表示させる（Ｓ８０）。レーベル編集画面は、レーベル画像１６１と、編集アイコン１６２、１６３、１６４と、［プリント］アイコン１６５とを含む。そして、レーベルプログラム６６は、レーベル編集画面に対するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける（Ｓ８１）。
【００７８】
レーベル画像１６１は、編集アイコン１６２〜１６４を用いて編集された画像である。編集アイコン１６２は、レーベル画像１６１に文字列を追加する指示に対応する。編集アイコン１６３は、レーベル画像１６１に色を付加する指示に対応する。編集アイコン１６４は、レーベル画像１６１に写真を追加する指示に対応する。［プリント］アイコン１６５は、レーベルプリント動作の実行指示に対応する。
【００７９】
そして、レーベルプログラム６６は、編集アイコン１６２〜１６４対するユーザ操作に従ってレーベル画像１６１を編集し、編集後のレーベル画像１６１を示すレーベル画像データをメモリ６２に記憶させる。この処理は、レーベルプリント動作の実行条件の指定を受け付ける第２受付処理の一例である。レーベルプリント動作の実行条件とは、例えば、レーベルプリント動作の対象となる画像データ、レーベルプリント動作の画質（例えば、ファイン、ノーマル等）、レーベルに記録する画像の色（例えば、カラー、モノクロ等）等であってもよい。
【００８０】
次に、レーベルプログラム６６は、［プリント］アイコン１６５の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ８１：Ｙｅｓ）、レーベルプリント動作の実行を指定装置に指示する動作指示処理を、端末プログラム６５に指示する（Ｓ８２）。より詳細には、レーベルプログラム６６は、動作ＩＤ“レーベルプリント”及びレーベル画像データのＵＲＩを引数として指定して、端末プログラム６５が提供する動作指示関数を実行する。Ｓ８２の処理は、第２指示処理の一例である。
【００８１】
一方、レーベルプログラム６６は、指定可能な態様の動作アイコン１５２の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ７９：スキャン）、動作ＩＤ“レーベルスキャン”を引数として指定して、動作指示関数を実行する（Ｓ８３）。次に、レーベルプログラム６６は、指定装置が生成したスキャンデータを端末プログラム６５を通じて取得する（Ｓ８４）。レーベルプログラム６６は、例えば、動作指示関数の戻り値としてスキャンデータを取得すればよい。Ｓ８３の処理は第２指示処理の一例であり、Ｓ８４の処理は第２取得処理の一例である。
【００８２】
そして、レーベルプログラム６６は、Ｓ８４で取得したスキャンデータを出力する（Ｓ８５）。一例として、レーベルプログラム６６は、取得したスキャンデータで示されるスキャン画像を含むレーベル編集画面を、ディスプレイ５３に表示させてもよい。他の例として、レーベルプログラム６６は、取得したスキャンデータをメモリ６２に記憶させてもよい。Ｓ８５の処理は、出力処理の一例である。
【００８３】
また、レーベルプログラム６６は、図１０（Ａ）に示されるプログラムアイコン１１２が指定されたことに応じて起動された場合にも、レーベルＰＩ処理を実行する。但し、この場合のレーベルプログラム６６は、引数として情報を取得しない（Ｓ７１：なし）。そして、レーベルプログラム６６は、リスト通知フラグ及び指定動作ＩＤ“レーベルプリント”、“レーベルスキャン”を引数として指定して、動作指示関数を実行する（Ｓ７３）。リスト通知フラグは、サポート機能リストの通知を端末プログラム６５に指示するための情報である。
【００８４】
次に、レーベルプログラム６６は、Ｓ７３で実行した動作指示関数の戻り値として、サポート機能リストを端末プログラム６５から取得する（Ｓ７４：Ｙｅｓ）。Ｓ７４の処理は、第１取得処理の一例である。次に、レーベルプログラム６６は、Ｓ７４で取得したサポート機能リストを用いて、Ｓ７５以降の処理を実行する。
【００８５】
なお、レーベルプログラム６６は、指定装置が指定動作をサポートしていないと判断したことに応じて（Ｓ７５：０）、デバイス選択フラグ及び指定動作ＩＤ“レーベルプリント”、“レーベルスキャン”を引数として指定して、動作指示関数を実行する（Ｓ７６）。デバイス選択フラグは、デバイス選択処理の実行を端末プログラム６５に指示するための情報である。Ｓ７６の処理は、第１指示処理の一例である。
【００８６】
次に、レーベルプログラム６６は、Ｓ７６で実行した動作指示関数の戻り値として、新たなサポート機能リストを端末プログラム６５から取得する（Ｓ７４：Ｙｅｓ）。そして、レーベルプログラム６６は、Ｓ７４で取得したサポート機能リストを用いて、Ｓ７５以降の処理を実行する。すなわち、レーベルプログラム６６は、指定装置ＩＤを含む指定装置情報がメモリ６２に記憶されている状態で、Ｓ７７以降の処理を実行する。Ｓ７７以降の処理は既に説明したので、説明を省略する。
【００８７】
ＯＳ６４は、動作指示関数が実行されたことに応じて、端末プログラム６５をフォアグラウンドで実行し、フォアグラウンドで実行していたレーベルプログラム６６をバックグラウンドに切り替える。そして、端末プログラム６５は、動作指示関数が実行されたことに応じて、指示受付処理を実行する。図９を参照して、指示受付処理の詳細を説明する。
【００８８】
まず、端末プログラム６５は、動作指示関数の引数として指定された情報を取得する（Ｓ９１、Ｓ９５、Ｓ１０１）。端末プログラム６５は、例えば、動作ＩＤ“レーベルスキャン”を動作指示関数の引数として取得したことに応じて（Ｓ９１：Ｙｅｓ）、通信Ｉ／Ｆ５５を通じて指定装置にレーベルスキャン指示情報を送信する（Ｓ９２）。レーベルスキャン指示情報は、レーベルスキャン動作を実行させる動作指示情報の一例である。レーベルスキャン指示情報は、例えば、動作ＩＤ“レーベルスキャン”を含む。Ｓ９２の処理は、動作指示処理の一例である。
【００８９】
一方図示は省略するが、ＭＦＰ１０の装置プログラム３５は、通信Ｉ／Ｆ２５を通じて携帯端末５０からレーベルスキャン指示情報を受信する。そして、装置プログラム３５は、受信したレーベルスキャン指示情報に従ったレーベルスキャン動作を、スキャナ１２に実行させる。そして、装置プログラム３５は、スキャナ１２が生成したスキャンデータを、通信Ｉ／Ｆ２５を通じて携帯端末５０に送信する。
【００９０】
次に、端末プログラム６５は、レーベルスキャン指示情報の応答として、通信Ｉ／Ｆ５５を通じてＭＦＰ１０からスキャンデータを受信する（Ｓ９３：Ｙｅｓ）。そして、端末プログラム６５は、Ｓ９３で受信したスキャンデータを、動作指示関数の戻り値として指定して、レーベルプログラム６６に引き渡す（Ｓ９４）。これにより、ＯＳ６４は、レーベルプログラム６６をフォアグラウンドで実行し、フォアグラウンドで実行していた端末プログラム６５をバックグラウンドに切り替える。
【００９１】
また、端末プログラム６５は、動作ＩＤ“レーベルプリント”及びＵＲＩを動作指示関数の引数として取得したことに応じて（Ｓ９５：Ｙｅｓ）、レーベルプリント動作を実行可能な指定装置が指定されているか否かを判断する（Ｓ９６）。すなわち、端末プログラム６５は、動作ＩＤ“レーベルプリント”を含む指定装置情報がメモリ６２に記憶されているか否かを判断する。
【００９２】
次に、端末プログラム６５は、レーベルプリント動作を実行可能な指定装置が指定されていないと判断したことに応じて（Ｓ９６：Ｎｏ）、デバイス選択処理を実行する（Ｓ９７）。Ｓ９７で実行するデバイス選択処理の検索条件は、「通信ネットワーク１０１を通じて通信可能なＭＦＰのうち、レーベルプリント動作を実行可能なＭＦＰ」である。Ｓ９７の処理は、検索条件が異なる点を除いてＳ５５と同様なので、説明は省略する。
【００９３】
次に、端末プログラム６５は、レーベルプリント動作を実行可能な指定装置が指定されたか否かを、Ｓ９７の処理後に再び判断する（Ｓ９８）。そして、端末プログラム６５は、Ｓ９６、Ｓ９８の一方でレーベルプリント動作を実行可能な指定装置が指定されていると判断したことに応じて（Ｓ９６：Ｙｅｓ／Ｓ９８：Ｙｅｓ）、通信Ｉ／Ｆ５５を通じて指定装置にレーベルプリント指示情報を送信する（Ｓ１００）。レーベルプリント指示情報は、レーベルプリント動作を実行させる動作指示情報の一例である。レーベルプリント指示情報は、例えば、動作ＩＤ“レーベルスキャン”と、レーベル画像データとを含む。Ｓ１００の処理は、動作指示処理の一例である。
【００９４】
一方図示は省略するが、ＭＦＰ１０の装置プログラム３５は、通信Ｉ／Ｆ２５を通じて携帯端末５０からレーベルプリント指示情報を受信する。そして、装置プログラム３５は、受信したレーベルプリント指示情報に従ったレーベルプリント動作を、プリンタ１１に実行させる。
【００９５】
また、端末プログラム６５は、レーベルプリント動作を実行可能な指定装置が指定されていないと判断したことに応じて（Ｓ９８：Ｎｏ）、Ｓ９５で取得した動作ＩＤ及びＵＲＩを、プログラムＩＤ“レーベル”のプログラムレコードに、コンテンツ情報として登録する（Ｓ９９）。レーベルプリント動作を実行可能な指定装置が指定されていないとＳ９８で判断される場合とは、例えば、レーベルプリント動作を実行可能なＭＦＰ１０がＳ４１で発見されなかった場合である。
【００９６】
また、端末プログラム６５は、デバイス選択フラグ及び指定動作ＩＤを動作指示関数の引数として取得したことに応じて（Ｓ１０１：デバイス選択）、デバイス選択処理を実行する（Ｓ１０２）。Ｓ１０２で実行するデバイス選択処理の検索条件は、「通信ネットワーク１０１を通じて通信可能なＭＦＰのうち、指定動作を実行可能なＭＦＰ」である。Ｓ１０２の処理はＳ５５と同様なので、説明は省略する。Ｓ１０２の処理は、装置指定処理の一例である。
【００９７】
そして、端末プログラム６５は、Ｓ１０１で取得した指定動作ＩＤのうち、Ｓ１０２でメモリ６２に記憶された指定装置情報に含まれる動作ＩＤを示すサポート機能リストを、動作指示関数の戻り値として指定して、レーベルプログラム６６に引き渡す（Ｓ１０３）。これにより、ＯＳ６４は、レーベルプログラム６６をフォアグラウンドで実行し、フォアグラウンドで実行していた端末プログラム６５をバックグラウンドに切り替える。
【００９８】
さらに、端末プログラム６５は、リスト通知フラグ及び指定動作ＩＤを動作指示関数の引数として取得したことに応じて（Ｓ１０１：リスト通知）、Ｓ１０１で取得した指定動作ＩＤのうち、メモリ６２に記憶されている指定装置情報に含まれる動作ＩＤを示すサポート機能リストを、動作指示関数の戻り値として指定して、レーベルプログラム６６に引き渡す（Ｓ１０３）。これにより、ＯＳ６４は、レーベルプログラム６６をフォアグラウンドで実行し、フォアグラウンドで実行していた端末プログラム６５をバックグラウンドに切り替える。
【００９９】
また図４に戻って、端末プログラム６５は、指定可能な態様のコンテンツアイコン１２４の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１５：Ｙｅｓ）、コンテンツアイコン１２４に対応するコンテンツ情報を、メモリ６２から読み出す。そして、端末プログラム６５は、通信Ｉ／Ｆ５５を通じて指定装置にシートプリント指示情報を送信する（Ｓ１９）。一方図示は省略するが、端末プログラム６５は、指定不能な態様のコンテンツアイコンの指定を入力Ｉ／Ｆ５４を通じて受け付けたとしても、Ｓ１９の処理を実行しない。
【０１００】
シートプリント指示情報は、読み出したコンテンツ情報のＵＲＩで示される画像データ“地図０１．ＪＰＥＧ”を対象として、読み出したコンテンツ情報の動作ＩＤ“シートプリント”で識別されるシートプリント動作を実行させるための情報である。シートプリント指示情報は、例えば、読み出したＵＲＩで示される画像データ“地図０１．ＪＰＥＧ”と、読み出した動作ＩＤ“シートプリント”とを含む。Ｓ１９におけるシートプリント指示情報は、第２指示情報の一例である。一方図示は省略するが、ＭＦＰ１０の装置プログラム３５は、通信Ｉ／Ｆ２５を通じて携帯端末５０からシートプリント指示情報を受信する。そして、装置プログラム３５は、受信したシートプリント指示情報に従ったシートプリント動作を、プリンタ１１に実行させる。
【０１０１】
また、端末プログラム６５は、動作アイコン１２１の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１６：Ｙｅｓ）、通信Ｉ／Ｆ５５を通じて指定装置にシートプリント指示情報を送信する（Ｓ２０）。Ｓ２０におけるシートプリント指示情報は、例えば、入力Ｉ／Ｆ５４を通じてユーザが指定した画像データを含む。さらに、端末プログラム６５は、動作アイコン１２２の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１６：Ｙｅｓ）、通信Ｉ／Ｆ５５を通じて指定装置にシートスキャン指示情報を送信する（Ｓ２０）。シートスキャン指示情報は、シートスキャン動作を実行させるための情報である。シートスキャン指示情報は、例えば、動作ＩＤ“シートスキャン”を含む。
【０１０２】
一方図示は省略するが、ＭＦＰ１０の装置プログラム３５は、通信Ｉ／Ｆ２５を通じて携帯端末５０からシートスキャン指示処理を受信する。そして、装置プログラム３５は、受信したシートスキャン指示情報に従ったシートスキャン動作を、スキャナ１２に実行させる。さらに、装置プログラム３５は、シートスキャン動作でスキャナ１２が生成したスキャンデータを、通信Ｉ／Ｆ２５を通じて携帯端末５０に送信する。そして、端末プログラム６５は、例えば、通信Ｉ／Ｆ５５を通じてＭＦＰ１０から受信したスキャンデータを、メモリ６２に記憶させる。
【０１０３】
［本実施形態の作用効果］
上記の実施形態に係るレーベルプログラム６６は、起動されたタイミングで指定装置が指定動作をサポートしているか否かを判断する（Ｓ７５）。そして、レーベルプログラム６６は、指定装置が指定動作をサポートしていない場合に、指定動作を実行可能なＭＦＰ１０のうちからユーザに指定装置を指定させる処理を、端末プログラム６５に実行させる（Ｓ７６→Ｓ１０２）。これにより、レーベルプログラム６６がＳ８２／Ｓ８３を実行する前に、適切な指定装置を簡単に選択させることができる。なお、上記の実施形態では、レーベルプログラム６６を指定プログラムとした例を説明したが、地図プログラム６７或いは名刺プログラムが指定プログラムとなった場合も同様である。
【０１０４】
また、上記の実施形態によれば、レーベルプログラム６６が指示し得る指定動作を指定装置がサポートしていない場合に（Ｓ５２：Ｎｏ）、レーベルプログラム６６を起動させるのに先立って（Ｓ５７／Ｓ５９）、指定動作を実行可能なＭＦＰ１０のうちから所望のＭＦＰ１０をユーザに指定させることができる（Ｓ５５）。これにより、起動しようとするレーベルプログラム６６に適したＭＦＰ１０を簡単に選択させることができる。
【０１０５】
また、上記の実施形態によれば、Ｓ５７、Ｓ５９において、指定装置がサポートしている指定動作の動作ＩＤが、起動ＡＰＩの引数としてレーベルプログラム６６に通知される。そして、レーベルプログラム６６は、図１２（Ａ）に示されるメニュー画面において、指定装置がサポートしている指定動作に対応する動作アイコンを指定可能にし、指定装置がサポートしていない指定動作に対応する動作アイコンを指定不能にする。このように、レーベルプログラム６６は、サポート機能リストを取得することによって、現在の指定装置を用いて利用可能な機能を、ユーザに報知すること等が可能となる。
【０１０６】
なお、レーベルプログラム６６は、指定装置がサポートしている指定動作が複数の場合にのみ、Ｓ７７〜Ｓ７９の処理を実行してもよい。一方、レーベルプログラム６６は、指定装置がレーベルプリント動作のみをサポートしている場合、Ｓ７７〜Ｓ７９の処理をスキップして、Ｓ８０〜Ｓ８２の処理を実行してもよい。同様に、レーベルプログラム６６は、指定装置がレーベルスキャン動作のみをサポートしている場合、Ｓ７７〜Ｓ７９の処理をスキップして、Ｓ８３〜Ｓ８５の処理を実行してもよい。
【０１０７】
すなわち、レーベルプログラム６６は、指定装置が指定動作を１つだけサポートしている場合に、Ｓ７９で当該指定動作が指定されたものとして、Ｓ８０以降の処理を実行すればよい。これにより、指定装置が１つの指定動作のみをサポートしている場合に、Ｓ７７〜Ｓ７９の処理がスキップされるので、レーベルプログラム６６に対するユーザ操作をさらに削減することができる。
【０１０８】
また、レーベルプログラム６６において、レーベルプリント動作の対象となるレーベル画像データをユーザに指定させる処理は、指定装置がレーベルプリント動作をサポートしていなくても実行することができる。すなわち、レーベルプログラム６６を起動するタイミングで指定装置を指定する必要がない場合もあり得る。そこで上記の実施形態のように、レーベルプログラム６６の起動前に指定装置を指定するか否かを、確認画面を通じてユーザに選択させることによって、指定装置を指定させる処理を適切なタイミングで実行することができる。
【０１０９】
また、上記の実施形態によれば、指定装置を指定せずにレーベルプログラム６６を起動し（Ｓ５８：出力あり→Ｓ５９）、且つ当該レーベルプログラム６６からレーベルプリント動作が指示された場合に（Ｓ９５：Ｙｅｓ＆Ｓ９６：Ｎｏ）、デバイス選択処理が実行される（Ｓ９７）。これにより、レーベルプリント動作が指示されたタイミングで、レーベルプリント動作を実行可能なＭＦＰ１０のうちから、所望のＭＦＰ１０をユーザに指定させることができる。
【０１１０】
さらに、上記の実施形態によれば、レーベルプログラム６６が指示したレーベルプリント動作を実行可能なＭＦＰ１０が存在しない場合に（Ｓ９８：Ｎｏ）、レーベルプログラム６６から取得した動作ＩＤ及びＵＲＩがメモリ６２に保存される（Ｓ９９）。そして、端末プログラム６５は、メイン画面のコンテンツアイコンが指定されたことに応じて（Ｓ１５：Ｙｅｓ）、メモリ６２に記憶されたコンテンツ情報に従った出力動作を指定装置に実行させる（Ｓ１９）。これにより、例えば、レーベル画像１６１を編集するためにレーベルプログラム６６に対してユーザがした操作が無駄になることを抑制できる。
【０１１１】
なお、コンテンツアイコン１２４は、指定装置情報がコンテンツ情報の動作ＩＤを含む場合に指定可能な態様で表示され、指定装置情報がコンテンツ情報の動作ＩＤを含まない場合に指定不能な態様で表示される。また、コンテンツアイコン１２４には、ＵＲＩで示される画像データを加工したサムネイル画像等が用いられる。これにより、コンテンツ情報がメモリ６２に記憶されていることをユーザに報知し、且つ当該コンテンツ情報に従った出力動作の実行をユーザに促すことができる。
【０１１２】
また、上記の実施形態によれば、図１１（Ａ）に示されるデバイス選択画面において、全ての指定動作を実行可能なＭＦＰ１０Ｂに対応するデバイスアイコン１３１が、一部の指定動作のみを実行可能なＭＦＰ１０Ａに対応するデバイスアイコン１３２より優先して表示される。さらに、Ｓ４１で発見したＭＦＰ１０Ａ、１０Ｂが実行可能な指定動作が、対応するデバイスアイコン１３１、１３２を通じて報知される。これにより、レーベルプログラム６６に適したＭＦＰ１０を、ユーザに簡単に指定させることができる。
【０１１３】
また、上記の実施形態のＭＦＰ１０及び携帯端末５０において、メモリ３２、６２に記憶された各種プログラムがＣＰＵ３１、６１によって実行されることによって、本発明のントローラが実行する各処理が実現される例を説明した。しかしながら、コントローラの構成はこれに限定されず、その一部又は全部を集積回路等のハードウェアで実現してもよい。
【０１１４】
さらに、本発明は、ＭＦＰ１０及び携帯端末５０として実現できるだけでなく、ＭＦＰ１０及び携帯端末５０に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体に記録されて提供されてもよい。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の他、通信ネットワーク１０１を通じてＭＦＰ１０及び携帯端末５０に接続可能なサーバに搭載された記憶部を含んでもよい。そして、サーバの記憶部に記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット等の通信ネットワーク１０１を通じて配信されてもよい。
【符号の説明】
【０１１５】
１０・・・ＭＦＰ
１１・・・プリンタ
１２・・・スキャナ
２３，５３・・・ディスプレイ
２４，５４・・・入力Ｉ／Ｆ
２５，５５・・・通信Ｉ／Ｆ
３１，６１・・・ＣＰＵ
３２，６２・・・メモリ
３５・・・装置プログラム
５０・・・携帯端末
６５・・・端末プログラム
６６・・・レーベルプログラム
６７・・・地図プログラム
【図１】
2018045495.tif 000003
【図２】
2018045495.tif 000004
【図３】
2018045495.tif 000005
【図４】
2018045495.tif 000006
【図５】
2018045495.tif 000007
【図６】
2018045495.tif 000008
【図７】
2018045495.tif 000009
【図８】
2018045495.tif 000010
【図９】
2018045495.tif 000011
【図１０】
2018045495.tif 000012
【図１１】
2018045495.tif 000013
【図１２】
2018045495.tif 000014