JP2022025598A - 情報処理装置、制御方法およびプログラム - Google Patents

情報処理装置、制御方法およびプログラム Download PDF

Info

Publication number
JP2022025598A
JP2022025598A JP2020128509A JP2020128509A JP2022025598A JP 2022025598 A JP2022025598 A JP 2022025598A JP 2020128509 A JP2020128509 A JP 2020128509A JP 2020128509 A JP2020128509 A JP 2020128509A JP 2022025598 A JP2022025598 A JP 2022025598A
Authority
JP
Japan
Prior art keywords
icon
port
generation
driver
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020128509A
Other languages
English (en)
Inventor
裕佑 松井
Yusuke Matsui
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2020128509A priority Critical patent/JP2022025598A/ja
Priority to EP21187416.9A priority patent/EP3945408A1/en
Priority to CN202110854292.5A priority patent/CN114090023A/zh
Priority to KR1020210098962A priority patent/KR20220014853A/ko
Priority to US17/386,932 priority patent/US11523020B2/en
Publication of JP2022025598A publication Critical patent/JP2022025598A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1204Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1287Remote printer device, e.g. being remote from client or server via internet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ドライバのインストール処理の更なる適切な処理を実現可能とする仕組みを提供する。【解決手段】インストールされたドライバに対応して、アイコンを生成する第1生成手段によるアイコンの生成ができないかを判定する。第1生成手段によるアイコンの生成ができないと判定された場合、アイコンを生成する第2生成手段により、インストールされたドライバに対応したアイコンを生成する。【選択図】図12

Description

