JP2018128790A - 情報処理装置、プログラム、インストール方法 - Google Patents

情報処理装置、プログラム、インストール方法 Download PDF

Info

Publication number
JP2018128790A
JP2018128790A JP2017020495A JP2017020495A JP2018128790A JP 2018128790 A JP2018128790 A JP 2018128790A JP 2017020495 A JP2017020495 A JP 2017020495A JP 2017020495 A JP2017020495 A JP 2017020495A JP 2018128790 A JP2018128790 A JP 2018128790A
Authority
JP
Japan
Prior art keywords
control program
information
processing apparatus
information processing
printer
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.)
Granted
Application number
JP2017020495A
Other languages
English (en)
Other versions
JP6874405B2 (ja
Inventor
洋一 峰岸
Yoichi Minegishi
洋一 峰岸
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2017020495A priority Critical patent/JP6874405B2/ja
Priority to US15/876,516 priority patent/US10873676B2/en
Publication of JP2018128790A publication Critical patent/JP2018128790A/ja
Application granted granted Critical
Publication of JP6874405B2 publication Critical patent/JP6874405B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0035User-machine interface; Control console
    • H04N1/00405Output means
    • H04N1/00408Display of information to the user, e.g. menus
    • H04N1/00413Display of information to the user, e.g. menus using menus, i.e. presenting the user with a plurality of selectable options
    • H04N1/00416Multi-level menus
    • 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/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • 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
    • 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/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/1231Device related settings, e.g. IP address, Name, Identification
    • 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/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/1232Transmitting printer device capabilities, e.g. upon request or periodically
    • 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/1284Local printer device
    • 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/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1228Printing driverless or using generic drivers
    • 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

Abstract

【課題】制御プログラムのインストールにより生じる不都合を抑制する情報処理装置を提供する。
【解決手段】電子機器30が接続されることで前記電子機器に対応した制御プログラムをインストールする情報処理装置10であって、前記情報処理装置にすでにインストールされている第一の制御プログラムに関する情報を収集する情報収集手段17と、前記情報処理装置に接続された電子機器から前記電子機器の識別情報を取得する機器情報取得手段11と、前記識別情報により特定される前記第一の制御プログラムに関する情報を用いて、前記識別情報により特定された第二の制御プログラムをインストールするか否かを判断する判断手段19とを有する。
【選択図】図6

Description

本発明は、情報処理装置、プログラム、及びインストール方法に関する。
情報処理装置にプリンタなどの電子機器が接続された場合に、電子機器の制御プログラムを情報処理装置のOSがインストールする技術(プラグアンドプレイ)が知られている。プラグアンドプレイの有効性を増すために予めOSには種々の電子機器の制御プログラムが同梱されており、所定のフォルダにこれら制御プログラムが記憶されている。所定のフォルダに記憶された制御プログラムを「OS同梱の制御プログラム」という。OSはこのフォルダに記憶されている制御プログラムを優先的に検索してインストールする。
ユーザが新たな電子機器を接続する場合、ユーザは記憶媒体に記憶されるか又はネットワークからダウンロードしたインストーラを情報処理装置に実行させる。インストーラがUSBケーブル等により情報処理装置と電子機器の接続を促しユーザが接続すると、OSはプラグアンドプレイにより電子機器の識別情報を取得して、接続された電子機器に最適な制御プログラムを所定のフォルダに記憶されているOS同梱の制御プログラムから検索し、自動的にインストールする。
このようにプラグアンドプレイは便利な反面、自動的にインストールが進むためユーザが望む形態で制御プログラムをインストールできない場合がある(例えば、特許文献1参照。)。特許文献1には、プラグアンドプレイにより制御プログラムの意図しない上書きを防ぐため、電子機器の識別情報を受信してインストールされる第一の制御プログラムによりすでにインストールされている第二の制御プログラムが不整合な状態となるか否かを判断する情報処理装置が開示されている。
しかしながら、従来のインストール方法は制御プログラムのインストールの自動化に不都合が生じる場合があるという問題がある。上記のようにユーザがUSBケーブル等で電子機器を情報処理装置に接続したら、OSやその他のアプリケーションソフト等が自動で接続された電子機器に対応した制御プログラムをインストールすることが好ましい。しかし、情報処理装置には、接続した電子機器の機種に対応可能な制御プログラムとして、当該機種に対応する最新のバージョンの制御プログラムではなく、OS同梱の制御プログラム(当該機種の電子機器が発売される前に作られた)やユーザが過去にダウンロードした古いバージョンの制御プログラムが含まれる場合がある。
このような状況において、ユーザが電子機器と情報処理装置を接続すると、プラグアンドプレイにより電子機器が特定されるが、この電子機器に対応する古い制御プログラム(OS同梱の制御プログラム又は以前にダウンロードした古いバージョンの制御プログラム)がインストールされてしまう場合がある。このように、制御プログラムによっては自動でインストールされることが好ましくない場合がある。
OSによってはインストールされた古い制御プログラムを最新の制御プログラムに置き換える機能を持つため、インストーラがこの機能を利用して古い制御プログラムを新しい制御プログラムに置き換える手順を実行することが検討される。しかしながら、ユーザが意図的に古い制御プログラムを使用している可能性があり、インストーラは削除してよいかどうかを判断できない。
このように、従来は、最新の制御プログラムを自動でインストールすべきかどうかを判断できず、インストールを自動化することが困難な場合があった。
本発明は、上記課題に鑑み、制御プログラムのインストールにより生じる不都合を抑制する情報処理装置を提供することを目的とする。
本発明は、電子機器が接続されることで前記電子機器に対応した制御プログラムをインストールする情報処理装置であって、前記情報処理装置にすでにインストールされている第一の制御プログラムに関する情報を収集する情報収集手段と、前記情報処理装置に接続された電子機器から前記電子機器の識別情報を取得する機器情報取得手段と、前記識別情報により特定される前記第一の制御プログラムに関する情報を用いて、前記識別情報により特定された第二の制御プログラムをインストールするか否かを判断する判断手段と、を有する。
制御プログラムのインストールにより生じる不都合を抑制する情報処理装置を提供することができる。
本実施形態のインストール方法を説明する上で比較される比較例を説明する図である。 本実施形態のインストーラによるインストール方法を説明する図の一例である。 情報処理システムの概略構成図の一例である。 プリンタの一例のハードウェア構成図である。 情報処理装置のハードウェア構成図の一例である。 情報処理システムが有するプリンタと情報処理装置の機能をブロック状に示す機能ブロック図の一例である。 プリンタアイコンを説明する図の一例である。 プラグアンドプレイを模式的に説明する図の一例である。 情報処理装置が制御プログラムをインストールする手順を示すシーケンス図の一例である。 インストール判断部が制御プログラムをインストールするか否かを判断する手順を示すフローチャート図の一例である。 情報処理システムが有するプリンタと情報処理装置の機能をブロック状に示す機能ブロック図の一例である(実施例2)。 情報処理装置が制御プログラムをインストールする手順を示すシーケンス図の一例である(実施例2)。 インストール判断部が制御プログラムをインストールするか否かを判断する手順を示すフローチャート図の一例である(実施例2)。 情報処理システムが有するプリンタと情報処理装置の機能をブロック状に示す機能ブロック図の一例である(実施例3)。 情報処理装置が制御プログラムをインストールする手順を示すシーケンス図の一例である(実施例3)。 機器検知部が複数のMANUFACTURE名とMODEL名を接続機器一覧保持部に保存する手順を示すフローチャート図の一例である(実施例3)。 ディスプレイに表示された選択画面の一例を示す図である(実施例3)。 インストール判断部が制御プログラムをインストールするか否かを判断しインストール結果を表示する手順を示すフローチャート図の一例である(実施例3)。 インストール成功画面、エラーレポート画面の一例を示す図である。 制御部がプリンタアイコン名の変更を検出する手順を示すフローチャート図の一例である(実施例4)。 常駐ソフトが常時、印刷ジョブを監視している際にプリンタアイコンの増減を検出する手順を示すフローチャート図の一例である(実施例4)。
以下、本発明を実施するための形態について図面を参照しながら説明する。
<インストール方法の比較例>
図1を用いて、本実施形態のインストール方法を説明する上で比較されるインストール方法を説明する。図1の手順は必ずしも従来技術でない点に注意されたい。図1(a)は、制御プログラムのインストールを時系列に説明している。
1.ユーザが記憶媒体に記憶されているインストーラを情報処理装置で起動させる。この時点で情報処理装置にインストールされている制御プログラムを表すプリンタアイコン名はMP200、MP300となっている。プリンタアイコン名及びプリンタアイコンについては図7にて後述する。
2.インストーラはユーザが新たに使用しようとするプリンタと情報処理装置を接続させるようユーザに促す画面を表示する。ユーザが新たに使用しようとするプリンタを新規プリンタといい、ユーザは新規プリンタのMP201を情報処理装置と接続する。
3.ユーザが新規プリンタと情報処理装置を接続させるとプラグアンドプレイが働いて、例えばOS同梱の制御プログラム(最新でない可能性がある)がインストールされる。本実施形態は機種共通の制御プログラムに限定されないが、分かりやすい例として制御プログラムが機種共通である場合を例にして説明する。MP201の制御プログラムは機種共通であり、新規プリンタ及び古いプリンタの両方に対応づけられている制御プログラムがOS同梱として記憶されている。OS同梱の制御プログラムとは、OSの出荷時にOSのメーカが収集した種々の電子機器の制御プログラムをいう。OS同梱の制御プログラムは最新の制御プログラムとは限らない。OS同梱の制御プログラムはOSで決まっている所定のフォルダに記憶されている。
5.このように、インストーラはOS同梱の古い制御プログラムをインストールしてしまうため、新規プリンタの最新の制御プログラムはインストールされない。
次に、図1(b)で、OS同梱の制御プログラムを、インストーラが置き換える場合のインストール方法を説明する。
1.ユーザが記憶媒体に記憶されているインストーラを情報処理装置で起動させる。この時点で情報処理装置にインストールされている制御プログラムを表すプリンタアイコン名はP200、MP300、MP201となっている。MP201は、MP201専用の最新の制御プログラムではなく、OS同梱の制御プログラム(例えば機種共通の制御プログラム)であり、新規プリンタよりも古いプリンタ(新規プリンタと異なる機種)のプリンタアイコン名である。
2.インストーラは新規プリンタMP201と情報処理装置を接続させるようユーザに促す画面を表示する。ユーザはMP201を情報処理装置と接続する。
3.インストーラはOS同梱の古い制御プログラムをインストールしようとするが、新規プリンタであるMP201に対するプリンタアイコンがすでに存在しているため、インストーラは新たなプリンタアイコンを作成できず、古い制御プログラムのまま新しい制御プログラムをインストールしない。特に情報処理装置のOSがWindows(登録商標)でありUSB接続の場合、1つのプリンタに対して複数のプリンタアイコンを設定することができない。
4.インストーラは、3.のような状況に対応するため、MP201というプリンタアイコン名に対応付けられている古い制御プログラムを新しい制御プログラムで置き換える。
5.MP201という名称のプリンタアイコンに最新の制御プログラムが対応付けられる。
しかし、MP201というプリンタアイコンに対応付けられた制御プログラムが古い制御プログラムから最新の制御プログラムに置き変わっているので、ユーザとしては今まで使っていた制御プログラムが勝手に変わってしまうことになる。制御プログラムが変わってしまうと、印刷設定画面における表示等が変わってしまうことがあり、ユーザにとって使い勝手が悪くなってしまう可能性がある。
<本実施形態のインストール方法>
図2は、本実施形態のインストーラによるインストール方法を説明する図の一例である。説明のため、まず、図2(b)について説明する。
1.ユーザが記憶媒体に記憶されているインストーラを情報処理装置で起動させる。インストーラはこの時点で情報処理装置にインストールされている制御プログラムを表すプリンタアイコン名(プリンタアイコン名はMP200、MP300、MP201)を取得する。
2.インストーラは新規プリンタと情報処理装置を接続させるようユーザに促す画面を表示する。ユーザは新規プリンタのMP201を情報処理装置と接続する。
3.ユーザが新規プリンタと情報処理装置を接続させるとプラグアンドプレイが働いて、インストーラはOS同梱の古い制御プログラムをインストールしようとする。しかし、MP201というプリンタアイコン名で制御プログラムがインストールされているためインストーラは古い制御プログラムのままインストールしない。つまり、新規プリンタであるMP201の制御プログラムは機種共通であり、MP201と異なる古いプリンタの制御プログラムがOSに同梱されすでにインストールされている。
4.新規プリンタであるMP201の制御プログラムはMP201であるが、ユーザがこの制御プログラムをすでに使用している場合、1.の段階でMP201というプリンタアイコン名のプリンタアイコンがあるはずである。情報処理装置10は、新規プリンタであるMP201から機種名を取得してMP201に対応したプリンタアイコンが1.の段階で存在するか否かによって、インストールの可否を判断する。新規プリンタであるMP201に対応したプリンタアイコンが1.の段階で存在する場合、インストーラの起動後にインストールされた制御プログラムではないため、ユーザは制御プログラムを使用している可能性があるので、インストーラは新規プリンタであるMP201に対応した最新の制御プログラムをインストールしない。
図2(b)は新規プリンタであるMP201に対応したプリンタアイコンが1.の段階で存在する場合を示しており、インストーラは最新の制御プログラムをインストールしない。プラグアンドプレイで作成されるプリンタアイコンはOSの仕様上1つしか作成されない場合があるが、本実施例では制御プログラムを置き換えないのでユーザが今まで使っていた制御プログラムが勝手に変わってしまうことを防止できる。
このように、ユーザが古い制御プログラムを使用している場合は、新しい制御プログラムをインストールしないので、ユーザが知らないうちに制御プログラムが勝手に変わってしまうことを防止できる。
次に、図2(a)について説明する。1.〜3.までの処理は図2(b)と同様である。ただし、1.の段階で存在するプリンタアイコン名はMP200、MP300である。
4.新規プリンタであるMP201に対応したプリンタアイコンが1.の段階でない場合、インストーラは再度、情報処理装置にインストールされている制御プログラムのプリンタアイコン(MP200、MP300、MP201)を取得する。
すると、1.で取得したプリンタアイコンとの違いが検出されるため、4.の段階で「新規プリンタであるMP201に対応したプリンタアイコンがある場合」最新の制御プログラムのインストールを行う。更に好ましくは、1.では存在しなかったプリンタアイコンが「OS同梱の制御プログラムである場合」最新の制御プログラムのインストールを行う。これらのうち少なくとも一方を満たす場合、プラグアンドプレイでOS同梱の古い制御プログラムがインストールされた可能性が高いためである。図2(a)ではこの条件を満たすとする。少なくとも一方を満たす場合、ユーザが新規プリンタに対するプリンタアイコンを意図的に使用していない可能性、及び、意図的にこのプリンタアイコンに対応する制御プログラムをインストールしていない可能性が高い。なお、この両方を満たす場合、プラグアンドプレイでOS同梱の古い制御プログラムがインストールされた可能性が高い。
インストーラはすでにインストールされた古い制御プログラムを新しい制御プログラムで置き換える。
5.MP201のプリンタアイコンに新しい制御プログラムが対応付けられた状態になる。
上記の条件の「新規プリンタであるMP201に対応したプリンタアイコンがある場合」により、プラグアンドプレイで古い制御プログラムがインストールされたと判断できる。また、「OS同梱の制御プログラムである場合」により、これからインストールしようとする制御プログラムの方が最適であると判断できる。よって、所定のフォルダの古い制御プログラムでなく最新の制御プログラムをインストールできる。
このように、本実施例のインストーラは最新の制御プログラムを自動でインストールすべきかどうかを適切に判断でき、制御プログラムのインストールにより生じる不都合を抑制できる。
<用語について>
制御プログラムとは、情報処理装置が電子機器を制御するためのプログラムである。電子機器の制御方法は電子機器ごとに様々であるため、情報処理装置は電子機器ごとに固有の方法で制御しなければならない。制御プログラムはOSに電子機器を制御する機能を追加するためのソフトウェアであり、抽象化されたインタフェースで電子機器の機能を利用する手段をOSに対して提供する。制御プログラムが電子機器を扱う手段を提供することによって、OSが種々の電子機器に対応する必要をなくすことができる。制御プログラムの具体例としてはデバイスドライバが知られている。プリンタのデバイスドライバはプリンタドライバと呼ばれる場合がある。
インストールとは、情報処理装置にソフトウェアを追加し、このソフトウェアを使用可能にすることをいう。「導入する」や「セットアップする」と呼ばれる場合もある。
第一の制御プログラムに関する情報とは、情報処理装置にインストールされており情報処理装置から取得可能な第一の制御プログラムの情報である。より具体的には、第一の制御プログラムを特定できる情報、又は、第一の制御プログラムが使用された回数である。本実施形態ではプリンタアイコンに関する情報という用語で説明する。
電子機器の識別情報とは、電子機器を特定する情報である。インストールする制御プログラムを特定できる程度に電子機器を特定できればよい。例えば、電子機器の機種情報であり、更に具体的には機種名、機種名と対応付いた識別情報などである。本実施形態ではMANUFACTURE名とMODEL名という用語で説明される。
第二の制御プログラムは、情報処理装置にインストールしようとされる制御プログラムである。
<システム構成例>
図3は、情報処理システム100の概略構成図の一例である。図3に示す情報処理システム100は、サーバ50、情報処理装置10及び1台以上のプリンタ30を有する。専用線で接続されたプリンタ30をプリンタA、ネットワーク接続されたプリンタ30をプリンタBと称す。
情報処理装置10とプリンタAはUSBケーブルなどの専用線でPeer To Peer(1対1)に接続されている。ただし、常に接続されている状態である必要はなく、ユーザが専用線を脱着させることができる。また、専用線はプラグアンドプレイ(Plug & Play)を発生させるインタフェースを備えていればよい。USBケーブルの他、例えば、PCカード、PCI、IEEE1394、SCSI、等がある。
また、プラグアンドプレイに対応していれば情報処理装置10とプリンタAが無線で通信可能に接続されてもよい。Peer To Peerの接続を行う無線通信としては、Bluetooth(登録商標)、アドホックモードの無線LAN、WiFi-Directの無線LANなどがある。
情報処理装置10はネットワークを介してサーバ50及びプリンタBと通信可能に接続されている。このネットワークは、例えば、プリンタA、Bが設置された施設に敷設されたLAN、広域イーサネット(登録商標)、複数のLANがルータ等で接続されたWAN、及びインターネットなどである。ネットワークは有線又は無線のどちらで構築されてもよく、また、有線と無線が組み合わされていてもよい。また、無線の場合、3G、4G又はLTEなどの通信規格のネットワークが含まれていてもよい。
情報処理装置10は、OS(Operating System)、制御プログラム及びアプリケーションソフトウェアが実行される装置又は機器である。コンピュータと呼ばれることも多い。具体的には、例えば、PC(Personal Computer)、スマートフォン、タブレット端末、PDA(Personal Digital Assistant)、ウェアラブルPC等が例として挙げられる。このほか、プラグアンドプレイに対応し制御プログラムを実行可能な装置又は機器であればよい。
プリンタA、Bは、用紙などのシート材に画像を形成する装置である。印刷装置や画像形成装置と呼ばれる場合がある。また、画像を形成する機能の他にFAXの送受信の機能、又は原稿の画像を読み取るスキャナの機能の1つ以上を有していてもよい。プリンタA,Bが複数の機能を有する場合、複合機やMFP(Multi-Function Peripherals)と呼ばれる。
プリンタA、Bはプラグアンドプレイによる制御プログラムのインストールに対応した電子機器の一例に過ぎない。プラグアンドプレイによる制御プログラムのインストールに対応した電子機器として、例えば、USBをインタフェースとする機器が挙げられる。また、ビデオカード、マウス、Webカメラ、キーボードなどがある。
プリンタBはネットワークに接続されているので、プリンタBはユニバーサルプラグアンドプレイに対応していることが好ましい。ユニバーサルプラグアンドプレイに対応しているので、プリンタBがネットワークに接続されると情報処理装置10にプリンタBの制御プログラムがインストールされる。プラグアンドプレイの一連の処理は、表1のようになるが、専用線又はネットワークのいずれでプリンタ30が接続されても、必要な処理が行われる。
Figure 2018128790
以下では、特に断らない限りプリンタAの制御プログラムがインストールされる場合を例にして説明する。
サーバ50は制御プログラムを記憶する一般的な情報処理装置(コンピュータ)である。情報処理装置10にはサーバ50のIPアドレスが予め設定されており、制御プログラムのインストールのためにプリンタAが接続されると、情報処理装置10はサーバ50からプリンタAに対応した制御プログラムを取得する。従って、制御プログラムが記憶媒体に記憶されている場合、サーバ50はなくてもよい。サーバ50はクラウドコンピューティングに対応していることが好ましい。クラウドコンピューティングとは、特定ハードウェア資源が意識されずにネットワーク上のリソースが利用される利用形態をいう。
<<プリンタのハードウェアについて>>
本実施例に係るプリンタ30は、例えば図4に示すようなハードウェア構成により実現される。図4は、本実施例に係るプリンタ30の一例のハードウェア構成図である。図4に示すプリンタ30は、コントローラ201、操作パネル202、外部I/F203、通信I/F204、プリンタ部205、スキャナ206及び近距離無線通信装置207などを有している。
コントローラ201はCPU211、RAM212、ROM213と、NVRAM214、HDD215を有する。ROM213は、各種プログラムやデータが格納されている。RAM212はプログラムやデータを一時保持する。NVRAM214は、例えば設定情報等が格納されている。また、HDD215は各種のプログラム215pやデータが格納されている。
CPU211は、ROM213やNVRAM214、HDD215などからプログラム215pやデータ、設定情報等をRAM212上に読み出し、処理を実行することで、プリンタ30全体の制御や機能を実現する。
操作パネル202はユーザからの入力を受け付ける入力部と、表示を行う表示部26(タッチパネルを備えている)とを有する。外部I/F203は外部装置とのインタフェースである。外部I/F203は例えばUSB I/Fであり、外部装置として情報処理装置10が接続される。この他、外部装置には記録媒体203a等がある。なお、記録媒体203aには、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリなどがある。
通信I/F204は、ネットワークNを介した通信を行うためのインタフェースである。なお、プリンタBはネットワークNを介して情報処理装置10と接続する。
プリンタ部205は、印刷対象データを印刷して出力するための印刷装置である。スキャナ206は原稿を光学的に読み取って電子データに変換する読み取り装置である。
近距離無線通信装置207は、例えば、NFCやBluetooth(登録商標)の通信規格にしたがった通信装置である。例えば、NFCの場合はリーダ・ライタなどと呼ばれる場合がある。
<<情報処理装置10のハードウェアについて>>
図5は情報処理装置10のハードウェア構成図の一例である。情報処理装置10は、CPU301、ROM302、RAM303及び補助記憶装置304を備える。更に、情報処理装置10は、入力部305、ディスプレイI/F306、ネットワークI/F307、外部機器I/F308、及び光学ドライブ309を備える。なお、情報処理装置10の各部は、バスBを介して相互に接続されている。このように、情報処理装置10は一般的なコンピュータとしての機能を有する。
CPU301は、補助記憶装置304に格納された各種のプログラム304p、OS(Operating System)等を実行する。ROM302は不揮発性メモリである。ROM302は、システムローダーやデータ等を格納する。
RAM303は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の主記憶装置である。CPU301によって実行される際に補助記憶装置304に格納されたプログラム304pがRAM303に展開され、RAM303はCPU301の作業領域となる。
補助記憶装置304は、CPU301により実行されるプログラム304p及びプログラム304pがCPU301により実行される際に利用される各種データベースを記憶する。補助記憶装置304は例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)などの不揮発性メモリである。
入力部305は、オペレータが情報処理装置10に各種指示を入力するためのインタフェースである。例えば、キーボード、マウス、タッチパネル、音声入力装置などである。ただし、入力部305は必要に応じて接続されてよい。
ディスプレイI/F306は、CPU301からの要求により、情報処理装置10が有する各種情報をカーソル、メニュー、ウィンドウ、文字、又は画像などの形態で表示装置であるディスプレイ310に表示する。ディスプレイI/F306は、例えばグラフィックチップやディスプレイI/Fである。ただし、ディスプレイI/F306は必要に応じて接続されてよい。
ネットワークI/F307は、ネットワークNを介してプリンタBと通信を行う通信装置である。ネットワークI/F307は例えばイーサネット(登録商標)カードであるがこれに限られない。ネットワークI/F307は例えばネットワークNに接続する。
外部機器I/F308は、USBケーブル、又は、USBメモリ等の各種の記憶媒体320などを接続するためのインタフェースである。外部機器I/F308にプリンタAが接続される。光学ドライブは、CD、DVD、又はBlu-layなどの記憶媒体320から情報を読み取ったり書き込んだりする装置である。記憶媒体320には、インストーラ60が記憶されている。インストーラ60は制御プログラムを含むが、サーバ50から制御プログラムが取得される場合は、制御プログラムが含まれていなくてよい。
<機能について>
図6(a)は、情報処理システム100が有するプリンタ30と情報処理装置10の機能をブロック状に示す機能ブロック図の一例である。
まず、プリンタ30は送受信部31と機器情報保持部32を有する。プリンタ30が有するこれら各機能部は、図4に示された各構成要素のいずれかが、HDD215からRAM212に展開されたプログラムに従ったCPU211からの命令により動作することで実現される機能又は手段である。
送受信部31は図4に示したCPU211がプログラム215pを実行すること及び外部I/F203を制御すること等により実現され、専用線33を介して情報処理装置10と通信を行う。プリンタAが接続された場合、プラグアンドプレイにより、機器情報保持部32が保持する情報を情報処理装置10に送信する。プリンタBが接続された場合、送受信部31は図4に示したCPU211がプログラム215pを実行すること及び通信I/F204を制御すること等により実現されるが、機能は同様である。
機器情報保持部32は、図4に示したCPU211がプログラム215pを実行すること及びROM213、NVRAM214、及びHDD215を使った情報の読み出し等により実現される。後述するコンフィグレーションレジスタに相当する。機器情報保持部32は、MANUFACTURE名及びMODEL名を保持しており、送受信部31からの要求に応じてこれらの情報を提供する。MANUFACTURE名は電子機器のメーカ名、提供者名、又は販売業者名ということができる。MODEL名は電子機器の機種名、商品名、又は型番ということができる。
MANUFACTURE名とMODEL名はより詳細にはこれらを特定するIDとして記憶されているが、本実施形態では説明を簡単にするためMODEL名とMANUFACTURE名という用語で説明する。なお、IDはIdentificationの略であり識別子や識別情報という意味である。IDは複数の対象から、ある特定の対象を一意的に区別するために用いられる名称、符号、文字列、数値又はこれらのうち1つ以上の組み合わせをいう。
情報処理装置10は、機器検知部11、送受信部12、制御部13、インストール部14、接続機器一覧保持部15、ドライバ保存部16、プリンタアイコン収集部17、プリンタアイコン保持部18、及び、インストール判断部19を有する。情報処理装置10が有するこれら各機能部は、図5に示された各構成要素のいずれかが、補助記憶装置304からRAM303に展開されたプログラムに従ったCPU301からの命令により動作することで実現される機能又は手段である。
送受信部12は、図5に示したCPU301がインストーラ60とOSを実行すること及び外部機器I/F308を制御すること等により実現され、プリンタ30と通信する。本実施形態ではプリンタ30からMANUFACTURE名とMODEL名とを取得する。
機器検知部11は、図5に示したCPU301がインストーラ60とOSを実行すること等により実現され、送受信部12が取得したMANUFACTURE名とMODEL名とにより接続されたプリンタ30の機種を判断する。
接続機器一覧保持部15は、図5に示したCPU301がインストーラ60を実行すること及びRAM303、補助記憶装置304等により実現され、送受信部12が取得したMANUFACTURE名及びMODEL名を保持する。複数のプリンタ30が接続されている場合は全てのプリンタ30のMANUFACTURE名とMODEL名を保持する。従って、接続機器一覧保持部15は接続されているプリンタ30の一覧を保持するということができる。
ドライバ保存部16は、図5に示したCPU301がインストーラ60や記憶媒体320等により実現され、プリンタ30の最新の制御プログラムを保持している。
インストール部14は、図5に示したCPU301がインストーラ60を実行すること等により実現され、ドライバ保存部16の制御プログラムをインストールする。
制御部13は、図5に示したCPU301がインストーラ60を実行すること等により実現され、インストールの全体に関する制御を行う。
プリンタアイコン収集部17は、図5に示したCPU301がインストーラ60を実行すること等により実現され、情報処理装置10にすでにインストールされているプリンタアイコンに関する情報を収集する。
プリンタアイコン保持部18は、図5に示したCPU301がインストーラ60を実行すること及びRAM303、補助記憶装置304等により実現され、プリンタアイコン収集部17が収集したプリンタアイコンに関する情報を保持している。
インストール判断部19は、図5に示したCPU301がインストーラ60を実行すること等により実現され、プリンタアイコン保持部18の情報と機器検知部11が検知した機種名に基づいて、最新の制御プログラムをインストール可能かどうか判断する。また、「新規プリンタであるMP201に対応したプリンタアイコン」があるか否か、及び、「OS同梱の制御プログラム」であるか否かを判断して、最新の制御プログラムをインストール可能かどうか判断する。
<<機能ブロック図の他の例>>
図6(b)に示すように、情報処理装置10はサーバ50から制御プログラムを取得してもよい。プリンタAの機種を特定すると、情報処理装置10はサーバ50から機種に対応した最新の制御プログラムをダウンロードする。
情報処理装置10の送受信部12はプリンタAの機種に対応する制御プログラムをサーバ50に要求して取得する。このため、サーバ50がドライバ保存部16を有しており、情報処理装置10はドライバ保存部16を有さなくてよい。
<プリンタアイコンについて>
図7は、プリンタアイコン70を説明する図の一例である。図7(a)は情報処理装置10が表示したプリンタアイコン70の一覧を示し、図7(b)は1つのプリンタアイコン70を示す。プリンタアイコン70とは、プリンタ30に関する情報が対応付けられた情報処理装置10上のプリンタであり、論理プリンタと呼ばれる場合がある。
情報処理装置10に制御プログラムがインストールされた場合、プリンタAを視覚的に表示するために図示するようなプリンタAを表す画像データもインストーラ60又は所定のフォルダからインストールされる。一般にアイコンはこの画像データを意味するが、本実施形態ではアイコン(画像データ)に対応付けられた情報を含めてプリンタアイコン70という。
プリンタアイコン70はプリンタ30のポート(IPアドレス、USBポートなど)などで各プリンタ30と対応付けられる。また、各プリンタアイコン70はインストールされた制御プログラムの名称(制御プログラム名72)を保持している。これとは別にプリンタアイコン70はプリンタアイコン名71を保持している。制御プログラム名72は予め決まっている。プリンタアイコン名71はユーザがこのプリンタアイコン70で印刷できるプリンタ30を把握するためのプリンタの表示名(識別情報)である。ユーザは製品の名称を考慮して判別しやすいプリンタアイコン名71を任意に設定することができる。
制御プログラム名72は制御プログラムで印刷できる機種名を含む場合が多いが、制御プログラムが機種共通の場合、制御プログラム名とプリンタ名は一致しない場合がある。例えば、プリンタ名(製品の名称)がMP201AとMP201Bであるが、機種共通の制御プログラムが適用される場合、MP201AとMP201Bのどちらのプリンタアイコンにも同じ制御プログラム名が対応付けられる場合がある。
印刷設定73はインストールと共にレジストリに格納されたものか又はユーザが最後に設定したものがプリンタアイコン70に対応付けられる。このほか、プリンタアイコン70は、プリンタAから取得される使用できる紙種やオプション設定などの情報を保持できる。これらは、インストール時双方向通信により取得され制御プログラムのインストールと共に情報処理装置10に格納される。
このようにプリンタアイコン70は、単なる画像データでなく制御プログラムが対応するプリンタ30の機能や設定を保持するようになり、ユーザは情報処理装置10のプリンタアイコン70を実際のプリンタ30のように扱うことができる。
上記のようにプラグアンドプレイで作成されるプリンタアイコンはOSの仕様上1つしか作成されない。例えばMP201というプリンタアイコン名のプリンタアイコン70がある場合に、MP201と同じ制御プログラムを使用するプリンタの制御プログラムがプラグアンドプレイでインストールされると、MP201というプリンタアイコン名のプリンタアイコン70の制御プログラムが新しい制御プログラムに置き換わる。
<プラグアンドプレイについて>
図8は、プラグアンドプレイを模式的に説明する図の一例である。プリンタ30はコンフィグレーションレジスタ35と呼ばれる記憶手段を有し、ここにMANUFACTURE名とMODEL名を記憶している(後述されるPnP ID)。また、OS同梱の制御プログラムは所定のフォルダに記憶されている(例えば、Driver Storeというフォルダ)。情報処理装置10は所定のフォルダ21にINFファイル22と制御プログラム23を有している。INFファイル22は、OS(主にWindows(登録商標。以下、省略する。)において、ソフトウェアのインストール用の設定が記述されたシステム定義ファイルである。INFファイル22には、MANUFACTURE名及びMODEL名の他、MANUFACTURE名及びMODEL名のプリンタ30の制御プログラム23はどのファイルで情報処理装置10のどのフォルダにコピーするかが記述されている。
(1)OSのプラグアンドプレイ機能は、プリンタ30が接続されたことを検出すると(この時点では機種名は分からずUSBケーブルで電子機器が接続されたことが検出される)、情報処理装置10のBIOS(Basic Input Output System)はプリンタ30のコンフィグレーションレジスタ35からMANUFACTURE名及びMODEL名を取得する。
(2)OSはこのOSの出荷時点で市販されていた主な電子機器の制御プログラムを所定のフォルダ21に保持している。プラグアンドプレイ機能は、所定のフォルダ21にプリンタ30から取得したMANUFACTURE名とMODEL名とを有するINFファイル22を検索する。
(3)INFファイル22が見つかったら、インストーラ60がINFファイル22に記述されている設定(ファイル)に従って制御プログラム23をインストールする。
記憶媒体又はサーバに制御プログラム23が記憶されている場合、INFファイルはインストーラと同じフォルダに格納されているので、インストーラはこのフォルダから制御プログラム23をインストールする。また、次回、同じ制御プログラム23を記憶媒体やサーバがなくてもインストールできるように、インストールした制御プログラム23とINFファイルを所定のフォルダ21にコピーする。
なお、WindowsというOSを説明に使用したのは一例であって、プラグアンドプレイに対応したOSであれば本実施形態に好適に適用できる。
<動作手順>
図9は、情報処理装置10が制御プログラムをインストールする手順を示すシーケンス図の一例である。
S1:まず、ユーザは記憶媒体を外部機器I/F308又は光学ドライブ309に装着して、インストーラ60を起動する。
S1.1:制御部13はプリンタアイコン収集部17に、情報処理装置10がインストール開始時にすでに有している各プリンタアイコン70に関する情報(プリンタアイコン名、制御プログラム名、ポート名)の収集を要求する。
S1.1.1:プリンタアイコン収集部17は各プリンタアイコン70に関する情報を収集する。WindowsというOSではEnumPrinters()というWindows APIの関数を利用すると、情報処理装置10で作成されているプリンタアイコン70の情報を取得できる。EnumPrinters()ではPRINTER_INFO_2という構造体の情報を取得でき、全てのプリンタアイコン70(インストーラ60の起動時に作られていた全てのプリンタアイコン)のPRINTER_INFO_2の情報を取得できる。PRINTER_INFO_2はpPrinterName、pDriverName及びPPortNameというメンバーを有し、それぞれがプリンタアイコン名、制御プログラム名及びポート名に対応する。表2にプリンタアイコン収集部17が収集したプリンタアイコン名、制御プログラム名及びポート名のリストを示す。
Figure 2018128790
表2は情報処理装置10にインストールされている制御プログラムを表すプリンタアイコン70の情報を示す。表2では4つの制御プログラムがインストールされていることが示されている。
図9に戻り、ステップS2〜S2.1.2.1までの処理を説明する。
S2:ユーザはインストーラ60の指示を受けて、プリンタAと情報処理装置10を例えばUSBケーブルで接続する。
S2.1〜S2.1.2:プリンタAが接続されることでプラグアンドプレイが働き、制御部13はプリンタAからプリンタ情報(MANUFACTURE名及びMODEL名)を取得する。具体的には、Windowsに用意されているAPIで、
SetupDiGetClassDevs()
→ SetupDiEnumDeviceInterfaces()
→ SetupDiGetDeviceInterfaceDetail()
→ CreateFile()
→ DeviceIoControl() を呼び出し、プリンタAのMANUFACTURE名とMODEL名を取得する。
まず、SetupDiGetClassDevs()に渡すGUIDに{0x28d78fad, 0x5a12, 0x11d1, {0xae, 0x5b, 0x0, 0x0, 0xf8, 0x3, 0xa8, 0xc2}}を指定する使用することで、USB接続されたプリンタAに絞ってデバイス情報を取得する。このGUIDはUSB接続される電子機器のうちプリンタを指定するものであり、IEEE 1284という規格で決まっている。
次に、インストーラ60が取得したデバイス情報を用いてSetupDiEnumDeviceinterfaces()を使用すると、デバイスインタフェースを取得できる。次に、取得したデバイスインタフェースを用いて、SetupDiGetDeviceInterfaceDetail()を使用すると、デバイスインタフェースの詳細情報を取得できる。次に、CreateFile()でデバイスインタフェースの詳細情報に含まれているパスからハンドルを作成し、そのハンドルを用いてDeviceIoControl()を使用する事により、IEEE 1284 Device ID Stringが取得できる。
IEEE 1284は、コンピュータと他の電子機器間の双方向パラレル通信を定義しているIEEE標準(規格)である。Device ID Stringは、電子機器を特定するIDを含む情報である。Device ID Stringには、MANUFACTURE名及びMODEL名が含まれている。機器検知部11はDevice ID Stringの決まった位置からMANUFACTURE名及びMODEL名を取得する。
シーケンス図では情報処理装置10の送受信部12がプリンタAの情報処理装置10と通信し、機器情報保持部32からMANUFACTURE名及びMODEL名とが取得されているが、具体的には上記のAPIにより処理されている。
S2.1.2.1:機器検知部11は、プリンタ情報(MANUFACTURE名及びMODEL名)を接続機器一覧保持部15に保持しておく。取得されたプリンタ情報を表3に示す。
Figure 2018128790
表3は、プリンタAから取得されたプリンタ情報の一例である。プリンタAは、RCOOというMANUFACTURE名でPrinter MP201というMODEL名を有することが分かる。なお、USBケーブルで接続されるプリンタには様々なメーカのものがあるが、インストーラ60は通常、自社のプリンタにしか対応できない。このため、制御部13は、サポートしている自社のMODEL名(自社の社名)以外のプリンタ情報を削除して、自社のMODEL名を有するプリンタ情報のみを表示してもよい。自社のMODEL名はメーカにとって既知であるため、インストーラ60が有している。あるいは、サーバ50などの所定のサーバに問い合わせることができる。
図9に戻り、ステップS3〜S4の処理を説明する。
S3:制御部13は、インストール判断部19に接続されたプリンタAの制御プログラムをインストール可能か否かの判断を要求する。
S3.1:インストール判断部19は、接続機器一覧保持部15からMANUFACTURE名とMODEL名を取得する。
S3.2:インストール判断部19はインストーラ60が持つ制御プログラムに関する情報を取得する。例えば、制御プログラム名を取得すればよい。
S3.3:インストール判断部19は、プリンタアイコン保持部18が保持しているプリンタアイコン70に関する情報を取得する。
S3.4:インストール判断部19はインストールが可能か否かを判断する。具体的な判断方法は図10で後述される。インストール判断部19はインストール可否の判断結果を制御部13に返す。ここではインストールができると判断されたものとする。
S4:制御部13はインストール部14にインストールを指示する。
S4.1:インストール部14は制御プログラムをインストールする。
<インストールの可否の判断方法>
図10は、インストール判断部19が制御プログラムをインストールするか否かを判断する手順を示すフローチャート図の一例である。
インストール判断部19は、接続機器一覧保持部15からMANUFACTURE名及びMODEL名を取得する(S10)。表3では情報処理装置10にプリンタAが1つのみ接続されているのでMANUFACTURE名とMODEL名は一意に決まる。このうちMODEL名に機種(例えば、MP201)が含まれる。
MODEL名により制御プログラムがインストールされる機種が分かったので、インストール判断部19は制御プログラムを特定する(S20)。INFファイル22にはMANUFACTURE名とMODEL名から生成されたPnP IDが記載されている。PnP IDとは「ポート+ベンダー名+モデル名+SUM値」を有する情報である。ベンダー名がMANUFACTURE名又はこれに準ずるものであり、モデル名がMODEL名又はこれに準ずるものである。従って、PnP IDのモデル名が機種名に相当する。
インストール判断部19はPnP IDのモデル名以外の箇所を削除することでモデル名に戻して、プリンタAから取得したMODEL名と同じモデル名を検索する。プリンタAから取得したMODEL名と同じモデル名があれば、そのモデル名に対し指示されている制御プログラムをINFファイルで特定する。インストールすると判断された場合にはこの制御プログラムがインストールされる。
次に、インストール判断部19は、これからインストールする機種のプリンタアイコン70が起動時に存在していたか否かを判断する(S30)。表2に示すプリンタアイコン保持部18が保存していたプリンタアイコン名と制御プログラム名を取得し、その中にこれからインストールする機種のプリンタアイコンがあるかどうかを判断する。プリンタアイコン名と制御プログラム名には機種名が含まれるため、プリンタAから取得したMODEL名がプリンタアイコン名又は制御プログラム名に含まれるかどうかにより判断できる。
すなわち、これからインストールする機種の機種名でプリンタアイコン70を特定できルか否かを判断する。
起動時に存在していた場合、既に一度プリンタAと接続して制御プログラムが利用されている可能性が高いため、インストール判断部19は新しい制御プログラムをインストールしないと判断する(制御プログラムを置き替えないようにする)。
次に、起動時にプリンタアイコン70が存在していなくても、インストーラ60にMANUFACTURE名及びMODEL名を認識させるためにユーザがプリンタAとプリンタを接続させるとプラグアンドプレイが行われ、プリンタアイコン70が作成されることがある。この場合に備えて、インストール判断部19はこのタイミングでもう一度、情報処理装置10が有するプリンタアイコン70に関する情報を取得する。そして、インストールする機種のプリンタアイコン70が存在するか否かを判断する。判断方法はステップS30と同じでよい。
この時点でプリンタアイコン70がある場合、このプリンタアイコン70が保持する制御プログラム名がOS同梱の制御プログラム名と同じか否かを判断する(S40)。OS同梱の制御プログラム名と同じかどうかは、インストーラ60がこれからインストールしようとする制御プログラム名と同じかどうかを判断すればよい(図9のステップS3.2で取得されている)。機種共通の制御プログラムであれば同じ名称を有する。しかし、機種共通の制御プログラムでない場合は同じ名称とは限らないので、OS同梱の制御プログラムである可能性のある制御プログラムの名称の一覧等をインストーラが予め保持している。インストール判断部19はこの一覧とプリンタアイコン70が保持する制御プログラム名を比較する。
また、名称以外のバージョンの情報等を用いたステップS40の判断も可能である。ステップS3.2でバージョンの情報等を取得していた場合、インストールしようとする制御プログラムと同一の制御プログラムがプラグアンドプレイによってインストールされたかの判断が可能である。予めユーザが最新の制御プログラムのファイルを取得していた場合、infフアイルの設定によってはインストールしようとする制御プログラムと同一の制御プログラムがインストールされている場合もありえる。このため、ステップS40で「OS同梱の制御プログラムか否かを判断」する代わりに、ステップS3.2で取得した情報を用いて同じ制御プログラムではないと判断される場合に古い制御プログラムがインストールされていると判断して、インストーラによる制御プログラムのインストールを行ってもよい。
インストールする機種のプリンタアイコン70でないか、又は、OS同梱の制御プログラムではなかった場合(S40のNo)、プリンタAの機種に最適な制御プログラムがインストールされているのでインストール処理は行わない。上記のように、USB接続のようなプラグアンドプレイを用いて作成されるプリンタアイコンは1つだけであり、インストール処理を続行してしまうと、既に存在しているプリンタアイコン70を消してしまうからである。
インストールする機種のプリンタアイコン70であり、かつ、OS同梱の制御プログラムである場合(S40のYes)、これからインストールする制御プログラムの方がユーザに最適な制御プログラムであることが確実なので、インストール判断部19はインストール処理を行うと判断する(S50)。
制御プログラムのインストールについて説明する。プリンタAがUSBケーブルで接続される場合、プラグアンドプレイ機能が必要なポートを作成したりレジストリの書きこみを行ったりしないと、OSはプリンタアイコンを作成することができない。このため、インストーラ60は既定の場所に制御プログラムをコピーして、インストール処理の一部をOSに要求してプラグアンドプレイを意図的に起こす必要がある。
インストール部14は、WindowsのAPIのUpdateDriverForPlugAndPlayDevices()を用いて、意図的にプラグアンドプレイを起こさせ、インストーラ60がインストールする制御プログラムとインストーラ60の起動時にないがステップS40で生成されていたプリンタアイコン70との対応付けを行う。このAPIにより、ユーザがプリンタAと情報処理装置10を脱着しなくても、プリンタAと情報処理装置10が接続されたようなイベントを生じさせ、ポート作成やレジストリの書き替えなどをOSに行わせることができる。
プラグアンドプレイの処理を呼び出さない他の方法として、OS同梱の制御プログラムの情報を使って以下の方法で実現してもよい。
インストール部14がWindowsのAPIであるINstallPrinterDriverFromPackage()→SetPrinter()を呼び出すことで、OS同梱の制御プログラムに対応づけて作成されたプリンタアイコン70を別の制御プログラムに置き換えることができる。この方法のメリットは、OSにインストール処理の一部を要求しないので、UpdateDriverForPlugAndPlayDevices()を使うよりもインストールに要する時間が短いことである。
デメリットとしては、プラグアンドプレイのイベントが起きないため、レジストリ情報(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBPRINT\プリンタ名\)のDeviceDesc(機器の説明)とMfg(ドライバのinfファイル名とブランド)が変更されない。他のアプリケーションがこれらの情報を利用しようとした場合、所望の結果が得られない可能性がある。このため、これらの情報を利用する他のアプリケーションが動作する可能性が低い場合はINstallPrinterDriverFromPackage()→SetPrinter()を使い、それ以外の場合はUpdateDriverForPlugAndPlayDevices()を使用するなどの使い分けが考えられる。
<まとめ>
以上のように、本実施例の情報処理装置10は、ユーザが古い制御プログラムを使用している場合は、新しい制御プログラムをインストールしないと判断することができる。ユーザが古い制御プログラムを使用していない場合、新規プリンタが接続されることでOS同梱の制御プログラムがインストールされたことを検出して、新しい制御プログラムをインストールすることができる。
本実施例ではプリンタの使用記録を参照して制御プログラムのインストールの可否を判断する情報処理装置10について説明する。
図11は、情報処理システム100が有するプリンタAと情報処理装置10の機能をブロック状に示す機能ブロック図の一例である。図11の説明において、図6(a)と同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。
本実施例のインストーラ60はプリンタアイコン使用記録部25を有する。プリンタアイコン使用記録部25は、図5に示したCPU301がインストーラ60を実行すること等により実現され、プリンタアイコン収集部17が取得したプリンタアイコン名と制御プログラム名に対応付けて制御プログラムが印刷に利用された回数を保持している。
<動作手順>
図12は、情報処理装置10が制御プログラムをインストールする手順を示すシーケンス図の一例である。図12の説明では、図9との相違を主に説明する。ステップS1〜S1.1.1までの手順は図9と同様でよい。表4に、プリンタアイコン収集部17で取得したプリンタアイコン名と制御プログラム名を示す。
Figure 2018128790
実施例1と異なり印刷ジョブ送信回数がプリンタアイコン使用記録部25に保持されている。印刷ジョブ送信回数は印刷ジョブを制御プログラムがプリンタAに送信した回数である。プリンタアイコン70の生成時はゼロであり、制御プログラムが印刷ジョブをプリンタAに送信するごとに1つ大きくなる。
図12に戻って説明する。
S1.1.2:プリンタアイコン収集部17は印刷ジョブがプリンタAに送信されたか否かを監視する。印刷ジョブ送信回数については、以下の方法を用いてカウントする。情報処理装置10にインストールされているプリンタアイコン名はEnumPrinters()で全て分かっているので、プリンタアイコン名を使用してOpenPrinter()を呼び出す。OpenPrinter()でプリンタアイコン70のハンドルを取得して、そのハンドルを利用してプリンタアイコン70に変更がある場合に通知してくれるFindFirstPrinterChangeNotification()を呼び出す。その際、プリンタアイコン70に何か変更があったら全部通知してもらうため、第2引数にPRINTER_CHANGE_ALLを指定する。
プリンタアイコン収集部17は常駐し、for文などの繰り返し構文で印刷ジョブが送信されたか(制御プログラムか使用されたか)否かを常に監視し続ける。
S1.1.3:プリンタアイコン収集部17は印刷ジョブをプリンタAに送信したプリンタアイコン70とその回数を接続機器一覧保持部15に送出する。具体的には、WaitForSingleObject(指定されたオブジェクトがシグナル状態になったら制御を返すWindows API)を利用して実際に変更された通知の情報を取得するFindNextPrinterChangeNotification()を呼び出す。印刷ジョブが追加された場合は、第2引数によりPRINTER_CHANGE_ADD_JOBが取得できるので、取得できた分、表4の印刷ジョブ送信回数を増やしてプリンタアイコン使用記録部25に保存する。
このように、プリンタアイコン使用記録部25には、制御プログラムが使用された回数が保持されるため、ユーザがこの制御プログラムを使用しているかどうかが判断可能になる。
以降の処理は図9と同様でよい。これにより、接続機器一覧保持部15には表5のプリンタ情報が保持される。
Figure 2018128790
<インストールの可否の判断>
図13は、インストール判断部19が制御プログラムをインストールするか否かを判断する手順を示すフローチャート図の一例である。図13の説明では主に図10との相違を説明する。ステップS10,S20の処理は図10と同様でよい。
ステップS30では、ステップS20で決まった機種に対応した制御プログラムをインストールする前に、プリンタアイコン使用記録部25が保持しているプリンタアイコン名と印刷ジョブ送信回数をインストール判断部19が取得する。そして、インストールしようとしている機種のプリンタアイコン70がインストール時にすでに存在していて、印刷ジョブを送信していたか否かを判断する(S30)。上記のように、プリンタAの機種名が分かるので機種名を含むプリンタアイコン名又は制御プログラム名に対応付けられている印刷ジョブ送信回数を取得する。すなわち、機種名により特定されるプリンタアイコン70の制御プログラムが使用されたことがあるか否かを判断する。
印刷ジョブ送信回数が1回以上の場合(閾値以上の場合)は、ユーザが制御プログラムを使用しているので、インストール判断部19は制御プログラムを置き替えないようにする。
次に、印刷ジョブ送信回数が0回の場合でも、インストーラ60にMANUFACTURE名やMODEL名を認識させるためにユーザがプリンタAと情報処理装置10を接続させるとプラグアンドプレイが行われ、プリンタアイコン70が作成されることがある。このため、図10のステップ40以降の処理が実行される。以降の処理は図10と同様でよい。
従って、本実施例によれば、プリンタアイコン70が有する印刷ジョブ送信回数に基づいて制御プログラムが使用されているか否か判断し、この判断結果に応じて新規プリンタの制御プログラムをインストールするか否かを判断できる。
本実施例では複数のプリンタA、Cが接続された場合の制御プログラムのインストールについて説明する。プリンタA、CはいずれもUSBケーブルで接続されたプリンタ30である。
図14は、情報処理システム100が有するプリンタAと情報処理装置10の機能をブロック状に示す機能ブロック図の一例である。図14の説明において、図6(a)と同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。
本実施例のインストーラ60は表示部26を有する。表示部26は、図5に示したCPU301がインストーラ60とOSを実行すること及びディスプレイI/F306を制御すること等により実現され、ユーザとのインタフェースとなる各種の画面を表示する。
なお、図14においても図6(b)のように、サーバ50に制御プログラムが記憶されていてよい。
<動作手順>
図15は、情報処理装置10が制御プログラムをインストールする手順を示すシーケンス図の一例である。なお、図15の説明では、主に図9との相違を説明する。図15のステップS1〜S2.1.2.1、S4〜S5.1の説明は図9と同様である。ただし、複数のプリンタAが情報処理装置10に接続されているので、複数のプリンタ情報を取得できる。
このため、機器検知部11は、ステップS1〜S2.1.2.1で、図16に示すように、MANUFACTURE名とMODEL名を取得しただけ接続機器一覧保持部15に保存する。この場合も、MANUFACTURE名がインストーラ60のメーカ名等と一致するか否かを判断し、一致する場合にだけMANUFACTURE名とMODEL名を保存してよい。
図16は、機器検知部11が複数のMANUFACTURE名とMODEL名を保存する手順を示すフローチャート図の一例である。
機器検知部11はMANUFACTURE名がインストーラ60のメーカ名等と一致するか判断する(S10)。
一致する場合はMANUFACTURE名とMODEL名を取得しただけ接続機器一覧保持部15に保持する(S20)。
機器検知部11は他にプリンタ情報が取得されたか否かを判断し(S30)、他にある場合はステップS10の処理を繰り返す。
Figure 2018128790
表6は、接続機器一覧保持部15に保持されるプリンタ情報を示す。表6では、2つのプリンタ情報が取得されたことが示されている。
図15に戻って説明する。
S3:制御部13はプリンタ情報の表示を表示部26に要求する。
S3.1:表示部26は接続機器一覧保持部15に接続されているプリンタの一覧を要求する。
S3.2:表示部26は、接続機器一覧保持部15から取得したプリンタの一覧をディスプレイ310に表示する。ユーザがインストールするプリンタ30を選択するので、表示部26は選択を受け付ける。
ユーザが選択したプリンタ30は制御部13に通知されるため、制御部13はステップS4以降でこのプリンタ30の制御プログラムをインストールする。
<画面例>
図17は、ディスプレイ310に表示された選択画面501の一例を示す。選択画面501では、「どの機器のドライバをインストールしますか?」というメッセージ502、及び機種名欄503を有している。ユーザは制御プログラムをインストールしたい機種名
を機種名欄503から選択する。
また、複数の同一機種のプリンタが接続されている場合、表示部26はそれぞれを検出して表示できる。しかし、Windowsのプラグアンドプレイの仕様上、インストール時に同一の機種には同一のHardware IDが指定されるので、2つのプリンタアイコン70に同じ制御プログラムがインストールされる。従って、表示部26が複数の同じ機種名を表示してもユーザが選ぶ意味が無いため、表示部26は同じ複数の機種名がある場合、1つだけ表示する。
また、図15の処理では、接続されたプリンタAの機種名をリアルタイムで表示することは困難であるが、制御部13がdoReceiveMSWindowProcEvent()を使えばプリンタAの接続のイベントを受け取ることができる。制御部13がイベント受信時に図15のステップ
S3〜S3.2の処理を行えば、接続されたプリンタAの機種名をリアルタイムで画面に表示させることができる。doReceiveMSWindowProcEvent()はUSBケーブルで接続された電子機器の増減を検出するAPIである。
<インストール結果のレポート画面>
更に、表示部26はユーザにレポート画面を表示することができる。
図18は、インストール判断部19が制御プログラムをインストールするか否かを判断しインストール結果を表示する手順を示すフローチャート図の一例である。図18の説明では主に図10との相違を説明する。ステップS10〜S50は図10と同様でよい。
ステップS50でインストールが成功した場合、表示部26はインストール成功画面をディスプレイ310に表示する(S60)。インストール成功画面311を図19(a)に示す。
ステップS30でYesと判断された場合(インストールしようとしている制御プログラムのプリンタアイコン名が既にある場合)、表示部26はエラーレポート画面321を表示する(S70)。エラーレポート画面321を図19(b)に示す。
図19(a)のインストール成功画面311には「Printer MP201の機器が追加されました」というメッセージ312が表示される。ユーザは追加された制御プログラムを把握できる。図19(b)のエラーレポート画面321には「Printer MP201の機器はすでにインストールされています」というメッセージ322が表示される。ユーザは制御プログラムがインストールされなかったこと及びインストールする必要がなかったことを把握できる。
本実施例によれば、USBケーブルで複数のプリンタA、Cが接続された場合でも、機種名を表示することでインストールする制御プログラムを決定できる。制御プログラムがインストールされたか否かをユーザが把握できる。
なお、本実施例は実施例1,2のいずれとも組み合わせることができる。
実施例1、2では、ユーザがプリンタアイコン名を変更した場合、制御プログラムをインストールしようとする機種に対応するプリンタアイコン70がインストール時に存在するか否かをインストール判断部19が判断することが困難になる。プリンタアイコン名が変わっても、プリンタアイコン収集部17が収集した実施例1の表2、実施例2の表4のプリンタアイコン名は変わらないためである。
そこで、本実施例では、プリンタアイコン名が変更されたことを制御部13がプリンタアイコン保持部18又はプリンタアイコン使用記録部25のプリンタアイコン名に反映させる情報処理装置10について説明する。
<プリンタアイコン名の変更>
図20は、制御部13がプリンタアイコン名の変更を検出する手順を示すフローチャート図の一例である。図20の処理はインストーラ60の起動中、実行される。
制御部13は、情報処理装置10にインストールされているプリンタアイコン名をEnumPrinters()ですべて取得する(S10)。
次に、ステップS10のプリンタアイコン名を使用してOpenPrinter()を全プリンタ―アイコン分呼び出す(S20)。OpenPrinter()でプリンタアイコンのハンドルを取得できる。
次に、制御部13は、ハンドルを利用してFindFirstPrinterChangeNotification()を呼び出す(S30)。その際、第2引数にPRINTER_CHANGE_ALLを設定する。
次に、WaitForSingleObject(指定されたオブジェクトがシグナル状態になったら制御を返すWindows API)を利用してFindNextPrinterChangeNotification()を呼び出し、第4引数で返ってくる構造体のPRINTER_NOTIFY_INFO_DATAに含まれているPRINTER_NOTIFY_FIELD_PRINTER_NAMEを辿って、プリンタアイコン名を取得する(S40)。
次に、プリンタアイコン保持部18又はプリンタアイコン使用記録部25のプリンタアイコン名と比較して、変更があった場合、ステップS40でシグナル状態になったプリンタアイコン名で更新する(S50)。
こうすることで、ユーザがプリンタアイコン名を変更しても、表2,表4のプリンタアイコン名を更新できるので、新しい制御プログラムをインストールするか否かを適切に判断できる。
<プリンタアイコンの増減>
制御プログラムが新たにインストールされればプリンタアイコン70が増えるし、また、ユーザがプリンタアイコン70を削除すれば情報処理装置10が保持するプリンタアイコン70が減る。この増減も表2,表4に反映させなければ、制御プログラムをインストールしようとする機種に対応するプリンタアイコン70がインストール時に存在するか否かをインストール判断部19が取得することが困難になる。
そこで、制御部13は以下のようにプリンタアイコン70の増減を表2,表4に反映させる。
図21は、常駐ソフトが常時、印刷ジョブを監視している際にプリンタアイコン70の増減を検出する手順を示すフローチャート図の一例である。図21の処理はインストーラ60の起動中、実行される。
まず、制御部13はEnumPrinters()でプリンタアイコン名を取得する(S10)。
次に、表2又は表4のプリンタアイコン名とEnumPrinters()で取得したプリンタアイコン名を比較して、増えているもの又は減っているものが無いか確認する(S20)。
追加されているプリンタアイコン70に関する情報がある場合(S30のYes)、制御部13はPRINTER_INFO_2からプリンタアイコン名、ドライバ名、及びポート名を取得して、表2又は表4を更新する(S40)。例えば、制御部13は表2又は表4から該当するプリンタアイコン名のレコードを削除する。
こうすることで、プリンタアイコン70が増減しても、表2,表4のプリンタアイコンに関する情報を更新できるので、インストール判断部19は新しい制御プログラムをインストールするか否かを適切に判断できる。
なお、本実施例は実施例1〜3のいずれとも組み合わせて適用することができる。
<その他の適用例>
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
例えば、本実施形態ではUSBケーブルで電子機器が接続された場合に生じるプラグアンドプレイを説明したが、ネットワークを介して電子機器が接続された場合に生じるプラグアンドプレイに対しても好適に適用できる。また、制御プログラムの自動的なインストールの仕組みがプラグアンドプレイと呼ばれていなくてよい。例えば、ユニバーサルプラグアンドプレイに類似の仕組みとしてJINIがある。
また、図6,11、14などの構成例は、情報処理装置10及びプリンタ30による処理の理解を容易にするために、主な機能に応じて分割したものである。処理単位の分割の仕方や名称によって本発明が制限されることはない。また、情報処理装置10及びプリンタ30の処理は、処理内容に応じて更に多くの処理単位に分割することもできる。また、1つの処理単位が更に多くの処理を含むように分割することもできる。
なお、プリンタアイコン収集部17は情報収集手段の一例であり、機器検知部11は機器情報取得手段の一例であり、インストール判断部19は判断手段の一例であり、インストール部14はインストール手段であり、表示部26は表示手段の一例であり、制御部13は更新手段の一例である。
10 情報処理装置
11 機器検知部
14 インストール部
17 プリンタアイコン収集部
23 制御プログラム
30 プリンタ
50 サーバ
60 インストーラ
70 プリンタアイコン
100 情報処理システム
特開2003−084984号公報

Claims (14)

  1. 電子機器が接続されることで前記電子機器に対応した制御プログラムをインストールする情報処理装置であって、
    前記情報処理装置にすでにインストールされている第一の制御プログラムに関する情報を収集する情報収集手段と、
    前記情報処理装置に接続された電子機器から前記電子機器の識別情報を取得する機器情報取得手段と、
    前記識別情報により特定される前記第一の制御プログラムに関する情報を用いて、前記識別情報により特定された第二の制御プログラムをインストールするか否かを判断する判断手段と、
    を有する情報処理装置。
  2. 前記判断手段は、前記識別情報により前記第一の制御プログラムに関する情報を特定できた場合に、前記第二の制御プログラムをインストールしないと判断する請求項1に記載の情報処理装置。
  3. 前記第一の制御プログラムに関する情報には前記第一の制御プログラムが対応する電子機器の表示名又は制御プログラム名が含まれ、
    前記識別情報には前記電子機器の機種情報が含まれており、前記機種情報が前記表示名又は前記制御プログラム名に含まれる場合、前記判断手段は、前記識別情報により前記第一の制御プログラムに関する情報を特定できたと判断する請求項2に記載の情報処理装置。
  4. 前記第一の制御プログラムに関する情報を特定できない場合、
    前記判断手段は、前記情報収集手段とは別に、前記情報処理装置にインストールされている前記第一の制御プログラムに関する情報を収集し、
    前記識別情報に基づいて前記第一の制御プログラムに関する情報が特定できる場合、前記第二の制御プログラムをインストールすると判断する請求項2又は3に記載の情報処理装置。
  5. 前記第一の制御プログラムに関する情報を特定できない場合、
    前記判断手段は、前記情報処理装置にインストールされている前記第一の制御プログラムに関する情報として制御プログラム名を収集し、
    前記識別情報に基づいて前記第一の制御プログラムに関する情報を特定でき、前記第二の制御プログラムの制御プログラム名と前記第一の制御プログラムの制御プログラム名が同じ場合、前記第二の制御プログラムをインストールすると判断する請求項2又は3に記載の情報処理装置。
  6. 前記判断手段は、前記識別情報により特定される前記第一の制御プログラムが使用されたことがある場合に、前記第二の制御プログラムをインストールしないと判断する請求項1に記載の情報処理装置。
  7. 前記第一の制御プログラムに関する情報には、前記第一の制御プログラムが使用された回数が含まれており、
    前記判断手段は、前記識別情報に基づいて特定される前記第一の制御プログラムの前記回数が閾値以上の場合に、前記第二の制御プログラムをインストールしないと判断する請求項6に記載の情報処理装置。
  8. 前記第一の制御プログラムが使用されたことがない場合、
    前記判断手段は、前記情報処理装置にインストールされている前記第一の制御プログラムに関する情報を収集し、
    前記識別情報に基づいて前記第一の制御プログラムに関する情報が特定できる場合、前記第二の制御プログラムをインストールすると判断する請求項6又は7に記載の情報処理装置。
  9. 前記第一の制御プログラムが使用されたことがない場合、
    前記判断手段は、前記情報処理装置にインストールされている前記第一の制御プログラムに関する情報として制御プログラム名を収集し、
    前記識別情報に基づいて前記第一の制御プログラムに関する情報を特定でき、前記第二の制御プログラムの制御プログラム名と前記第一の制御プログラムの制御プログラム名が同じ場合、前記第二の制御プログラムをインストールすると判断する請求項6又は7に記載の情報処理装置。
  10. 前記判断手段が前記第二の制御プログラムをインストールすると判断した場合、前記第二の制御プログラムをインストールするインストール手段を有し、
    前記インストール手段が、前記第二の制御プログラムをインストールしたか否かを表示装置に表示する表示手段を有する請求項1〜9のいずれか1項に記載の情報処理装置。
  11. 前記第一の制御プログラムに関する情報に変更があったことを検出し、
    前記情報収集手段が収集した前記情報処理装置にすでにインストールされている前記第一の制御プログラムに関する情報を更新する更新手段を有する請求項1〜10のいずれか1項に記載の情報処理装置。
  12. 前記更新手段は、前記第一の制御プログラムに関する情報のうち前記第一の制御プログラムが対応する電子機器の表示名が変更されたこと、又は、インストールされている前記第一の制御プログラムの数の増減を検出し、
    前記更新手段は、前記第一の制御プログラムに関する情報を更新する請求項11に記載の情報処理装置。
  13. 電子機器が接続されることで前記電子機器に対応した制御プログラムをインストールする情報処理装置を、
    前記情報処理装置にすでにインストールされている第一の制御プログラムに関する情報を収集する情報収集手段と、
    前記情報処理装置に接続された電子機器から前記電子機器の識別情報を取得する機器情報取得手段と、
    前記識別情報により特定される前記第一の制御プログラムに関する情報を用いて、前記識別情報により特定された第二の制御プログラムをインストールするか否かを判断する判断手段、
    として機能させるためのプログラム。
  14. 電子機器が接続されることで前記電子機器に対応した制御プログラムをインストールする情報処理装置が行うインストール方法であって、
    情報収集手段が、前記情報処理装置にすでにインストールされている第一の制御プログラムに関する情報を収集するステップと、
    機器情報取得手段が、前記情報処理装置に接続された電子機器から前記電子機器の識別情報を取得するステップと、
    判断手段が、前記識別情報により特定される前記第一の制御プログラムに関する情報を用いて、前記識別情報により特定された第二の制御プログラムをインストールするか否かを判断するステップと、を有するインストール方法。
JP2017020495A 2017-02-07 2017-02-07 情報処理装置、プログラム、システム Active JP6874405B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017020495A JP6874405B2 (ja) 2017-02-07 2017-02-07 情報処理装置、プログラム、システム
US15/876,516 US10873676B2 (en) 2017-02-07 2018-01-22 Information processing apparatus, installation method, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017020495A JP6874405B2 (ja) 2017-02-07 2017-02-07 情報処理装置、プログラム、システム

Publications (2)

Publication Number Publication Date
JP2018128790A true JP2018128790A (ja) 2018-08-16
JP6874405B2 JP6874405B2 (ja) 2021-05-19

Family

ID=63037480

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017020495A Active JP6874405B2 (ja) 2017-02-07 2017-02-07 情報処理装置、プログラム、システム

Country Status (2)

Country Link
US (1) US10873676B2 (ja)
JP (1) JP6874405B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7435994B2 (ja) 2019-05-15 2024-02-21 Necプラットフォームズ株式会社 光伝送装置、光伝送システム、光伝送装置の制御方法及びプログラム

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7013862B2 (ja) * 2017-12-27 2022-02-01 株式会社リコー 情報処理装置
JP7378414B2 (ja) * 2018-03-19 2023-11-13 ピヴォタル コムウェア インコーポレイテッド 物理的障壁を通じた無線信号の通信
JP7073823B2 (ja) 2018-03-19 2022-05-24 株式会社リコー 情報処理装置、プログラム、情報処理方法および情報処理システム
US10862545B2 (en) 2018-07-30 2020-12-08 Pivotal Commware, Inc. Distributed antenna networks for wireless communication by wireless devices
JP7127434B2 (ja) * 2018-08-30 2022-08-30 セイコーエプソン株式会社 情報処理装置および情報処理装置の制御方法
US10522897B1 (en) 2019-02-05 2019-12-31 Pivotal Commware, Inc. Thermal compensation for a holographic beam forming antenna
US10468767B1 (en) 2019-02-20 2019-11-05 Pivotal Commware, Inc. Switchable patch antenna
US10734736B1 (en) 2020-01-03 2020-08-04 Pivotal Commware, Inc. Dual polarization patch antenna system
US11069975B1 (en) 2020-04-13 2021-07-20 Pivotal Commware, Inc. Aimable beam antenna system
EP4158796A1 (en) 2020-05-27 2023-04-05 Pivotal Commware, Inc. Rf signal repeater device management for 5g wireless networks
US11026055B1 (en) 2020-08-03 2021-06-01 Pivotal Commware, Inc. Wireless communication network management for user devices based on real time mapping
US11297606B2 (en) 2020-09-08 2022-04-05 Pivotal Commware, Inc. Installation and activation of RF communication devices for wireless networks
US11843955B2 (en) 2021-01-15 2023-12-12 Pivotal Commware, Inc. Installation of repeaters for a millimeter wave communications network
JP2024505881A (ja) 2021-01-26 2024-02-08 ピヴォタル コムウェア インコーポレイテッド スマートリピータシステム
US11451287B1 (en) 2021-03-16 2022-09-20 Pivotal Commware, Inc. Multipath filtering for wireless RF signals
WO2023283352A1 (en) 2021-07-07 2023-01-12 Pivotal Commware, Inc. Multipath repeater systems
WO2023205182A1 (en) 2022-04-18 2023-10-26 Pivotal Commware, Inc. Time-division-duplex repeaters with global navigation satellite system timing recovery

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063451A (ja) * 1996-08-19 1998-03-06 Ricoh Co Ltd ネットワーク印字装置システム
JP2003216378A (ja) * 2001-11-15 2003-07-31 Canon Inc 情報処理装置及び方法及びコンピュータプログラム及びコンピュータ可読記憶媒体
JP2006268643A (ja) * 2005-03-25 2006-10-05 Fuji Xerox Co Ltd プログラム、情報処理装置および印刷システム
JP2013101595A (ja) * 2011-10-14 2013-05-23 Canon Inc ネットワークシステム及びクライアント装置とその方法
JP2014160318A (ja) * 2013-02-19 2014-09-04 Canon Inc 情報処理装置及びその方法
JP2017021647A (ja) * 2015-07-13 2017-01-26 株式会社リコー プログラム、情報処理装置、インストールシステムおよびインストール方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4464029B2 (ja) 2001-04-19 2010-05-19 キヤノン株式会社 情報処理方法および制御プログラムおよび情報処理装置および周辺装置および応答方法および代理応答装置およびネットワークシステム
JP2003084984A (ja) 2001-09-12 2003-03-20 Canon Inc 情報処理装置、及び、情報処理方法、及び、制御プログラム、及び、制御プログラムを記憶した記憶媒体
US7134121B2 (en) * 2003-06-12 2006-11-07 International Business Machines Corporation Installing fixes based on usage
JP2006099307A (ja) * 2004-09-29 2006-04-13 Hitachi Ltd 分散サーバへのアプリケーションセットのインストール方法
US8726370B2 (en) 2007-08-02 2014-05-13 Ricoh Company, Ltd. Controlling image forming function
JP4945479B2 (ja) 2008-02-25 2012-06-06 株式会社リコー 印刷処理装置、印刷処理方法、印刷処理プログラム及び記録媒体
US8881128B2 (en) * 2010-02-25 2014-11-04 Blackberry Limited Method and system for acquisition of an application for installation at a communication device
JP5625477B2 (ja) 2010-05-18 2014-11-19 株式会社リコー ドライバ制御システム、及びドライバ制御方法
JP5983094B2 (ja) * 2012-06-27 2016-08-31 ブラザー工業株式会社 ドライバ管理プログラム、及び、情報処理装置
US8954951B1 (en) * 2013-04-09 2015-02-10 Google Inc. Stop distribution of application updates
US20150244743A1 (en) * 2014-02-21 2015-08-27 Airwatch Llc Risk assessment for managed client devices
US9513847B2 (en) * 2014-03-03 2016-12-06 Ricoh Company, Ltd. Tools for facilitating printer installation
US9811375B2 (en) * 2014-04-30 2017-11-07 Vmware, Inc. Operating system migration while preserving applications, data, and settings
US9286057B2 (en) * 2014-06-11 2016-03-15 International Business Machines Corporation Updating software based on utilized functions
US9880792B2 (en) 2015-03-20 2018-01-30 Ricoh Company, Ltd. Management system, information processing device, and management method
JP2016177704A (ja) 2015-03-20 2016-10-06 株式会社リコー 情報処理装置、情報処理プログラム、情報処理システムおよび画像処理装置
US9891878B2 (en) 2015-03-20 2018-02-13 Ricoh Company, Ltd. Information processing system, information processing apparatus, and computer-readable recording medium
EP3318973B1 (en) * 2015-06-30 2021-08-04 Kyocera Document Solutions Inc. Electronic device
WO2017077907A1 (ja) * 2015-11-02 2017-05-11 株式会社リコー 情報処理装置、通信システム及び情報処理方法
US10310839B2 (en) 2015-11-30 2019-06-04 Ricoh Company, Ltd. Information processing apparatus, control program management system, and control program management method
JP6624987B2 (ja) * 2016-03-23 2019-12-25 キヤノン株式会社 情報処理装置及びプログラム、制御方法
US10901947B2 (en) * 2016-07-28 2021-01-26 Huawei Technologies Co., Ltd. Method for recognizing infrequently-used data and terminal
US10379830B2 (en) * 2016-09-07 2019-08-13 Oracle International Corporation Context-based analytical engine for extending application functionality

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1063451A (ja) * 1996-08-19 1998-03-06 Ricoh Co Ltd ネットワーク印字装置システム
JP2003216378A (ja) * 2001-11-15 2003-07-31 Canon Inc 情報処理装置及び方法及びコンピュータプログラム及びコンピュータ可読記憶媒体
JP2006268643A (ja) * 2005-03-25 2006-10-05 Fuji Xerox Co Ltd プログラム、情報処理装置および印刷システム
JP2013101595A (ja) * 2011-10-14 2013-05-23 Canon Inc ネットワークシステム及びクライアント装置とその方法
JP2014160318A (ja) * 2013-02-19 2014-09-04 Canon Inc 情報処理装置及びその方法
JP2017021647A (ja) * 2015-07-13 2017-01-26 株式会社リコー プログラム、情報処理装置、インストールシステムおよびインストール方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7435994B2 (ja) 2019-05-15 2024-02-21 Necプラットフォームズ株式会社 光伝送装置、光伝送システム、光伝送装置の制御方法及びプログラム

Also Published As

Publication number Publication date
US20180227445A1 (en) 2018-08-09
US10873676B2 (en) 2020-12-22
JP6874405B2 (ja) 2021-05-19

Similar Documents

Publication Publication Date Title
JP6874405B2 (ja) 情報処理装置、プログラム、システム
JP6390708B2 (ja) システムおよび情報処理方法
JP5665437B2 (ja) ネットワーク機器管理システム、ネットワーク機器管理装置、クライアント装置およびその方法
JP4612912B1 (ja) 情報処理装置、情報処理システムの制御方法およびプログラム
US10015326B2 (en) Image forming apparatus, automatic installation method for efficiently installing an image forming apparatus, and storage medium
US20150067671A1 (en) Information processing apparatus, control method, and storage medium
US10809993B2 (en) System, management device, information processing device, control method for management device, control method for information processing device, and computer-readable storage medium
US20150264198A1 (en) Automatic installation system and method, information processing apparatus, and image forming apparatus
US9965299B2 (en) Information processing apparatus, method for controlling the same, and storage medium
JP5487962B2 (ja) 操作抑制システム、画像形成装置、操作抑制情報提供装置、及び操作抑制方法
US9612818B2 (en) Information processing apparatus, program management method for information processing apparatus, and non-transitory computer-readable storage medium
JP6433378B2 (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム
JP4981936B2 (ja) インストーラ及びプリンタドライバのインストール方法
JP5696470B2 (ja) 機器管理装置、機器管理方法、機器管理プログラム、及びそのプログラムを記録した記録媒体
US20180146110A1 (en) Information processing apparatus, control method, and storage medium
JP2007280171A (ja) ドライバ自動インストール装置
JP2008171096A (ja) 更新機能を有する情報処理装置
JP2013025460A (ja) インストールシステム、インストールプログラム、インストールプログラムを記録した記録媒体、及びプログラムのインストール方法
US9063813B2 (en) Apparatus, control method, and storage medium
US20130067452A1 (en) Management server, host device, and application management method
JP2015177254A (ja) 画像形成装置及びその制御方法
JP4957506B2 (ja) 管理プログラム、情報処理装置および情報処理システム
JP2017117232A (ja) インストールを制御するプログラム、情報処理装置およびデバイスドライバーのインストール方法
JP3900160B2 (ja) リカバリデータ提供方法
US11360787B2 (en) Information processing system and control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210304

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210405

R151 Written notification of patent or utility model registration

Ref document number: 6874405

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151