(57)【要約】【課題】埋出力対象のプリンタのプリンタドライバが自装置内に存在しない場合に、自装置のユーザが所望しない無駄な印刷出力を防止することができる情報処理装置、プログラム、情報処理方法および情報処理システムを提供すること。【解決手段】機器から前記機器の接続情報を取得する接続情報取得手段と、前記機器の機器情報を前記機器から取得する機器情報取得手段と、自装置のプリンタアイコンの情報を取得するアイコン情報取得手段と、前記機器から取得した機器情報とプリンタアイコンに紐づいたドライバの対応機種とから該プリンタアイコンの印刷出力先を変更するか否かを判断する判断手段と、前記判断手段によって変更すると判断されたプリンタアイコンの印刷出力先を変更する出力先変更手段と、を備える。【選択図】図２
2019164558.tif 000002
【特許請求の範囲】
【請求項１】
機器から前記機器の接続情報を取得する接続情報取得手段と、
前記機器の機器情報を前記機器から取得する機器情報取得手段と、
自装置のプリンタアイコンの情報を取得するアイコン情報取得手段と、
前記機器から取得した機器情報とプリンタアイコンに紐づいたドライバの対応機種とから該プリンタアイコンの印刷出力先を変更するか否かを判断する判断手段と、
前記判断手段によって変更すると判断されたプリンタアイコンの印刷出力先を変更する出力先変更手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記接続情報取得手段は、前記機器から周辺に発信している機器情報をもとに前記機器の接続情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記接続情報取得手段は、自装置が前記機器に送信した特定の情報をもとに前記機器が自装置にアクセスした結果をアクセス解析して前記機器の接続情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記接続情報取得手段は、近距離無線通信によって、前記機器から前記接続情報を取得し、
前記機器情報取得手段は、前記接続情報取得手段によって取得した接続情報を用いて前記近距離無線通信とは異なる通信によって前記機器に接続することで、当該機器から前記機器情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記出力先変更手段は、前記判断手段によって変更すると判断されたプリンタアイコンの印刷出力先を、前記接続情報取得手段によって取得された前記接続情報に応じた接続先に切り替えることによって前記印刷出力先を変更することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記接続情報取得手段は、前記機器がＴＣＰ／ＩＰ以外の通信プロトコルを用いて自装置に送信した前記機器の接続情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記判断手段は、前記ドライバのｉｎｆファイルに記載された機器情報と前記機器の機器情報とを比較し、一致する場合に前記印刷出力先を変更すると判断することを特徴とする請求項１〜６のいずれか一つに記載の情報処理装置。
【請求項８】
前記判断手段は、前記ドライバの設定ファイルに記載された機器情報と前記機器の機器情報とを比較し、一致する場合に前記印刷出力先を変更すると判断することを特徴とする請求項１〜６のいずれか一つに記載の情報処理装置。
【請求項９】
前記判断手段が前記印刷出力先を変更すると判断した場合に、ユーザに印刷出力先を変更するか否かの確認を行う確認手段を備えたことを特徴とする請求項１〜８のいずれか一つに記載の情報処理装置。
【請求項１０】
前記出力先変更手段が前記プリンタアイコンに紐づいた印刷出力先を切り替える場合に、前記印刷出力先を切り替える前のプリンタアイコンと印刷出力先との情報を保持し、前記印刷出力先を切り替えた後に、元の印刷出力先に切り返る復旧手段を備えたことを特徴とする請求項１〜９のいずれか一つに記載の情報処理装置。
【請求項１１】
前記判断手段は、前記機器の認証設定が有効な場合、かつ、自装置が前記機器と一致する機器情報をもつドライバが存在する場合に、前記ドライバの認証設定が有効になっていることを確認した後、前記印刷出力先を切り替えるか否かを判断することを特徴と
する請求項１〜１０のいずれか一つに記載の情報処理装置。
【請求項１２】
前記プリンタが発信する電波の電波強度を測定する測定手段を備えたことを特徴とする請求項１〜１１のいずれか一つに記載の情報処理装置。
【請求項１３】
前記印刷出力先を切り替えた場合、デフォルトで利用するプリンタアイコンに変更することを特徴とする請求項１〜１２のいずれか一つに記載の情報処理装置。
【請求項１４】
プログラムを、
機器から前記機器の接続情報を取得する接続情報取得手段と、
前記機器の機器情報を前記機器から取得する機器情報取得手段と、
自装置のプリンタアイコンの情報を取得するアイコン情報取得手段と、
前記機器から取得した機器情報とプリンタアイコンに紐づいたドライバの対応機種とから該プリンタアイコンの印刷出力先を変更するか否かを判断する判断手段と、
前記判断手段によって変更すると判断されたプリンタアイコンの印刷出力先を変更する出力先変更手段と、
して機能させるためのプログラム。
【請求項１５】
機器から前記機器の接続情報を取得する接続情報取得工程と、
前記機器の機器情報を前記機器から取得する機器情報取得工程と、
自装置のプリンタアイコンの情報を取得するアイコン情報取得工程と、
前記機器から取得した機器情報とプリンタアイコンに紐づいたドライバの対応機種とから該プリンタアイコンの印刷出力先を変更するか否かを判断する判断工程と、
前記判断工程によって変更すると判断されたプリンタアイコンの印刷出力先を変更する出力先変更工程と、
を含んだことを特徴とする情報処理方法。
【請求項１６】
プログラムを、
機器から前記機器の接続情報を取得する接続情報取得手段と、
前記機器の機器情報を前記機器から取得する機器情報取得手段と、
自装置のプリンタアイコンの情報を取得するアイコン情報取得手段と、
前記機器から取得した機器情報とプリンタアイコンに紐づいたドライバの対応機種とから該プリンタアイコンの印刷出力先を変更するか否かを判断する判断手段と、
前記判断手段によって変更すると判断されたプリンタアイコンの印刷出力先を変更する出力先変更手段と、
して機能させるためのプログラムと、
前記プログラムによって前記印刷出力先となって画像処理を行うプリンタと、
を備えたことを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、プログラム、情報処理方法および情報処理システムに関する。
【背景技術】
【０００２】
スマートデバイスでは、スマートデバイスの近くのプリンタを検知し、この検知したプリンタと接続して印刷することができる。
【０００３】
特許文献１には、プリンタドライバに予め設定されていた出力先を、ネットワークに接続されたプリンタに応じて、出力先の変更を行うものが記載されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、外出先等でユーザが持ち運んだＰＣ（パーソナルコンピュータ）から印刷を行うために、予めインストールされているプリンタドライバの出力先を、出力対象のプリンタに変更することで印刷を行う場合、当該出力対象のプリンタが、ＰＣに予めインストールされているプリンタドライバに対応できない場合、印刷できなかったり、ユーザが望んだ印刷結果にならないことがあるという問題があった。
【０００５】
本発明は、上記に鑑みてなされたものであって、出力対象のプリンタのプリンタドライバが自装置内に存在しない場合に、自装置のユーザが所望しない無駄な印刷出力を防止することができる情報処理装置、プログラム、情報処理方法および情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、機器から前記機器の接続情報を取得する接続情報取得手段と、前記機器の機器情報を前記機器から取得する機器情報取得手段と、自装置のプリンタアイコンの情報を取得するアイコン情報取得手段と、前記機器から取得した機器情報とプリンタアイコンに紐づいたドライバの対応機種とから該プリンタアイコンの印刷出力先を変更するか否かを判断する判断手段と、前記判断手段によって変更すると判断されたプリンタアイコンの印刷出力先を変更する出力先変更手段と、を備えたことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、出力対象のプリンタのプリンタドライバが自装置内に存在しない場合に、自装置のユーザが所望しない無駄な印刷出力を防止することができる、という効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施の形態にかかる情報処理システムの装置構成の例を示す図である。
【図２】図２は、実施の形態の情報処理システムの機能構成を示すブロック図である。
【図３】図３は、プリンタのＩＰアドレスを取得するＩＰアドレス取得処理手順を示すシーケンス図である。
【図４】図４は、プリンタのＩＰアドレスの取得後におけるポート切替処理手順を示すシーケンス図である。
【図５】図５は、変形例１によるプリンタのＩＰアドレスを取得するＩＰアドレス取得処理手順を示すシーケンス図である。
【図６】図６は、変形例２によるプリンタのＩＰアドレスを取得するＩＰアドレス取得処理手順を示すシーケンス図である。
【図７】図７は、ポート切替を行う前に、ユーザの確認を取るためのＧＵＩ画面の一例を示す図である。
【図８】図８は、変形例３によるポート切替の確認処理を含むＩＰアドレス取得処理手順を示すシーケンス図である。
【図９】図９は、ポート切替問合せのＧＵＩ画面の一例を示す図である。
【図１０】図１０は、複数のドライバが候補として通知された場合におけるポート切替問合せのＧＵＩ画面の一例を示す図である。
【図１１】図１１は、プリンタに認証設定が有効か否かの確認処理が含まれた変形例４のポート切替処理手順を示すシーケンス図である。
【図１２】図１２は、プリンタとドライバとの間における認証設定の関係を示す図である。
【図１３】図１３は、変形例５の情報処理システムの機能構成を示すブロック図である。
【図１４】図１４は、変形例５によるポート切替処理手順を示すシーケンス図である。
【図１５】図１５は、ポートおよびデフォルトプリンタアイコンの設定を戻す前に、ユーザの確認を得るＧＵＩ画面の一例を示す図である。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、情報処理装置、プログラム、情報処理方法および情報処理システムの実施の形態を詳細に説明する。
【００１０】
＜情報処理システムの装置構成＞
はじめに、本実施の形態の情報処理システムの装置構成の例について説明する。
【００１１】
図１は、実施の形態にかかる情報処理システムの装置構成の例を示す図である。図１に示すように、情報処理システムは、情報処理装置としてのＰＣ（パーソナルコンピュータ）１０と、機器としての複数のプリンタ２０とがネットワークＮに接続される。ＰＣ１０及びプリンタ２０のネットワーク接続は、有線でも無線でもよい。なお、ＰＣ１０が移動可能な場合、ＰＣ１０とプリンタ２０との接続は無線接続が一般的であるので、本実施の形態では無線接続を前提として説明する。また、実施の形態では、ＰＣ１０のＯＳは、例えばWindows（登録商標）で説明する。
【００１２】
なお、ＰＣ１０は、１つのドライバで、プリンタ「Ａ」に出力するポート（印刷出力先）に紐付られたプリンタアイコンと、プリンタ「Ｂ」に出力するポート（印刷出力先）に紐付られたプリンタアイコンとを作成することができる。プリンタアイコンのそれぞれは、必ず１つのドライバと１つのポート（接続先のプリンタ：印刷出力先）とが紐付られている。
【００１３】
＜情報処理システムの機能構成＞
図２は、実施の形態の情報処理システムの機能構成を示すブロック図である。図２に示すように、プリンタ２０は、送受信部２１、機器情報保持部２２、無線部２３、Wifi/Wi-Fi Direct部２４、及びBＬＥ部２５を有する。
【００１４】
送受信部２１は、外部のシステムとネットワークを介してデータの送受信を行う。機器情報保持部２２は、ＰｎＰ(Plug and Play)名の機器識別子やブランド名を保持しており、外部からの要求に応じてそれらの情報（機器情報）を返す。無線部２３は、BLEやWi-Fi Directで何の情報を発信するかを管理する。Wifi/Wi-Fi Direct部２４は、Wi-Fi Directのホスト機能を持ち、ＰＣ１０からプリンタ２０に直接接続できる。BＬＥ部２５は、ＢＬＥの電波を管理し、ＢＬＥのフォーマットに則って、電波強度を周囲に通知する。
【００１５】
ＰＣ１０は、送受信部１１、距離検知部１２、ドライバ情報取得部１３、ポート切替判断部（判断手段）１４、及びポート切替部（出力先変更手段）１５を有する。
【００１６】
送受信部１１は、外部のシステムとネットワークを介してデータの送受信を行う。送受信部１１は、プリンタ２０からＰｎＰ名等を取得する役割をもつ。距離検知部１２は、プリンタ２０のＢＬＥ部２５から発信させられるBluetooth（登録商標）の電波強度を取得してプリンタ２０との距離を測定する。ドライバ情報取得部１３は、PC１０にインストールされているドライバ１７のドライバ名、ドライバ１７に対応したＰｎＰ名、ドライバ１７の設定情報を取得する。ポート切替判断部１４は、プリンタ２０の情報とドライバ１７の情報とから、ドライバ１７に紐付けられているポートを切り替えるか否かを判断する。ポート切替部１５は、ポート切替判断部１４が切り替えると判断した場合に、実際にポート切替を行う。ポートを切り替えられたプリンタアイコンは、デフォルトプリンタアイコンに変更される。
【００１７】
＜プリンタのＩＰアドレス取得処理＞
図３は、プリンタ２０のＩＰアドレス（接続情報）を取得するＩＰアドレス取得処理手順を示すシーケンス図である。図３に示すように、まず、ＢＬＥ部２５は、ＢＬＥアドバタイズで常に周囲に情報を発信する（ステップＳ１０１）。このＢＬＥアドバタイズでは、プリンタ２０が有するWi-Fi DirectのＳＳＩＤキーを発信する。距離検知部１２は、ＢＬＥの情報の１つである電波強度（ＲＳＳＩ）を取得し、ＰＣ１０とプリンタ２０との距離を検知する処理を行う（ステップＳ１０２）。距離検知部１２は、電波強度が閾値を超えたらプリンタ２０は近くにあると判断する（ステップＳ１０３）。
【００１８】
ＩＰ取得部１６は、プリンタ２０のＩＰアドレスを取得する処理を開始する（ステップＳ１０４）。ＩＰ取得部１６は、ＢＬＥアドバタイズで発信しているＳＳＩＤキーを取得する（ステップＳ１０５）。その後、取得したＳＳＩＤキーのWi-Fi Directに接続処理を行う（ステップＳ１０６、Ｓ１０７）。さらに、Wi-Fi Direct部２４は、Wi-Fi Directの接続完了処理を行う（ステップＳ１０８，Ｓ１０９）。そして、ＩＰ取得部１６は、接続したＩＰアドレスを返す（ステップＳ１１０）。
【００１９】
具体的には、距離検知部１２は、WindowsのBluetoothEAadvertisementwatcherクラスを使用する。電波強度は、BluetoothEAadvertisementwatcherクラスのInRangeThreshoholdinDBmとOutOfRangeThreshoholdDBmとに、それぞれ−６０、−６５を設定しおく。この電波強度が、ある閾値の範囲で、プリンタ２０がPC１０に近づいていると判断し、ＯＳからの呼出しを受けて、BluetoothEAadvertisementwatcherクラスのReceivedに格納したメソッドが呼ばれる。呼ばれたメソッドの引数に、ＢＬＥアドバタイズのＳＳＩＤの情報が含まれるため、このＳＳＩＤを取得し、WiFiDirectDeviceクラスを利用してWi-Fi Directに接続する。
【００２０】
＜ポート切替処理＞
図４は、プリンタ２０のＩＰアドレスの取得後におけるポート切替処理手順を示すシーケンス図である。図４に示すように、ポート切替部１５は、プリンタ２０のＩＰアドレスが取得されると、ＳＮＭＰプロトコルを利用して機器情報保持部２２からブランドとＰｎＰを取得する処理を行う（ステップＳ２０１〜Ｓ２０６）。なお、具体的には、例えばプリンタ２０のブランドは「ＲＩＣＯＨ」，ＰｎＰは「ＭＰ  Ｃ００１」である。
【００２１】
その後、ポート切替部１５は、取得したブランドとＰｎＰに対応したドライバがＰＣ１０にインストールされているかの確認処理を行う（ステップＳ２０７）。このため、ドライバ情報取得部１３は、ＰＣ１０に入っているドライバを列挙する（ステップＳ２０８）。具体的には、EnumPrinters()を呼び出し、ＰＣ１０にインストールされているプリンタアイコン情報が含まれる構造体PRINTER_INFO_2を取得して、ドライバを列挙する。この構造体PRINTER_INFO_2は、プリンタアイコンの情報が含まれたデータであり、具体的にはプリンタアイコン名、ポート名、プリンタアイコンの共有者、コメント設定など、アイコンに紐付けられた情報が詰まっている。
【００２２】
その後、ドライバ情報取得部１３は、ブランドとＰｎＰに対応したドライバを識別する（ステップＳ２０９）。ブランドについては、プリンタ２０のブランドとＰＣ１０にインストールされているドライバのブランドで合致するものがあるかを確認する。処理としては、構造体PRINTER_INFO_2にはプリンタアイコン名であるpPrinterNameが含まれているので、そのアイコン名をもとにOpenPrinter()関数を呼び出し、プリンタハンドルを取得する。このプリンタハンドルを利用して、GetPrinterDriverを呼び出すと、DRIVER_INFO_８を取得する。構造体DRIVER_INFO_８というのは、ドライバの情報が含まれたデータであり、具体的にはドライバ名、ドライバのインストールパス、ヘルプファイルのパス、カラープロファイルのパスなどのドライバに紐付けられた情報が詰まっている。そのDRIVER_INFO_８にはpszMfgNameという値があり、infに記載されたブランド情報が格納されている。そのブランド名と、プリンタ２０から取得したブランドとが同じか否かを比較する。この比較は識別結果としてポート切替判断部１４に通知される（ステップＳ２１０）。
【００２３】
一方、ドライバのブランド名を調べる他の方法としては、レジストリのHKLM\SYSTEM\CurrentControlSet\Control\Print\Printer\<アイコン名>\PnPDataの下に、Manufactureというキーの値があり、その値を読み込めば、アイコンに紐づいているブランド名を取得することができる。
【００２４】
ＰｎＰについては、例えば、構造体DRIVER_INFO_８のpDriverPathでドライバのファイルがあるパスが分かるので、そのパスからinfを取得して、プリンタのＰｎＰと一致するものがあるか比較する。この比較は識別結果としてポート切替判断部１４に通知される（ステップＳ２１０）。
【００２５】
なお、上記では、infを例に説明したが、infとは別にサポートする機種を記載した設定ファイルを別に持つことも可能である。このメリットとして、機種共通のドライバでPlig &Playをサポートはしたくないが、切替機能はサポートしたい場合、ドライバのinfとは別の設定ファイルに記載することで実現できる。
【００２６】
ポート切替判断部１４は、ブランドとＰｎＰに対応したドライバの識別結果を受けると、対応しているドライバがあるか否かを判断する（ステップＳ２１１）。そして、対応しているドライバがある場合、識別したドライバのポートを、取得したＩＰアドレスのポートに切り替える処理をポート切替部１５に依頼する（ステップＳ２１２）。なお、対応するドライバがない場合、本処理を終了する。
【００２７】
なお、ステップＳ２０９で、ブランドに対応するドライバがない場合、識別したドライバをポート切替判断部１４に通知しなくてもよく、その場合、その後のＰｎＰに対応するドライバの識別処理も不要であり、ポート切替判断部１４の判断処理も不要となり、本処理を終了してもよい。
【００２８】
その後、ポート切替部１５は、ポートを、取得したＩＰアドレスに切り替える（ステップＳ２１３）。ポート切替部１５は、ＯＳのＡＰＩを利用して、ポートの作成及び切替を行う。デフォルトプリンタアイコンに変更する（ステップＳ２１４）。
【００２９】
WindowsのWMIオブジェクトを利用する場合、まず、TCP/IPポートを作成することをプログラムに明示するために、ManagementClassをWin32_TCPIPPrinterPortでCreateInstance()を呼び出してオブジェクトを生成する。作成したポートに切り替えるために、作成したオブジェクトに対してHostAddressをプリンタのIPアドレス、PortNumberを9100にしてポートを設定し、Put()を呼び出す。なお、この処理は一例であり、XcvData()関数を用いてもポートを切り替えることができる。
【００３０】
その後、ドライバをデフォルトプリンタに変更する（ステップＳ２１４）。具体的には、WindowsのSetPrinter関数を用いて、ＰｎＰが一致するドライバをデフォルトプリンタに変更する。
【００３１】
このように本実施の形態によれば、出力対象のプリンタのプリンタドライバが自装置内に存在しない場合に、プリンタとプリンタドライバとの組み合わせが適切なものか事前に判別しているので、自装置のユーザが所望しない無駄な印刷出力を防止することができる。
【００３２】
（変形例１）
本変形例１は、実施の形態におけるプリンタのＩＰアドレス取得処理が異なる。本変形例１では、ＰＣ１０からプリンタ２０にBluetooth（登録商標）を用いて決められた手段でアクセスし、プリンタ２０側からＰＣ１０にネットワーク経由でアクセスさせ、ＩＰアドレスを用いたアクセスをアクセス解析してＩＰアドレスを取得するものである。その他の構成は実施の形態と同じである。
【００３３】
図５は、変形例１によるプリンタ２０のＩＰアドレスを取得するＩＰアドレス取得処理手順を示すシーケンス図である。図５に示すように、まず、プリンタ２０はBLEアドバタイズで常に周囲に電波を発信する（ステップＳ３０１）。
【００３４】
ＰＣ１０がプリンタ２０に近づいたとき、距離検知部１２はWindowsのBluetoothLEAdvertisementWatcherクラスを用いて発信しているBLEの情報を受信する（ステップＳ３０２）。距離検知部１２は、電波の強度（ＲＳＳＩ）が閾値を超えたらＰＣ１０が近づいたと判断する（ステップＳ３０３）。例えば、BluetoothLEAdvertisementWatcherクラスのInRangeThresholdInDBmとOutOfRangeThresholdInDBmにそれぞれ-60,-65を設定しておき、その強度がある閾値の範囲で、プリンタ２０がＰＣ１０に十分近づいていると判断し、ＯＳから呼び出しを受けて、BluetoothLEAdvertisementWatcherクラスのReceivedに格納したメソッドが呼ばれる。
【００３５】
その後、距離検知部１２は、ＩＰ取得部１６にプリンタ２０のＩＰアドレスを取得する依頼を行う（ステップＳ３０４）。
【００３６】
ＩＰ取得部１６は、プリンタ２０のBluetooth（登録商標）に対して、決められたキーと自分のＰＣ１０のＩＰアドレスを送信する（ステップＳ３０５）。
【００３７】
DeviceInformation.FindAllAsyncメソッドで、目的の BLE デバイスを取得する。GattDeviceService.FromIdAsyncメソッドで、GATTのサービスを取得する。取得したサービスのGetCharacteristicsメソッドを使用して、GattCharacteristic を取得する。ValueChangedイベント ハンドラを設定してから、WriteClientCharacteristicConfigurationDescriptorAsync メソッドで通知を有効にする。WriteValueAsyncメソッドでデータを送信すれば、ValueChanged イベントハンドラが呼び出されて結果を取得することができる。
【００３８】
その後、プリンタ２０の無線部２３は、BLEで決められたキーを受信したら、一緒に送信されたＩＰアドレスでＰＣ１０にアクセスする（ステップＳ３０６）。
【００３９】
そして、ＩＰ取得部１６は、プリンタ２０からのアクセスがあったらアクセス解析を行い、どこのＩＰアドレスから接続されたかを解析して、解析結果をプリンタ２０のＩＰアドレスとして認識する（ステップＳ３０７）。
【００４０】
このようにして、プリンタ２０のＩＰアドレスが取得され、その後のポート切替処理は実施の形態と同じである。
【００４１】
（変形例２）
本変形例２は、実施の形態におけるプリンタのＩＰアドレス取得処理が異なる。本変形例２では、BLEアドバタイズでプリンタ２０のＩＰアドレスを直接配信するものである。
その他の構成は実施の形態と同じである。
【００４２】
図６は、変形例２によるプリンタ２０のＩＰアドレスを取得するＩＰアドレス取得処理手順を示すシーケンス図である。図６に示すように、まず、プリンタ２０は。プリンタ２０自身のＩＰアドレスを、BLEアドバタイズで配信する（ステップＳ４０１）。
【００４３】
その後、実施の形態と同様に、プリンタ２０との距離を測定し（ステップＳ４０２）、プリンタ２０がＰＣ１０に近づいてきたら（ステップＳ４０３）、BluetoothLEAdvertisementWatcherクラスのReceivedに格納したメソッドを利用して、プリンタから配信されたＩＰアドレスを取得する（ステップＳ４０４）。なお、ＩＰ取得部１６は、BLEアドバタイズで発信しているＳＳＩＤを取得し（ステップＳ４０５）、接続したＩＰアドレスをプリンタ側に返す処理を行う（ステップＳ４０６）。
【００４４】
本変形例２は、実施の形態がプリンタ２０ー側に無線ＬＡＮを設けることが必須であったが、本変形例２は、有線ＬＡＮのみがプリンタ２０に設けられている場合でもＩＰアドレスを取得することができる利点がある。
【００４５】
なお、BLEアドバタイズで常時配信しており、プログラムで誰でも読み込めてしまうので、簡単に取得できないようにしたい場合は、配信する情報を暗号化するといった事が必要である。
【００４６】
（変形例３）
本変形例３は、図７に示すように、実施の形態におけるＰＣ１０に表示部１８を追加した構成である。表示部１８は、ＧＵＩ（グラフィカルユーザインタフェース）を表示する機能を有する。その他の構成は実施の形態と同じである。
【００４７】
変形例３は、実施の形態においてポート切替を行う前に、ユーザインタフェースを表示し、ユーザの確認を取った後にポート切替を行うようにしている。
【００４８】
図８は、変形例３によるポート切替の確認処理を含むＩＰアドレス取得処理手順を示すシーケンス図である。図８におけるステップＳ５０１〜Ｓ５１０，Ｓ５１３〜Ｓ５１５の処理は、図４に示したステップＳ２０１〜Ｓ２１０，Ｓ２１２〜Ｓ２１４に対応する。
【００４９】
図８に示すように、ステップＳ５１０で、識別したドライバの通知を受けると、ポート切替判断部１４は、ポート切替を行うか否かの問合せのＧＵＩを表示部１８に表示させる（ステップＳ５１１）。その後、ポート切替判断部１４は、表示部１８からＧＵＩに対するユーザ入力を受け（ステップＳ５１２）、その結果をもとにポート切替を指示する（ステップＳ５１３）。
【００５０】
図９は、ポート切替問合せのＧＵＩ画面の一例を示す図である。図９において、表示部１８の表示画面上に「近くの機器に出力できます。近くの機器に出力するようにドライバの設定を変更しますか？」とする案内表示がされ、「Ｙｅｓ」を選択するとポート切替が実行され、「Ｎｏ」を選択するとポート切替が実行されない。
【００５１】
なお、図９では、１つのアイコンのみ対応する例を示したが、対応するドライバで複数のアイコンを使用したり、機種ドライバと機種共通ドライバとが同一ＰＣ１０にインストールされている場合がる。この場合でも、ユーザに選択肢を提供することができる。
【００５２】
例えば、図１０に示すように、複数のドライバが候補として通知された場合、図１０のＧＵＩを表示し、ユーザが任意の１つを選択できるようにする。図１０では、３つのドライバが表示され、任意の１つのドライバを選択した後、「選択したアイコンを利用する」
を選択することによって、このドライバに対応したポート切替が実行される。
【００５３】
（変形例４）
本変形例４は、プリンタ２０に認証設定がされている場合、切り替えるドライバが認証設定しているか否かを確認するようにしている。
【００５４】
上記の実施の形態及び変形例では、プリンタ２０に近づいたら誰でも印刷できてしまう。例えば、ゲストでお客様が来た時に、プリンタ２０に近づいて誰も印刷できしてしまう。このゲストによる無断印刷は、ホスト側に課金されてしまうという問題が発生する。そこで、プリンタの認証機能を有効にして、認証されたユーザだけが印刷できるように設定する。
【００５５】
この場合、ドライバも認証機能が有効になっていないと、出力先を切り替えても印刷できない。したがって、切り替える前にドライバの認証機能が有効になっているか確認してから、切り替えるようにしている。
【００５６】
図１１は、プリンタに認証設定が有効か否かの確認処理が含まれた変形例４のポート切替処理手順を示すシーケンス図である。図１１に示すシーケンスが図４に示したシーケンスと異なる点は、まず、ステップＳ２０７に対応するステップＳ６０７において、ＰｎＰとブランド情報に加えて、認証機能が有効かドライバ情報取得部１３で取得する。また、ステップＳ６１１として、識別したドライバが、認証機能が有効かを確認する処理が加わっている。その他の処理は、実施の形態と同じである。
【００５７】
ドライバによって設定方法が違うが、Document PropertyかDevice Propertyのどちらかで設定するので、以下の方法で取得することができる。
【００５８】
（ａ）Devmodeで認証設定を取得する方法
Windows APIのDocumentProperties()を呼び出すことにより、現在の設定をDEVMODEという構造体形式で取得できる。
（ｂ）PrintTicketで認証設定を取得する方法
PrintTicketのAPI(PTGetPrintCapabilities、ConvertDevModeToPrintTicketThunk2)を使用して、現在の設定をPrint Ticket/Print CapabilityというXML形式の形で取得することができる。
（ｃ）直接、認証設定のデータを見る方法
レジストリのHKLM\SYSTEM\CurrentControlSet\Control\Print\Printers\<アイコン名>\PrinterDriverDataの下に各ドライバの設定値が格納されているので、それを取得する。
【００５９】
PrintTicketで認証設定を取得する場合は、ＸＭＬで取得できるが、他の方法は独自形式になるのでドライバと保存するフォーマットを整合しなくてはならないため、PrintTicketで取得する方法が好ましい。
【００６０】
ここで、ポート切替判断部１４は、ドライバの認証設定を取得して有効（ＯＮ）になっているか確認し、有効の場合は、図１２に示した関係でポートを切り替える。すなわち、すなわち、プリンタ２０（本体）の認証設定が有効（ＯＮ）になっている場合に、ドライバの認証設定が無効（ＯＦＦ）になっているときは、ポート切替を行わない。それ以外の組み合わせのときは、ポート切替を行う。
【００６１】
（変形例５）
本変形例５は、ユーザがプリンタ２０から離れた場合に、出力先を戻す処理を行うものである。このため、図１３に示すように、図２に示した実施の形態の構成に、ポート情報保存部１９を新たに設ける。ポート情報保存部１９は、ポートを切り替える前に切り替えるアイコンのポートを保存しておく。
【００６２】
図１４は、変形例５によるポート切替処理手順を示すシーケンス図である。図１４のシーケンスは、ポートを切り替える前に、「デフォルトプリンタアイコン名」「ドライバのアイコン名」と「ポート名」を紐づけてポート情報保存部１９に保存する（ステップＳ７１２）。
【００６３】
これは、プリンタに近づいたときに、デフォルトプリンタと対応したドライバのポートを変更してしまうため、プリンタから離れた時に元に戻すために、変更する前の情報を保持する。
【００６４】
例えば、次のように保持される。
デフォルトプリンタアイコン名：ＭＰ  Ｘ９０００
ポートを変更するアイコン名  ：ＭＰ  Ｃ１００
ポート名                    ：ＩＰ＿１００．２００．１００．２００
【００６５】
その後、ユーザがプリンタ２０から離れる場合、距離検知部１２が、WindowsのBluetoothLEAdvertisementWatcherクラスを用いて発信しているBLEの情報を受信して、電波の強度（ＲＳＳＩ）により、プリンタ２０とＰＣ１０との距離を検知する（ステップＳ７１５）。その後、ポート切替判断部１４は、プリンタ２０とＰＣ１０との距離が離れたことの通知を受ける（ステップＳ７１６）と、ポートを元に戻すように、ポート切替部１５に依頼する（ステップＳ７１７）。
【００６６】
ポート切替部１５は、ポート情報保存部１９で保存していたポート情報を取得し（ステップＳ７１８）、ポートを切り替える（ステップＳ７１９）。そして、デフォルトプリンタを切り替え（ステップＳ７２０）、最後に、ポート情報保存部１９に保存していたポート情報を削除する（ステップＳ７２１）。
【００６７】
なお、図１５に示すＧＵＩのように、ポートおよびデフォルトプリンタアイコンの設定を戻す前に、ユーザの確認を得るＧＵＩ画面を表示して、ユーザが設定を変更すると明示した時のみ、設定を戻すようにしてもよい。
【００６８】
図１５に示したＧＵＩ画面では、「プリンタから離れました。今まで使用していたプリンタに出力できるようにドライバの設定を変更しますか？」とする案内画面が表示され、「Ｙｅｓ」を選択すると、ポートの設定が戻され、「Ｎｏ」を選択すると、現在のポートの設定が維持される。
【００６９】
以上、本発明に係る実施の形態及び変形例について説明したが、本発明は、上述の実施の形態及び変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上述の実施の形態及び変形例に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施の形態及び変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
【００７０】
また、上述した実施の形態及び変形例の情報処理装置１０で実行されるソフトウェア（プログラム）は、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）、ＵＳＢ（Universal  Serial  Bus）などのコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよいし、インターネットなどのネットワーク経由で提供または配布するように構成してもよい。また、各種プログラムを、ＲＯＭなどに予め組み込んで提供するように構成してもよい。
【符号の説明】
【００７１】
１０  ＰＣ
１１，２１  送受信部
１２  距離検知部
１３  ドライバ情報取得部
１４  ポート切替判断部
１５  ポート切替部
１６  ＩＰ取得部
１７  ドライバ
１８  表示部
１９  ポート情報保存部
２０  プリンタ
２２  機器情報保持部
２３  無線部
２４  Ｗｉｆｉ／Ｗｉ−ＦｉＤｉｒｅｃｔ部
２５  ＢＬＥ部
【先行技術文献】
【特許文献】
【００７２】
【特許文献１】特開２０１４−２１１８９４号公報
【図１】
2019164558.tif 000003
【図２】
2019164558.tif 000004
【図３】
2019164558.tif 000005
【図４】
2019164558.tif 000006
【図５】
2019164558.tif 000007
【図６】
2019164558.tif 000008
【図７】
2019164558.tif 000009
【図８】
2019164558.tif 000010
【図９】
2019164558.tif 000011
【図１０】
2019164558.tif 000012
【図１１】
2019164558.tif 000013
【図１２】
2019164558.tif 000014
【図１３】
2019164558.tif 000015
【図１４】
2019164558.tif 000016
【図１５】
2019164558.tif 000017