本発明は、デバイスに対応するドライバをインストール可能な情報処理装置、制御方法およびプログラムに関する。
コンピュータ(以下、「PC」と呼ぶ)からプリンタなどの周辺機器(以下、「デバイス」という)を利用するには、まず、PCにデバイスドライバがインストールされる。次に、デバイスの宛先情報(アドレスやインターフェース、プロトコルなど)が設定されているデバイスポートが生成される。そして、OS(Operating System)上で仮想のプリンタデバイスとして識別されるアイコンオブジェクト(以下、「アイコン」という)が生成される。このとき、アイコンには、先にインストールされたデバイスドライバとデバイスポートが関連付けられる。これにより、アイコンに対して印刷を指示すると、アイコンに関連付けられたドライバが呼び出され、印刷データが生成される。また、ドライバにより生成された印刷データは、アイコンに関連付けられたポートに設定されている宛先情報に基づいて、デバイスに送信される。
PCにインストールされるデバイスドライバは、大きく2種類に分類される。1つは、デバイスの製造元が提供するドライバであり、これらはOutboxドライバと称される。もう1つは、OSが提供するドライバであり、これらはInboxドライバと称される。一般的には、Outboxドライバの方がInboxドライバよりも豊富な機能を有しており、その点から、デバイスの製造元から、Outboxドライバを使用することが推奨される。
Windows(登録商標)OSでは、デバイスの製造元から提供されるドライバインストーラを使用しなくても、Plug-And-PlayやAdd Printer WizardなどのOSの機能を用いて、デバイスドライバをインストール可能である。PCがインターネットに接続されている場合、上記OSの機能によりインターネット経由でOutboxドライバがダウンロードされ、インストールされる。一方、PCがインターネット未接続の場合には、OSに予め同梱されているInboxドライバがインストールされる。
Inboxドライバが先にインストールされたPC環境で、Outboxドライバをインストールする場合、アイコンに紐づくInboxドライバを置き換えることができなかった。そのため、ユーザーは、Outboxドライバをインストールする前に、InboxドライバとInboxドライバに紐づくアイコン(以下、「Inbox用アイコン」という)を削除する必要があった。ユーザーは、特許文献1に記載の手法により、InboxドライバとInbox用アイコンを事前に削除することができる。
特開2018-194910号公報
近年、ドライバのインストール処理の更なる適切な処理が求められている。
本発明は、ドライバのインストール処理の更なる適切な処理を実現可能とする仕組みを提供することを目的とする。
上記課題を解決するため、本発明に係る情報処理装置は、デバイスと通信可能な情報処理装置であって、デバイスに対応するドライバをインストールするインストール手段と、前記インストール手段によりインストールされた前記ドライバに対応して、アイコンを生成する第1生成手段によるアイコンの生成ができないかを判定する判定手段と、前記判定手段により前記第1生成手段によるアイコンの生成ができないと判定された場合、アイコンを生成する第2生成手段により、前記インストール手段によりインストールされた前記ドライバに対応したアイコンを生成する制御手段とを備えることを特徴とする。
本発明によれば、ドライバがインストールされた場合、該ドライバに対応するアイコンを適切に生成することができる。
ネットワークシステムの構成を示す図である。 PCの構成を示す図である。 デバイスの構成を示す図である。 アプリケーションの構成を示す図である。 アプリケーションのUI画面を示す図である。 アプリケーションのUI画面を示す図である。 アプリケーションの処理を示すフローチャートである。 S706の処理を示すフローチャートである。 S707の処理を示すフローチャートである。 S902の処理を示すフローチャートである。 S903の処理を示すフローチャートである。 S709の処理を示すフローチャートである。 S1202の処理を示すフローチャートである。 S1202の処理を示すフローチャートである。 S1408の処理を示すフローチャートである。 S1202の処理を示すフローチャートである。 S1601の処理を示すフローチャートである。
[第1実施形態]
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には、複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
図1は、情報処理装置(PC101)を含むネットワークシステムの構成の一例を示すブロック図である。図1に示すシステムでは、PC101と、デバイス102と、ルーター103とが、ネットワーク104を介して相互に通信可能に接続されている。各装置は、TCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルとUDPに従って相互に通信を行う。ネットワーク104は、ルーター103を介して外部ネットワーク105と接続されている。
デバイス102は、プリンタ、複写機、ファクシミリ、スキャナ等の周辺機器またはそれらの複合機能を備える装置である。デバイス102は、所定の通信プロトコルに対応し、例えば、TCP/IPプロトコルに対応する。また、デバイス102は、UPnP(Universal Plug and Play)に対応したWindowsOS標準のネットワークプロトコルであるWSD(Web service on Devices)に対応する。また、デバイス102は、近隣のネットワークデバイスの名前解決ができるLLMNR(Link-Local Multicast Name Resolution)プロトコルに対応する。また、デバイス102のWSD機能、LLMNR機能は、ユーザーがデバイス102を直接操作することにより機能の有効/無効の切り替えが可能である。ルーター103は、DHCP(Dynamic Host Configuration Protocol)サーバ機能を有し、PC101、デバイス102にIPアドレスを割り当てる。
図2は、PC101の構成の一例を示す図である。PC101は、モニタ201、CPU202、ROM203、RAM204、補助記憶装置205、キーボード206、ポインティングデバイス207、ネットワークボード208を備える。各構成要素は、バス209を介して相互に接続される。モニタ201は、例えば、アプリケーション401等のアプリケーションやドライバのUser Interface(以下、UI)画面を表示する。
CPU202は、PC101を統括的に制御し、例えば、ROM203や補助記憶装置205が記憶する、アプリケーションやドライバ等のプログラムをRAM204にロードして実行する。例えば、本実施形態の動作は、CPU202がRAM204にロードしたプログラムを実行することにより実現される。ROM203は、例えば、BIOS等の基本ソフトウェアや、PC101で実行される処理を実現するための各種プログラムを記憶する。RAM204は、例えば、アプリケーションやドライバなどのソフトウェアや、それらが用いるデータを一時的に記憶する。補助記憶装置205は、例えば、ハードディスクであり、OS、アプリケーション、ドライバ、種々のモジュールなどのソフトウェア(プログラム)を記憶する。
補助記憶装置205が記憶するドライバには、デバイス102を制御するデバイスドライバ(スキャナドライバ、プリンタドライバ、ファクシミリドライバ等)が含まれる。また、補助記憶装置205が記憶するドライバには、モニタ201における表示を制御する表示制御ドライバ、キーボード206を制御するキーボードドライバ、ポインティングデバイス207を制御するポインティングデバイスドライバが含まれる。さらに、補助記憶装置205が記憶するドライバには、ネットワークボード208の通信を制御するネットワークドライバが含まれる。
補助記憶装置205が記憶するアプリケーションには、図4に示すアプリケーション401が含まれる。アプリケーション401は、TCP/IPによるデバイスの検索機能を有する。なお、アプリケーション401は、当該検索機能を有するモジュールを呼び出してそれらの機能を実行させるようにしても良い。また、当該検索機能は、別のモジュールに設けられていても良い。キーボード206およびポインティングデバイス207は、ユーザーからの指示を入力する入力装置である。ネットワークボード208は、ネットワーク104を介して、デバイス102との通信を行う。
図3は、デバイス102の構成の一例を示す図である。図3は、デバイス102がプリンタである場合のハードウェア構成の一例を示している。デバイス102は、CPU301、ROM302、RAM303、通信部304、記録部305、操作部306、表示部307を備える。デバイス102を構成する各種構成要素は、バス308を介して相互に接続される。
CPU301は、例えばマイクロプロセッサである。CPU301は、デバイス102の中央処理装置として機能し、デバイス102を統括的に制御する。CPU301は、例えば、ROM302が記憶するプログラムをRAM303にロードし、ロードしたプログラムを実行することによって、通信部304、記録部305、操作部306および表示部307を制御する。ROM302は、例えば、デバイス102で実行される処理を実現するための各種プログラムを記憶する。RAM303は、例えば、CPU301のワークエリアとして用いられ、各種データを一時的に記憶する。
通信部304は、ネットワーク104を介して、他のデバイスとの通信を行う。記録部305は、例えば、画像データに基づいて紙などの記録媒体に印刷を行う。操作部306は、ボタンやタッチパネル等の入力装置を含んで構成される。表示部307は、例えば、デバイス102を操作するためのUI画面や、デバイス102の各種情報を表示する。なお、デバイス102がプリンタ以外のデバイスである場合には、デバイス102は、記録部305に代えて、または記録部305に加えて、他の構成要素を適宜備える。例えば、デバイス102がスキャナであれば、デバイス102は、原稿上の画像を光学的に読み取る読取部を備える。
ここで本実施形態が想定する課題の一例について説明する。例えば、Windows10(登録商標)では、Microsoft IPP(Internet Printing Protocol) Class Driver(以下「IPPドライバ」という)用のドライバを標準装備している。IPPドライバは、インストール対象デバイスがIPPプロトコルをサポートしていれば、Add Printer Wizardを用いることでインストールすることができる。このときに生成されるアイコンには、WSD(Web service on Devices)ポートが紐づけされる(以下、「WSDアイコン」という)。
通常、WSDアイコンを削除すると、アイコンに紐づくWSDポートも自動的に削除される。しかしながら、IPPドライバに紐づいて生成されたWSDアイコンの場合、WSDアイコンを削除してもWSDポートが残ってしまう場合がある。IPPドライバに紐づいていたWSDポートが残ったPC環境でOutboxドライバをインストールすると、残存したWSDポートが妨げとなって新規のWSDアイコンを生成することができないおそれがあった。
図4は、デバイス102と通信するアプリケーションの構成の一例を示すブロック図である。図4に示すように、PC101は、アプリケーション401と、ドライバINFファイル402と、プリンタドライバ403と、スキャナドライバ404と、ファックスドライバ405を保持する。
アプリケーション401は、デバイスのドライバをPC101にインストールするドライバインストーラである。アプリケーション401は、PC101と接続しているデバイス102を検索し、検索により検出したデバイスに係る情報をモニタ201に表示させる。そして、該表示された情報のうちユーザーにより選択された情報に対応するデバイスのドライバをPC101にインストールする。
ドライバINFファイル402には、アプリケーション401がインストールするドライバ(プリンタドライバ403、スキャナドライバ404、ファックスドライバ405の少なくともいずれか)に対応するドライバ情報が含まれる。ドライバ情報は、例えば、デバイスの機種情報を含む。
アプリケーション401は、デバイス検索部406と、検出デバイス出力部407と、ドライバインストール部408と、生成ポート種判定部409と、流用可能アイコン検出部410と、新規ポート/アイコン生成部411を有する。図4に示す各部は、PC101のCPU202が補助記憶装置205に記憶されているアプリケーション401を読み出して実行することで実現される。本実施形態では、アプリケーション401は、同一ネットワーク内にあるデバイスを検索し、検出したデバイスをモニタ201に表示する。一方、同一ネットワーク内にあるデバイスを検索できなかった場合、アプリケーション401は、デバイスを検出できなかった旨をモニタ201に表示する。
デバイス検索部406は、ドライバ情報を含むドライバINFファイル402から取得したターゲットデバイスのデバイス名情報と、デバイス検索部406が検索したデバイスのデバイス名情報とを比較する。ここで、ターゲットデバイスとは、アプリケーション401が対応するデバイスの機種を指す。検出デバイス出力部407は、デバイス検索部406において検索されたデバイスのデバイス名情報と、ドライバINFファイル402から取得したターゲットデバイスのデバイス名情報が一致した場合、モニタ201に検出したデバイスを表示する。ユーザーは、モニタ201に表示されたデバイスの一覧から、所望のデバイスを選択可能である。
ドライバインストール部408は、検出デバイス出力部407により表示されたデバイスからユーザーが選択したデバイス(以下、「所望デバイス」という)に対応するドライバをインストールする。なお、検出デバイス出力部407により表示されたデバイスからユーザーが選択したデバイスの種類によって、インストールされるドライバは異なる。例えば、ユーザーが選択したデバイスがプリンタの場合、アプリケーション401は、プリンタドライバ403をPC101にインストールする。ユーザーが選択したデバイスがスキャナの場合、アプリケーション401は、スキャナドライバ404をPC101にインストールする。さらに、ユーザーが選択したデバイスがMFP(Multi-Function Printer)の場合があり得る。その場合、アプリケーション401は、プリンタドライバ403と、スキャナドライバ404とファックスドライバ405の少なくともいずれかと、をPC101にインストールする。例えば、スキャナ機能とプリント機能を備えるMFPであれば、プリンタドライバ403と、スキャナドライバ404がインストールされる。また、例えば、スキャナ機能とプリント機能とファックス機能を備えるMFPであれば、プリンタドライバ403と、スキャナドライバ404とファックスドライバ40がインストールされる。また、既にPCに登録されているアイコンに所望デバイスに対応するInboxドライバが紐づいていた場合、アイコンはそのままで、紐づいているInboxドライバを、デバイスの製造元から提供されるOutboxドライバに差し替えることができる。本実施形態では、デバイスインストーラによりOutboxドライバをインストールすることによって、InboxドライバをOutboxドライバに差し替えるケースを説明する。
生成ポート種判定部409は、デバイス102と通信してPC101に生成可能なポートの種類(ポート種別)を特定する。流用可能アイコン検出部410は、PC101に既に登録されている既存アイコンの中から、流用可能なアイコンを検出する。本実施形態では、流用可能アイコンとは、ドライバインストール部408でインストールしたドライバに紐づき、かつ、デバイス102と通信可能なポートに紐づいているアイコンのことを指す。新規ポート/アイコン生成部411は、生成ポート種判定部409で特定されたポートの種類に基づき、デバイス102と通信可能なポートとアイコンを新規生成する。
図5は、検出デバイス出力部407によりモニタ201に表示されるデバイス検出結果を示す、アプリケーション401のUI画面の一例を示す図である。図5の各項目については後述する。
図6(a)は、アプリケーション401のUI画面の一例を示す図である。図6(a)の画面は、アプリケーション401がドライバインストール部408と、生成ポート種判定部409と、流用可能アイコン検出部410と、新規ポート/アイコン生成部411の処理を実行しているときに表示される。インストール中画面601は、内部処理のステータスを示す内部処理ステータス602を含む。例えば、アプリケーション401がドライバインストール部408の処理を実行している場合、内部処理ステータス602には「ドライバインストール中・・・」などのメッセージと進捗バー603が表示される。
図6(b)は、図6(a)の内部処理が完了したときに表示される、アプリケーション401のUI画面の一例を示す図である。例えば、ドライバインストール部408の処理が完了した場合には、インストール完了のメッセージ602が表示される。
図7は、アプリケーション401が起動されてから終了するまでの処理を示すフローチャートである。まず、アプリケーション401が起動されると、アプリケーション401は、図5に示すデバイス検索結果画面501を表示する。アプリケーション401は、デバイス検索結果画面501のデフォルト画面を表示後、PC101と接続しているデバイスの検索を、ユーザー操作を介さずに自動で開始する(S701)。このとき、ネットワークだけでなく、異なるインターフェースで接続(例えば、USB(Universal Serial Bus)ケーブルなど)されているデバイスも同時に検索しても良い。アプリケーション401は、デバイス検索を終了すると(S702のYes)、デバイス一覧502に検出したデバイスを表示する。アプリケーション401は、ユーザーによる図5のデバイスの一覧から、所望のデバイスの選択とインストール開始ボタン504の押下を受け付ける(S703)。一方、デバイス一覧502の中にユーザーが所望するデバイスが見つからない、または、デバイス一覧502にデバイスが表示されていない場合、ユーザーは、再検索ボタン503を押下する。このユーザー操作を受け付けると、デバイス検索部406により再度デバイス検索が実行される。なお、再検索ボタン503が押下されると、アプリケーション401は、デバイス一覧502の内容をクリアする。
検出したデバイスの中から所望のデバイスの選択を受付けてインストール開始ボタン504が押下されると、アプリケーション401は、UIをデバイス検索結果画面501からドライバインストール画面601に切り替える。このとき、アプリケーション401は、選択されたデバイスのネットワーク情報(IPアドレスなど)を保存する(S704)。なお、ネットワーク情報は、S701のデバイス検索時に検索された各デバイスから取得される。ドライバインストール画面601に切り替わると、アプリケーション401は、選択されたデバイスのドライバのインストール処理を実行する(S705)。そして、アプリケーション401は、後述する図8の生成ポート種判定処理(S706)、後述する図9の流用可能アイコン検出処理(S707)の順に実行する。ドライバインストール処理(S705)は、ドライバインストール部408により実行される。また、生成ポート種判定処理(S706)は、生成ポート種判定部409により実行される。また、流用可能アイコン検出処理(S707)は、流用可能アイコン検出部410により実行される。
アプリケーション401は、流用可能アイコン検出処理(S707)で流用可能アイコンを検出したか否かを判定する(S708)。S707で流用可能アイコンを検出しなかった場合(S708のNo)、新規ポート/アイコン生成部411により、新規ポート/アイコン生成処理が実行される(S709)。新規ポート/アイコン生成処理では、生成ポート種判定処理で判定されたポートの種類に基づいて、ドライバインストール部408がインストールした各種ドライバ403~405に紐付く新規ポートおよびアイコンが生成される。S709の処理は、図12で後述する。
一方、S707の流用可能アイコン検出処理で流用可能アイコンを検出した場合(S708のYes)、アプリケーション401は、新規ポート/アイコンを生成せず、検出した流用可能アイコンを用いる(S710)。つまり、流用可能アイコンはそのまま使用し、当該流用可能アイコンに紐付けられているドライバを、S705でインストールしたドライバに変更する。S709またはS710の処理が終了すると、アプリケーション401は、インストール処理が完了した旨を示す図6(b)の画面を表示する。このとき、ユーザーにより終了ボタン604が押下されると、図7の処理が終了する。
図8は、図7の生成ポート種判定処理(S706)を示すフローチャートである。図8では、通信ポートに優先順位を設け、優先順が高いポートの順に基づいて、生成されるポートの種類の判定処理を実行する。本実施形態におけるポートの優先順位は、WSD、TCP/IPの順としている。まず、生成ポート種判定部409は、WSDプロトコルによるネットワークデバイス探索処理を実行する(S801)。つまり、生成ポート種判定部409は、WSDプロトコルに従ってネットワーク104に接続されているデバイスを探索する。
生成ポート種判定部409は、デバイス探索の結果、S704で保存した所望デバイスのネットワーク情報に一致するデバイスを検出したか否かを判定する(S802)。例えば、生成ポート種判定部409は、S704で保存したIPアドレスと同じIPアドレスを持つデバイスがS801の探索処理で検出されたか否かを判定する。S704で保存した所望デバイスのネットワーク情報に一致するデバイスを検出した場合(S802のYes)、生成ポート種判定部409は、生成されるポートの種類はWSDであると判断する(S803)。S803の後、生成ポート種判定部409は、WSDプロトコルによるネットワークデバイス探索時に取得したデバイスのUUIDを保持し(S804)、図8の処理を終了する。一方、S704で保存しておいた所望デバイスのネットワーク情報に一致するデバイスを検出しなかった場合(S802のNo)、生成ポート種判定部409は、生成されるポートの種類はTCP/IPであると判定し(S805)、図8の処理を終了する。
図9は、図7の流用可能アイコン検出処理(S707)を示すフローチャートである。まず、流用可能アイコン検出部410は、S706の生成ポート種判定処理の結果、生成されるポートの種類はWSDであるかTCP/IPであるかを判定する(S901)。生成されるポートの種類がWSDである場合(S901のYes)、流用可能アイコン検出部410は、後述する図10の流用可能WSDアイコン検出処理を実行する(S902)。一方、生成されるポートの種類がTCP/IPであると判定された場合(S901のNo)、流用可能アイコン検出部410は、後述する図11の流用可能TCP/IPアイコン検出処理を実行する(S903)。S902またはS903の後、流用可能アイコン検出部410は、図9の処理を終了する。
図10は、図9の流用可能WSDアイコン検出処理(S902)を示すフローチャートである。まず、流用可能アイコン検出部410は、PC101に登録されている全てのアイコンのアイコン情報を取得する(S1001)。なお、アイコン情報とは、例えば、アイコンに紐付けられているドライバ名、ポートの種類、ポート名称などが含まれる。アイコン情報が取得された後、流用可能アイコン検出部410は、S1001で取得した全てのアイコン情報に対して、流用可能なWSDアイコンを探索するためのループ処理を開始する(S1002)。ループ処理において、まず、流用可能アイコン検出部410は、ループ処理の対象となるチェック対象アイコンに紐づくドライバ名とS705でインストールされたドライバ名が一致するか否かを判定する(S1003)。チェック対象のアイコンに紐づくドライバ名とインストールされたドライバ名が一致しない場合(S1003のNo)、流用可能アイコン検出部410は、次のアイコンのアイコン情報のチェックを開始する。一方、アイコンに紐づくドライバ名とインストールされたドライバ名が一致する場合(S1003のYes)、流用可能アイコン検出部410は、チェック対象アイコンに紐づくポートの種類がWSDであるか否かを判定する(S1004)。
アイコンに紐づくポートの種類がWSDではない場合(S1004のNo)、流用可能アイコン検出部410は、次のアイコンのチェックを開始する。一方、アイコンに紐づくポートの種類がWSDである場合(S1004のYes)、流用可能アイコン検出部410は、WSDポートに設定されているUUIDとS804で保持したデバイスのUUIDとが一致するか否かを判定する(S1005)。具体的には、流用可能アイコン検出部410は、UUIDの管理モジュールからS1001で取得したポート名称に対応するUUIDを取得する。ここで取得されたUUIDを使ってS1005が実行される。
このように、S1003~S1005においては、アイコン判定の結果、条件を満たす流用可能なWSDアイコンが検出される。
UUIDが一致しない場合(S1005のNo)、流用可能アイコン検出部410は、次のアイコンのチェックを開始する。一方、UUIDが一致する場合(S1005のYes)、流用可能アイコン検出部410は、ループ処理を終了し、流用可能なWSDアイコンを検出したと判断し(S1006)、その後、図10の処理を終了する。一方、ループ処理が全てのアイコンに対して行われた場合、流用可能アイコン検出部410は、流用可能なWSDアイコンはないと判断し(S1007)、その後、図10の処理を終了する。
図11は、図9の流用可能TCP/IPアイコン検出処理(S903)を示すフローチャートである。まず、流用可能アイコン検出部410は、PC101に登録されている全てのアイコンのアイコン情報を取得する(S1101)。アイコン情報が取得された後、流用可能アイコン検出部410は、S1101で取得した全てのアイコン情報に対して、流用可能なTCP/IPアイコンを探索するためのループ処理を開始する(S1102)。ループ処理において、まず、流用可能アイコン検出部410は、ループ処理の対象となるチェック対象アイコンに紐づくドライバ名とS705でインストールされたドライバ名が一致するか否かを判定する(S1103)。アイコンに紐づくドライバ名とインストールされたドライバ名が一致しない場合(S1103のNo)、流用可能アイコン検出部410は、次のアイコンのアイコン情報のチェックを開始する。一方、チェック対象のアイコンに紐づくドライバ名とインストールされたドライバ名が一致する場合(S1103のYes)、流用可能アイコン検出部410は、チェック対象アイコンに紐づくポートの種類がTCP/IPであるか否かを判定する(S1104)。
アイコンに紐づくポートがTCP/IPでない場合(S1104のNo)、流用可能アイコン検出部410は、次のアイコンのアイコン情報のチェックを開始する。一方、アイコンに紐づくポートがTCP/IPである場合(S1104のYes)、S1105に進む。流用可能アイコン検出部410は、TCP/IPポートに設定されているネットワーク情報とS704で保持したデバイスのネットワーク情報とが一致するか否かを判定する(S1105)。ネットワーク情報とは、例えばIPアドレスである。
このように、S1103~S1105においては、アイコン判定の結果、条件を満たす流用可能なTCP/IPアイコンが検出される。
ネットワーク情報が一致しない場合(S1105のNo)、流用可能アイコン検出部410は、次のアイコンのアイコン情報のチェックを開始する。一方、ネットワーク情報が一致する場合(S1105のYes)、流用可能アイコン検出部410は、ループ処理を終了し、流用可能なTCP/IPアイコンを検出したと判断し(S1106)、その後、図11の処理を終了する。一方、ループ処理が全てのアイコンに対して行われた場合、流用可能アイコン検出部410は、流用可能なTCP/IPアイコンはないと判断し(S1107)、その後、図11の処理を終了する。
図12は、図7の新規ポート/アイコン生成処理(S709)を示すフローチャートである。まず、新規ポート/アイコン生成部411は、S706の生成ポート種判定処理で判定されたポートの種類がWSDであるかTCP/IPであるかを判定する(S1201)。S706の生成ポート種判定処理で判定されたポートの種類がTCP/IPである場合(S1201のNo)、新規ポート/アイコン生成部411は、TCP/IPで新規ポート/アイコンを生成する(S1205)。
一方、S706の生成ポート種判定処理で判定されたポートの種類がWSDである場合(S1201のYes)、新規ポート/アイコン生成部411は、後述する図13の新規WSDポート/アイコン生成処理を開始する(S1202)。そして、新規ポート/アイコン生成部411は、新規WSDポート/アイコンの生成が成功したか否かを判定する(S1203)。
新規WSDポート/アイコンの生成に成功した場合(S1203のYes)、新規ポート/アイコン生成部411は、WSDアイコンの生成が成功と判断し(S1204)、その後、図12の処理を終了する。一方、新規WSDポート/アイコンの生成に失敗した場合(S1203のNo)、新規ポート/アイコン生成部411は、代わりにTCP/IPで新規ポート/アイコンを生成する(S1205)。S1205の後、新規ポート/アイコン生成411は、図12の処理を終了する。
図13は、図12の新規WSDポート/アイコン生成処理(S1202)を示すフローチャートである。まず、新規ポート/アイコン生成部411は、PC101に登録されている全てのポートを取得する(S1301)。新規ポート/アイコン生成部411は、PC101に登録されている全てのポートを取得すると、新規WSDポート/アイコン生成APIを実行する(S1302)。なお、新規WSDポート/アイコン生成APIを実行することで、アイコンと、そのアイコン用のWSDポートが生成される。新規ポート/アイコン生成部411は、新規WSDポート/アイコン生成APIからの返信が成功であるか失敗であるかを判定する(S1303)。
新規WSDポート/アイコン生成APIからの返信が失敗である場合(S1303のNo)、新規ポート/アイコン生成部411は、WSDアイコン生成が失敗と判断し(S1304)、その後、図13の処理を終了する。一方、新規WSDポート/アイコン生成APIからの返信が成功である場合(S1303のYes)、新規ポート/アイコン生成部411は、再度PC101に登録されている全てのポートを取得する(S1305)。
新規ポート/アイコン生成部411は、PC101に登録されている全てのポートを取得すると、S1301で取得した時のポート数よりもS1305で取得したポート数が大きいか否かを判定する(S1306)。S1301で取得した時のポート数よりもS1305で取得したポート数が大きくない(即ち、増加していない)場合(S1306のNo)、新規ポート/アイコン生成部411は、WSDアイコン生成が失敗と判断する(S1304)。S1304の後、図13の処理を終了する。
一方、S1301で取得した時のポート数よりもS1305で取得したポート数が大きい(即ち、増加している)場合(S1306のYes)、S1307に進む。新規ポート/アイコン生成部411は、新しく生成された新規WSDポートに設定されているUUID取得を試み、その取得が成功したか否かを判定する(S1307)。具体的には、新規ポート/アイコン生成部411は、S1306において増加した分のポートを新規ポートと特定する。新規ポート/アイコン生成部411は、新規ポートとして特定されたポート名のUUIDの取得を試みる。新しく生成されたWSDポートのUUID取得に失敗した場合(S1307のNo)、新規ポート/アイコン生成部411は、WSDアイコン生成が失敗と判断し(S1304)、その後、図13の処理を終了する。
一方、新しく生成されたWSDポートのUUID取得に成功した場合(S1307のYes)、S1308に進む。新規ポート/アイコン生成部411は、S1307で取得した新規WSDポートのUUIDとS804で保持したデバイスのUUIDが一致するか否かを判定する(S1308)。S1307で取得した新規WSDポートのUUIDとS804で保持したデバイスのUUIDが一致しない場合(S1308のNo)、新規ポート/アイコン生成部411は、WSDアイコン生成が失敗と判断する(S1304)。S1304の後、新規ポート/アイコン生成部411は、図13の処理を終了する。
一方、S1307で取得した新規WSDポートのUUIDとS804で保持したデバイスのUUIDが一致した場合(S1308のYes)、新規ポート/アイコン生成部411は、WSDアイコン生成が成功と判断する(S1309)。S1309の後、新規ポート/アイコン生成部411は、図13の処理を終了する。
以上のように、本実施形態によれば、アプリケーション401は、ポート判定の結果、条件を満たす流用可能なアイコンがないと判断された場合、図12の新規ポート/アイコン生成処理が実行される。新規ポート/アイコン生成処理では、アプリケーション401は、新規WSDポート/アイコン生成APIを実行する前と後のそれぞれで取得されたポート数を比較し、比較結果に基づいて、新規のWSDアイコンが生成されているかを判断する。そのような構成により、新規WSDアイコン生成の妨げとなるポートがPC101に残存することで新規WSDアイコンの生成に失敗していたとしても、アプリケーション401は別のポート(TCP/IPポート)で新規アイコンを生成することができる。その結果、残存ポートが妨げとなって、ユーザーが操作対象とすべきアイコンが生成されないといった事態を防ぐことができる。また、新規WSDポートに設定されているUUIDに基づいて、新規WSDポートが所望プリンタに紐づくWSDポートであるかを判定するので、新規WSDアイコンの生成が成功したか否かについてより正確に判定することができる。
なお、本実施形態では、S706の生成ポート種判定処理において、WSDポートとTCP/IPポートを用いた例を示したが、これに限定されるものではない。例えば、IPP(Internet Printing Protocol)など、他のプロトコルを判定処理に加えたり、もしくは置き換えられても良い。また、本実施形態では、生成される通信ポートの優先順位をWSD、TCP/IPの順としたが、例えば、WSD、TCP/IP、IPPのように他のプロトコルを加えても良い。もしくは、アプリケーション401やデバイス102の状況に合わせて優先順位が変更されても良い。
また、本実施形態では、アプリケーション401がユーザー操作を介することなく自動で通信ポートを判定する構成としている。しかしながら、例えば、アプリケーションのUIに新しく生成ポートを指定する画面を表示し、ユーザーが生成したい通信ポートを指定するようにしても良い。このとき、指定した通信ポートでの生成に失敗した場合、指定した通信ポートでの生成に失敗した旨を伝える画面を表示しても良いし、アプリケーション401が代替の通信ポートをユーザー操作を介することなく自動で判定して生成するようにしても良い。
また、本実施形態では、S703でユーザーがデバイス検索結果画面501で所望デバイスを選択後に、S706の生成ポート種判定処理を実行している。しかしながら、S701のデバイス検索処理においてデバイスを検出した直後に、S706の生成ポート種判定処理を実行するようにしても良い。一方、複数インターフェース(ネットワークとUSB、など)で接続されているデバイスを検索する場合があり得る。その場合、S706の生成ポート種判定処理をS701のデバイス検索処理の直後に実行すると、ユーザーがUSBデバイスを選択した場合には、生成ポート種判定処理の意味がなくなってしまう可能性がある。そのため、複数インターフェースのデバイス検索を行う場合には、ユーザーにより所望デバイスと所望インターフェースが特定された後に、必要に応じて、S706の生成ポート種判定処理(S706)を行うようにしても良い。そのような構成により、送信するパケットを低減するなど、処理効率を向上させることができる。
[第2実施形態]
以下、第1実施形態と異なる点について第2実施形態を説明する。第1実施形態で説明したように、新規WSDアイコンの生成の妨げとなるポートがPC101に残存していて、新規WSDアイコンの生成に失敗していたとしても、アプリケーション401は、別のポートによって新規アイコンを生成することができる。
本実施形態では、さらに以下のようなユースケースを想定する。例えば、インストール対象デバイスがプリントとファックスのように、複数の機能をサポートしているデバイス(例えばMFP)とする。加えて、PC101には、インストール対象デバイスについてOSの機能によりIPPドライバのインストールによりWSDアイコンとWSDポートが生成される。その後、ユーザーの操作によりWSDアイコンが削除されてWSDポートだけが残っていたとする。このようなPC環境で、インストーラによるインストールが行われると、まず上述した第1実施形態の処理によりプリンタドライバのインストール処理とプリンタのアイコン生成処理(S709)またはプリンタの流用可能アイコンの利用(S710)が行われる。そして、残存したWSDポートを流用してファックス機能用のWSDアイコンのみが生成される。これは、ファックス機能はWSDポートをサポートしているが、IPPドライバはファックス機能をサポートしていないためである。
上記のようなユースケースの場合、PC101に登録されているポートの数に変化がないことに基づいてアプリケーション401はWSDアイコン生成に失敗したと判定し、TCP/IPポートの生成を実行する。その場合、WSDポート用とTCP/IPポート用の2つのファックス用アイコンが生成される。本実施形態では、上記のようなユースケースの場合でも、WSDポート用とTCP/IP用の2つのファックス用アイコンが重複して生成されることを防ぐことができる。
図14は、本実施形態における図12の新規WSDポート/アイコン生成処理(S1202)を示すフローチャートである。まず、新規ポート/アイコン生成部411は、PC101に登録されている全てのポートと全てのアイコンを取得する(S1401、S1402)。S1401とS1402の後、新規ポート/アイコン生成部411は、新規WSDポート/アイコン生成APIを実行する(S1403)。そして、新規ポート/アイコン生成部411は、新規WSDポート/アイコン生成APIからの返信が成功であるか失敗であるかを判定する(S1404)。
新規WSDポート/アイコン生成APIからの返信が失敗である場合(S1404のNo)、新規ポート/アイコン生成部411は、WSDアイコン生成が失敗と判断し(S1405)、その後、図14の処理を終了する。一方、新規WSDポート/アイコン生成APIからの返信が成功である場合(S1404のYes)、新規ポート/アイコン生成部411は、再度PC101に登録されている全てのポートを取得する(S1406)。
新規ポート/アイコン生成部411は、PC101に登録されている全てのポートを取得すると、S1401で取得した時のポート数よりもS1406で取得したポート数が大きいか否か判定する(S1407)。S1401で取得した時のポート数よりもS1406で取得したポート数が大きくない(即ち、増加していない)場合(S1407のNo)、新規ポート/アイコン生成部411は、後述する図15の不要WSDアイコン削除処理を実行する(S1408)。不要WSDアイコン削除処理の完了後、新規ポート/アイコン生成部411は、WSDアイコン生成が失敗と判断し(S1405)、その後、図14の処理を終了する。
一方、S1401で取得した時のポート数よりもS1406で取得したポート数が大きい(即ち、増加している)場合(S1407のYes)、S1409に進む。新規ポート/アイコン生成部411は、新しく生成された新規WSDポートに設定されているUUID取得を試み、その取得が成功したか失敗したかを判定する(S1409)。新しく生成された新規WSDポートのUUID取得に失敗した場合(S1409のNo)、新規ポート/アイコン生成部411は、WSDアイコン生成が失敗と判断し(S1405)、その後、図14の処理を終了する。
一方、新しく生成された新規WSDポートのUUID取得に成功した場合(S1409のYes)、S1410に進む。新規ポート/アイコン生成部411は、S1409で取得した新規WSDポートのUUIDとS804で保持したデバイスのUUIDが一致するか否かを判定する(S1410)。S1409で取得した新規WSDポートのUUIDとS804で保持したデバイスのUUIDが一致しない場合(S1410のNo)、新規ポート/アイコン生成部411は、WSDアイコン生成が失敗と判断する(S1405)。S1405の後、新規ポート/アイコン生成部411は、図14の処理を終了する。
一方、S1409で取得した新規WSDポートのUUIDとS804で保持したデバイスのUUIDが一致する場合(S1410のYes)、新規ポート/アイコン生成部411は、WSDアイコン生成が成功と判断する(S1411)。S1411の後、新規ポート/アイコン生成部411は、図14の処理を終了する。
図15は、図14の不要WSDアイコン削除処理(S1408)を示すフローチャートである。まず、新規ポート/アイコン生成部411は、PC101に登録されている全てのアイコンを取得する(S1501)。そして、新規ポート/アイコン生成部411は、S1402で取得したアイコンの数よりもS1501で取得したアイコンの数が大きいか否かを判定する(S1502)。S1402で取得したアイコンの数よりもS1501で取得したアイコンの数が大きくない(即ち、増加していない)場合(S1502のNo)、新規ポート/アイコン生成部411は、図15の処理を終了する。一方、S1402で取得したアイコンの数よりもS1501で取得したアイコンの数が大きい(即ち、増加している)場合(S1502のYes)、S1503に進む。新規ポート/アイコン生成部411は、新しく生成された新規アイコンに紐づくポートがWSDであるか否かを判定する(S1503)。
新規アイコンに紐づくポートがWSDでない場合(S1503のNo)、新規ポート/アイコン生成部411は、図15の処理を終了する。一方、新規アイコンに紐づくポートがWSDである場合(S1503のYes)、新規ポート/アイコン生成部411は、新規アイコンに紐づくドライバ名と、S705でインストールされたドライバ名とが一致するか否かを判定する(S1504)。
新規アイコンに紐づくドライバ名とS705でインストールされたドライバ名が一致しない場合(S1504のNo)、新規ポート/アイコン生成部411は、図15の処理を終了する。一方、新規アイコンに紐づくドライバ名とS705でインストールされたドライバ名とが一致する場合(S1504のYes)、新規ポート/アイコン生成部411は、新規アイコンを削除し(S1505)、その後、図15の処理を終了する。
以上のように、本実施形態によれば、機能用アイコンが複数(WSD用とTCP/IP用など)重複して生成されてしまうのを防ぐことができる。また、本実施形態では、WSDアイコンが削除された後に、図12の処理においてTCP/IPアイコンが生成される。しかしながら、WSDポート用とTCP/IPポート用の2つのファックス用アイコンが生成されることを防ぐために、他の処理が実行されても良い。例えば、S1403で生成されたファックス用WSDアイコンを削除せず、TCP/IPアイコン生成時にファックス用アイコンを生成せずプリント用アイコンだけを生成するようにしても良い。
また、本実施形態では、S1403で新規WSDポート/アイコン生成APIを実行した後、S1501でPC101に登録されている全てのアイコンを取得しているが、その際、以下のように構成しても良い。例えば、PC101のスペックが低いことでWSDアイコンがすぐに生成されない場合は、一定時間待機してからS1501で全てのアイコンを取得するようにしても良い。また、S1502でのアイコン数の判定時に、アイコン数に変化がない場合(即ち、S1502のNo)には、一定時間内の間S1502のアイコン数の判定処理を繰り返すようにしても良い。そのような構成により、アイコンの生成処理に係るPCの処理時間を考慮した適切な判定を行うことができる。
[第3実施形態]
以下、第1及び第2実施形態と異なる点について第3実施形態を説明する。第1及び第2実施形態では、新規WSDアイコン生成API実行処理(S1302、S1403)の後に新規WSDアイコンが正常に生成できたかを判定すると説明した。本実施形態では、新規WSDアイコン生成APIを実行する前に、新規WSDアイコン生成の妨げとなるWSDポートが残存していないかを判定する。
図16は、本実施形態における図12の新規WSDポート/アイコン生成処理(S1202)を示すフローチャートである。まず、新規ポート/アイコン生成部411は、新規WSDポート/アイコン生成の妨げになる既存WSDポートがPC101に登録されていないかを判定する図17の既存WSDポートチェック処理を実行する(S1601)。そして、新規WSDポート/アイコン生成部411は、新規WSDポート/アイコン生成の妨げになる既存WSDポートがPC101から検出されたか否かを判定する(S1602)。
新規WSDポート/アイコン生成の妨げになる既存WSDポートがPC101から検出された場合(S1602のYes)、新規ポート/アイコン生成部411は、新規WSDアイコン生成不可と判断し(S1603)、その後、図16の処理を終了する。一方、新規WSDポート/アイコン生成の妨げになる既存WSDポートがPC101から検出されなかった場合(S1602のNo)、新規ポート/アイコン生成部411は、新規WSDアイコン生成API実行処理を実行する(S1604)。そして、新規ポート/アイコン生成部411は、新規WSDポート/アイコン生成APIからの返信が成功であるか失敗であるかを判定する(S1605)。
新規WSDアイコン生成APIからの返信が失敗である場合(S1605のNo)、新規ポート/アイコン生成部411は、新規WSDアイコンの生成が不可と判断し(S1603)、その後、図16の処理を終了する。一方、新規WSDアイコン生成APIからの返信が成功である場合(S1605のYes)、新規ポート/アイコン生成部411は、新規WSDアイコン生成が成功と判断し(S1606)、その後、図16の処理を終了する。S1603の後、図12のS1203では、新規WSDポート/アイコンの生成に失敗したと判定されるようにしても良い。
図17は、図16の既存WSDポートチェック処理(S1601)を示すフローチャートである。まず、新規ポート/アイコン生成部411は、PCに登録されている全てのポートを取得する(S1701)。そして、新規ポート/アイコン生成部411は、取得したポートの中から新規WSDアイコン生成の妨げになるWSDポートの有無をチェックするためのループ処理を開始する(S1702)。
ループ処理において、まず、新規ポート/アイコン生成部411は、ループ処理の対象となるチェック対象のポートがWSDポートであるか否かを判定する(S1703)。チェック対象のポートがWSDポートでない場合(S1703のNo)、新規ポート/アイコン生成部411は、チェック対象ポートを別のポートに切り替え、ループ処理を繰り返す。一方、チェック対象のポートがWSDポートである場合(S1703のYes)、S1704に進む。新規ポート/アイコン生成部411は、チェック対象のポートに設定されているUUIDと、S804で保持したデバイスのUUIDとが一致するか否かを判定する(S1704)。
チェック対象ポートに設定されているUUIDと、S804で保持したデバイスのUUIDが一致しない場合(S1704のNo)、新規ポート/アイコン生成部411は、チェック対象ポートを別のポートに切り替え、ループ処理を繰り返す。一方、チェック対象のポートに設定されているUUIDと、S804で保持したデバイスのUUIDが一致する場合(S1704のYes)、S1705に進む。新規ポート/アイコン生成部411は、チェック対象ポートにIPP PortIDが設定されているか否かを判定する(S1705)。
チェック対象ポートにIPP PortIDが設定されていない場合(S1705のNo)、新規ポート/アイコン生成部411は、チェック対象ポートを別のポートに切り替え、ループ処理を繰り返す。一方、チェック対象ポートにIPP PortIDが設定されている場合(S1705のYes)、S1706に進む。新規ポート/アイコン生成部411は、チェック対象ポートは新規WSDアイコン生成の妨げになるWSDポートであると判断し(S1706)、その後、図17の処理を終了する。即ち、S1706では、新規WSDポート/アイコン生成の妨げになる既存WSDポートがPC101から検出されたと判断される。一方、S1706に進むことなくループ処理を終了した場合、新規ポート/アイコン生成部411は、新規WSDアイコン生成が可能と判断し(S1707)、その後、図17の処理を終了する。即ち、S1707では、新規WSDポート/アイコン生成の妨げになる既存WSDポートがPC101から検出されなかったと判断される。
以上のように、本実施形態によれば、新規ポート/アイコン生成部411は新規WSDアイコン生成APIを実行する前に、新規WSDアイコン生成の妨げとなるWSDポートが残存していないかを判定することができる。これにより、WSDポートが残存している場合には、新規WSDアイコン生成APIの処理がスキップされる。そのため、アプリケーション401の処理効率を向上させることができる。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
101 PC: 102 デバイス: 202 CPU: 203 ROM: 204 RAM

Claims (18)

  1. デバイスと通信可能な情報処理装置であって、
    デバイスに対応するドライバをインストールするインストール手段と、
    前記インストール手段によりインストールされた前記ドライバに対応して、アイコンを生成する第1生成手段によるアイコンの生成ができないかを判定する判定手段と、
    前記判定手段により前記第1生成手段によるアイコンの生成ができないと判定された場合、アイコンを生成する第2生成手段により、前記インストール手段によりインストールされた前記ドライバに対応したアイコンを生成する制御手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記第1生成手段によりアイコンの生成が実行される前と後において、前記情報処理装置に登録されているポート数を取得する取得手段、をさらに備え、
    前記判定手段は、前記第1生成手段によりアイコンの生成が実行されても、該実行の前と比べて前記取得手段により取得されたポート数が増えていないことに基づいて、前記第1生成手段によるアイコンの生成ができないと判定する、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記判定手段は、前記第1生成手段によりアイコンの生成が実行されたことによって該実行の前と比べて前記取得手段により取得されたポート数が増えていることに基づいて、前記第1生成手段によるアイコンの生成ができると判定することを特徴とする請求項2に記載の情報処理装置。
  4. 新しく生成されたポートが条件を満たすか否かを判定するポート判定手段、をさらに備え、
    前記新しく生成されたポートが前記条件を満たすと前記ポート判定手段により判定された場合、前記判定手段は、前記第1生成手段によるアイコンの生成ができると判定し、
    前記新しく生成されたポートが前記条件を満たさないと前記ポート判定手段により判定された場合、前記判定手段は、前記第1生成手段によるアイコンの生成ができないと判定する、
    ことを特徴とする請求項2又は3に記載の情報処理装置。
  5. 前記条件は、前記新しく生成されたポートに設定された情報と前記デバイスの情報との一致を含むことを特徴とする請求項4に記載の情報処理装置。
  6. 前記情報処理装置に登録されているアイコンから取得されたアイコンのうち、条件を満たすアイコンの有無を判定するアイコン判定手段と、をさらに備え、
    前記制御手段は、前記アイコン判定手段により前記条件を満たすアイコンがないと判定され、且つ、前記判定手段により前記第1生成手段によるアイコンの生成ができないと判定された場合、前記第2生成手段により、前記インストール手段によりインストールされた前記ドライバに対応したアイコンを生成する、
    ことを特徴とする請求項2乃至5のいずれか1項に記載の情報処理装置。
  7. 前記条件は、ドライバに関する条件と、ポートに関する条件、の少なくともいずれかを含むことを特徴とする請求項6に記載の情報処理装置。
  8. 前記ドライバに関する条件は、アイコンに対応するドライバ名と前記ドライバのドライバ名との一致を含むことを特徴とする請求項7に記載の情報処理装置。
  9. 前記ポートに関する条件は、アイコンに対応するポートの種別と前記デバイスに対応して生成されるポートの種別との一致を含むことを特徴とする請求項7又は8に記載の情報処理装置。
  10. 前記制御手段は、前記アイコン判定手段により前記条件を満たすアイコンがあると判定された場合、前記第1生成手段によるアイコンの生成を行わず、前記インストール手段によりインストールされた前記ドライバに対応したアイコンとして、前記条件を満たすアイコンを用いることを特徴とする請求項6乃至9のいずれか1項に記載の情報処理装置。
  11. 前記第1生成手段によりアイコンの生成が実行されても、該実行の前と比べて前記取得手段により取得されたポート数が増えておらず、前記デバイスが有する機能について複数のポート種別に対応してアイコンが生成される場合、アイコンの削除を行う削除手段、をさらに備えることを特徴とする請求項2乃至10のいずれか1項に記載の情報処理装置。
  12. 前記取得手段によるポート数の取得の代わりに、第1生成手段によるアイコンの生成が実行される前に、条件を満たすポートの有無を判定する第2ポート判定手段、をさらに備え、
    前記判定手段は、前記第2ポート判定手段により前記条件を満たすポートがあると判定された場合、前記第1生成手段によるアイコンの生成ができないと判定し、前記第2ポート判定手段により前記条件を満たすポートがないと判定された場合、前記第1生成手段によるアイコンの生成ができると判定する、
    ことを特徴とする請求項2乃至11のいずれか1項に記載の情報処理装置。
  13. 前記条件は、所定の通信ポートの種類であることを含むことを特徴とする請求項12に記載の情報処理装置。
  14. 前記第1生成手段は、WSD(Web service on Devices)ポートに対応づけられたアイコンを生成することを特徴とする請求項1乃至13のいずれか1項に記載の情報処理装置。
  15. 前記第2生成手段は、TCP/IPポートに対応づけられたアイコンを生成することを特徴とする請求項1乃至14のいずれか1項に記載の情報処理装置。
  16. 前記インストール手段によりインストールされる前記ドライバは、デバイスの製造元から提供されるドライバであることを特徴とする請求項1乃至15のいずれか1項に記載の情報処理装置。
  17. デバイスと通信可能な情報処理装置において実行される制御方法であって、
    デバイスに対応するドライバをインストールするインストール工程と、
    前記インストール工程においてインストールされた前記ドライバに対応して、アイコンを生成する第1生成手段によるアイコンの生成ができないかを判定する判定工程と、
    前記判定工程において前記第1生成手段によるアイコンの生成ができないと判定された場合、アイコンを生成する第2生成手段により、前記インストール工程においてインストールされた前記ドライバに対応したアイコンを生成する制御工程と、
    を有することを特徴とする制御方法。
  18. 請求項1乃至16のいずれか1項に記載の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
JP2020128509A 2020-07-29 2020-07-29 情報処理装置、制御方法およびプログラム Pending JP2022025598A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2020128509A JP2022025598A (ja) 2020-07-29 2020-07-29 情報処理装置、制御方法およびプログラム
EP21187416.9A EP3945408A1 (en) 2020-07-29 2021-07-23 Information processing apparatus, control method, and program
CN202110854292.5A CN114090023A (zh) 2020-07-29 2021-07-28 信息处理设备和控制方法
KR1020210098962A KR20220014853A (ko) 2020-07-29 2021-07-28 정보 처리 장치, 제어 방법, 및 프로그램
US17/386,932 US11523020B2 (en) 2020-07-29 2021-07-28 Information processing apparatus, control method, and non-transitory computer-readable storage medium storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020128509A JP2022025598A (ja) 2020-07-29 2020-07-29 情報処理装置、制御方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2022025598A true JP2022025598A (ja) 2022-02-10

Family

ID=77042825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020128509A Pending JP2022025598A (ja) 2020-07-29 2020-07-29 情報処理装置、制御方法およびプログラム

Country Status (5)

Country Link
US (1) US11523020B2 (ja)
EP (1) EP3945408A1 (ja)
JP (1) JP2022025598A (ja)
KR (1) KR20220014853A (ja)
CN (1) CN114090023A (ja)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014174679A (ja) * 2013-03-07 2014-09-22 Canon Inc 情報処理装置及びその方法
JP6433378B2 (ja) * 2015-05-29 2018-12-05 キヤノン株式会社 情報処理装置、情報処理方法、及びコンピュータプログラム
JP6624987B2 (ja) * 2016-03-23 2019-12-25 キヤノン株式会社 情報処理装置及びプログラム、制御方法
JP6882060B2 (ja) 2017-05-12 2021-06-02 キヤノン株式会社 情報処理装置、ドライバのインストール方法およびプログラム
JP7188031B2 (ja) * 2018-11-30 2022-12-13 ブラザー工業株式会社 情報処理プログラムおよび情報処理装置

Also Published As

Publication number Publication date
US20220038596A1 (en) 2022-02-03
KR20220014853A (ko) 2022-02-07
CN114090023A (zh) 2022-02-25
US11523020B2 (en) 2022-12-06
EP3945408A1 (en) 2022-02-02

Similar Documents

Publication Publication Date Title
JP4240690B2 (ja) 情報処理装置と情報処理方法、及び情報処理システム、並びに記録媒体
JP4033857B2 (ja) プリントシステムおよび印刷管理サーバおよび印刷方法および印刷管理方法およびプログラム
US9075627B2 (en) Server connected to image forming apparatus and client, client, and method of remotely installing driver of image forming apparatus
KR101337160B1 (ko) 정보 처리 장치, 정보 처리 방법 및 기억 매체
JP4969324B2 (ja) 情報処理装置、プログラム及びその記録媒体
US11573753B2 (en) Non-transitory computer-readable recording medium storing computer-executable instructions for information processing device, and method of controlling information processing device with driverless printing function
JP5496383B2 (ja) 情報処理装置および制御方法および制御プログラム
US7826083B2 (en) Management of multiple page description languages
US11494146B2 (en) Information processing apparatus creates virtual printer to transmit print job to associated image forming apparatus which supports predetermined print format
KR100956928B1 (ko) 화상 형성 장치, 그 제어 방법, 및 화상 형성 시스템
JP2007069359A (ja) 画像形成装置及びその制御方法、プログラム、画像形成システム
JP2017204139A (ja) 更新アプリケーション及び更新方法
US8422040B2 (en) Image forming system and method, management apparatus, and recording medium
KR20200138061A (ko) 가상 디바이스, 오퍼레이팅 시스템, 가상 디바이스 서비스, 정보 처리 장치, 및 정보 처리 장치를 제어하는 방법
JP7328050B2 (ja) 情報処理装置、制御方法、プログラム
JP5697393B2 (ja) 情報処理装置、周辺装置制御方法及びプログラム
JP2022025598A (ja) 情報処理装置、制御方法およびプログラム
JP2009009600A (ja) プリントシステムおよび印刷管理サーバおよび印刷方法および印刷管理方法およびプログラム
JP4480037B2 (ja) 印刷管理サーバおよび印刷装置および印刷管理方法および印刷方法およびプログラムおよび記録媒体
JP7433874B2 (ja) 情報処理装置、方法、及びプログラム
JP2021077076A (ja) 仮想デバイス、情報処理装置及び情報処理装置の制御方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240321

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240531