(57)【要約】【課題】ドライバー本体のバージョンが、ドライバーＵＩのバージョンと異なる場合であっても、不要となったドライバーＵＩを削除することができる情報処理装置を提供する。【解決手段】情報処理装置は、ユーザーが選択したプリンターのプリンタードライバーの機能を実行するドライバー本体をアンインストールする第１のアンインストール手段と、ＵＩを実行するアプリケーションを含むＵＩ実行関連ファイルとＵＩと紐づいた前記ドライバー本体とのドライバー拡張関連付け定義をアンインストールする第２のアンインストール手段と、アンインストールしたドライバー本体と関連するＵＩをアンインストールするためにＯＳに登録されている全てのバージョンの第２のアンインストール手段を選択する選択手段とを備える。【選択図】図１８
2019175031.tif 000002
【特許請求の範囲】
【請求項１】
ユーザーが選択したプリンターのプリンタードライバーの機能を実行するドライバー本体をアンインストールする第１のアンインストール手段と、
ＵＩを実行するアプリケーションを含むＵＩ実行関連ファイルと前記ＵＩと紐づいた前記ドライバー本体とのドライバー拡張関連付け定義をアンインストールする第２のアンインストール手段と、
前記第１のアンインストール手段によりアンインストールしたドライバー本体と関連する前記ＵＩをアンインストールするためにＯＳに登録されている全てのバージョンの前記第２のアンインストール手段を選択する選択手段と
を備える
ことを特徴とする情報処理装置。
【請求項２】
前記選択手段は、前記ＯＳに登録されている全てのバージョンの前記第２のアンインストール手段から任意の第２のアンインストール手段を選択し、
前記任意の第２のアンインストール手段は、前記第１のアンインストール手段によりアンインストールしたドライバー本体と関連する全てのバージョンの前記ＵＩをアンインストールする
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記選択手段は、前記ユーザーが選択したプリンターのドライバー本体と関連する前記ＵＩをアンインストールするための第２のアンインストール手段のバージョンを記憶し、前記第１のアンインストール手段による前記ドライバー本体のアンインストールした後に、前記記憶したバージョンの第２のアンインストール手段を選択する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記第２のアンインストール手段は、前記ユーザーが前記ドライバー本体の全てをアンインストールするクリーンアップ処理を選択した場合に、前記ドライバー本体と関連する全てのＵＩを強制的にアンインストールする
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記選択手段により選択された前記第２のアンインストール手段によるアンインストールが実行された後に前記第１及び第２のアンインストール手段を前記ＯＳの登録から削除する削除手段
をさらに備える
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記削除手段は、前記第２のアンインストール手段を削除した後に、前記第１のアンインストール手段を削除する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記選択手段により選択された前記第２のアンインストール手段のバージョンと一致するバージョンのＵＩを使用しているドライバー本体が無い場合、前記第２のアンインストール手段によりアンインストールが実行された後、前記削除手段により前記第２のアンインストール手段が削除される
ことを特徴とする請求項５または６に記載の情報処理装置。
【請求項８】
ユーザーが選択したプリンターのプリンタードライバーの機能を実行するドライバー本体を、第１のアンインストール手段によりアンインストールする第１のアンインストール工程と、
前記アンインストールしたドライバー本体と関連するＵＩをアンインストールするためにＯＳに登録されている全てのバージョンの第２のアンインストール手段を選択する選択工程と、
前記ＵＩを実行するアプリケーションを含むＵＩ実行関連ファイルと前記ＵＩと紐づいた前記ドライバー本体とのドライバー拡張関連付け定義を、前記選択工程で選択された第２のアンインストール手段によりアンインストールする第２のアンインストール工程と、
を有する
ことを特徴とする情報処理装置の制御方法。
【請求項９】
請求項１乃至７のいずれか１項に記載の装置の各手段としてコンピューターを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法及びプログラムに関し、特にプリンタードライバーのアンインストール処理に関する。
【背景技術】
【０００２】
プリンタードライバーは、クライアントコンピュータにインストールされ、対応するプリンターへの印刷設定や印刷要求に応じたレンダリング処理などを行うモジュールである。ところで、プリンタードライバーの形態には、ドライバーの本体とドライバーの設定用ユーザーインターフェース（以下、ドライバーＵＩ）が分離した構成をとるドライバー形態が存在する。ドライバーの本体とドライバーＵＩが分離した構成とは、ドライバーパッケージがドライバー本体とドライバーＵＩに分離しており、それぞれ別に情報処理装置に導入することが可能である形態のことを指す。また、ここでのドライバー本体とはドライバーが担う中心的な機能を持つ部分であり、具体的にはプリンターであるなら印刷処理、ファクシミリ（ＦＡＸ）であればＦＡＸの送信処理が該当する。次に、ドライバーＵＩとはドライバー本体に対して行う詳細な設定画面を表示するプログラムのことを指し、ドライバーＵＩが未導入の場合はオペレーティングシステム（ＯＳ）が標準的に持っているＯＳ標準ＵＩが起動する。
【０００３】
この際、ドライバー本体はＯＳのシステム部分に格納され、原則としてＯＳが管理を行う事に対し、ドライバーＵＩは別途、ＯＳの関与しない通常のプログラムとしてインストールが行われる。このため、ドライバー本体からドライバーＵＩにある設定画面を開くためには、ドライバー本体に対してドライバーＵＩのインストール情報をシステムに登録する必要がある。また、ドライバー本体は、ドライバーのインストーラーがＯＳへのインストールを担い、ドライバーＵＩは、ドライバーＵＩインストーラーが担うような構成を取ることが可能である。このような構成の場合、ドライバーのインストーラーは、ドライバー本体をＯＳに登録すると共に、ドライバー本体のドライバーアンインストーラーを登録する。ドライバーアンインストーラーは、ＯＳに登録される全てのドライバー本体を管理する。これに対して、ドライバーＵＩインストーラーは、自身のインストールしたバージョンのドライバーＵＩを所定の場所に配置する。そして、インストールしたバージョンのドライバーＵＩをアンインストールするドライバーＵＩアンインストーラーの機能をＯＳに登録する。削除したいバージョンのドライバーＵＩを削除するためには、そのバージョンに対応するドライバーＵＩアンインストーラーを呼ぶ管理手法が必要となる。特許文献１では、周辺機器のドライバーがインストールされているか、いないかによって、ＵＩを切り替え、インストールされていない場合には、インストール処理を、インストールされている場合には、アンインストール処理を実行する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５５７８５２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、別々の機能を持つ処理の２つの処理を選択して切り替え呼ぶ管理手法が紹介されているが、同じ機能を持つ複数のバージョンに対応する処理があった場合の管理手法については、述べられていない。例えば、ある機種のドライバーがインストールされると、ドライバー本体、ドライバーＵＩ、ドライバーアンインストーラー、ドライバーＵＩアンインストーラーは、同じバージョンのものがインストールされる。そして、機種の異なる、新しいバージョンのドライバーがインストールされると、新しいドライバー本体、ドライバーＵＩ、ドライバーＵＩアンインストーラーがインストールされる。それと共にドライバーアンインストーラーのみは、新しいバージョンに置き換わり、登録される。
【０００６】
このとき最初のインストール時点では、ドライバーＵＩのバージョンと、そのバージョンのドライバーＵＩを削除するドライバーＵＩアンインストーラーのバージョンは一致している。よって、あるバージョンのドライバー本体を削除する際、削除するドライバー本体と同じバージョンのドライバーＵＩアンインストーラーを呼び出すことで、ドライバーＵＩも削除することができる。
【０００７】
しかしながら、ＯＳによるドライバーのネットワークからの自動アップデート（あるいは、手動でネットワークからの自動アップデートを指示）によって、ドライバー本体のみがアップデートされてしまうことがあることである。その結果、ドライバー本体のバージョンがドライバーＵＩのバージョンと異なってしまう場合がある。このような場合、新しくなったドライバー本体と同じバージョンのドライバーＵＩアンインストーラーの呼び出しに失敗し、新しくなったドライバー本体を削除した場合に、関連付けられていたドライバーＵＩを削除することができなくなる。このような事態が発生すると、ドライバーＵＩをアンインストールするために、新しくなったドライバー本体と組み合わさっているドライバーＵＩアンインストーラーを呼び出す、あるいは、別の手段でドライバーＵＩを削除する手段が必要となる。
【０００８】
本発明は、上記課題を鑑みて、ドライバー本体のバージョンが、ドライバーＵＩのバージョンと異なる場合であっても、不要となったドライバーＵＩを削除することができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、本発明の情報処理装置は、ユーザーが選択したプリンターのプリンタードライバーの機能を実行するドライバー本体をアンインストールする第１のアンインストール手段と、ＵＩを実行するアプリケーションを含むＵＩ実行関連ファイルと前記ＵＩと紐づいた前記ドライバー本体とのドライバー拡張関連付け定義をアンインストールする第２のアンインストール手段と、前記アンインストールしたドライバー本体と関連する前記ＵＩをアンインストールするためにＯＳに登録されている全てのバージョンの前記第２のアンインストール手段を選択する選択手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ドライバー本体のバージョンが、ドライバーＵＩのバージョンと異なる場合であっても、不要となったドライバーＵＩを削除することができる情報処理装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】システム構成を示す図である。
【図２】クライアントコンピュータのハードウェア構成を示す図である。
【図３】ドライバーセットの構成を示す図である。
【図４】ドライバー拡張関連付け定義のデータの一例を示す図である。
【図５】ドライバーインストール後の各モジュールの配置を示す図である。
【図６】プログラムのアンインストール画面の一例を示す図である。
【図７】ドライバーの構成の一例を示す図である。
【図８】ドライバー本体アンインストーラーの処理のフローチャートである。
【図９】ドライバーＵＩアンインストールの処理のフローチャートである。
【図１０】ドライバー本体アンインストーラーの処理のフローチャートである。
【図１１】ドライバーＵＩアンインストールの処理のフローチャートである。
【図１２】ドライバー本体アンインストーラーの処理のフローチャートである。
【図１３】ドライバーＵＩアンインストールの処理のフローチャートである。
【図１４】ドライバーの構成の一例を示す図である。
【図１５】ドライバーの構成の一例を示す図である。
【図１６】プログラムのアンインストール画面の一例を示す図である。
【図１７】ドライバーアンインストール画面の一例を示す図である。
【図１８】ドライバー本体アンインストーラーの処理のフローチャートである。
【図１９】ドライバーＵＩアンインストールの処理のフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための最良の形態について図面及び表を用いて説明する。以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１３】
（第１実施形態）
図１は、本実施形態に係るシステム構成の概略を表す模式図を示す。このシステムは、情報処理装置の一例であるクライアントコンピュータ１０１と、ページ記述言語（ＰＤＬ）形式の印刷データを受信し印刷を行うことが可能なプリンター１０２を備える。これらは、Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ）を含むネットワーク１０３を通じて相互に通信可能である。なお、プリンター１０２は、印刷機能のみを備えるシングルファンクションプリンタでも、印刷機能、スキャン機能、複写機能を備えるマルチファンクションプリンタでも構わない。また、クライアントコンピュータ１０１は、ネットワーク１０３に対し一台に限らず、複数台接続されていても構わない。
【００１４】
図２は、図１のクライアントコンピュータ１０１のハードウェア構成を示すブロック図である。クライアントコンピュータ１０１において、中央演算処理装置（ＣＰＵ２０１）は、ランダムアクセスメモリ（ＲＡＭ２０２）に記憶されているプログラムに従って、システムバスに接続される各デバイスを制御する。なお、クライアントコンピュータ１０１は、少なくとも１つのＣＰＵ２０１を備える。加えて、ＣＰＵ２０１が外部メモリ２０９に記憶されているプログラムに基づき処理を実行することによって、クライアントコンピュータ１０１のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。このＲＡＭ２０２は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００１５】
ＲＯＭ（リードオンリーメモリ）２０３は、ブートプログラムや基本入出力システム(ＢＩＯＳ)等の各種プログラムが書き込まれてある。操作入力装置Ｉ／Ｆ２０４は、キーボードやポインティングデバイス（マウス）タッチＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）などの操作入力装置２０５を制御するインターフェースである。ディスプレイＩ／Ｆ２０６は、ディスプレイ２０７への画面表示を制御する。外部メモリＩ／Ｆ２０８は、例えば、ハードディスク（ＨＤ）、ソリッドステートディスク（ＳＳＤ）等の外部メモリ２０９とのアクセスを制御する。外部メモリ２０９は、オペレーティングシステムプログラム（ＯＳ）２１０をはじめ、タッチパネル、デスクトップそれぞれに対応したアプリケーション２１２、プリンタードライバーを含むドライバー３００６を含む。また、各種ファイル等を記憶し、クライアントコンピュータ１０１が読み取り可能な記憶媒体として機能する。ネットワークＩ／Ｆ２１３は、ネットワーク１０３を介してプリンター１０２に接続され通信制御処理を行う。
【００１６】
次に、図３を用いてドライバーセットについて説明する。ドライバーセット３０００は、ドライバーをＯＳ２１０内に配置し、関連ファイルをアプリケーションの領域に配置するために必要なドライバー３００６のファイル及び関連モジュールの集合である。ドライバー３００６は、印刷時に必要なレンダリングなどのモジュールや機種依存ファイル群などを持つ。機種依存ファイル３００１には、機種ごとの禁則のルールや機能の一覧、工場出荷値の印刷設定やロケールごとのデフォルトの印刷設定などのファイル群が置いてある。ドライバーＵＩモジュール３００２は、ドライバー３００６がＯＳ２１０内に配置された後に、印刷時に呼び出され、詳細な印刷設定を行うことを可能にするモジュールである。本モジュールは、インストーラー３００３により呼び出されるドライバーＵＩインストーラー３００４により、所定の領域に配置される。ドライバーＵＩインストーラー３００４は、単体で呼び出すことも可能である。
【００１７】
グラフィックスモジュール３００８は、ドライバー３００６が印刷をする際に印刷対象のファイルをＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）に変換を行う。ＩＮＦファイル３００７は、ドライバーセット３０００でサポートしている機種の一覧や、サポートしている機種のプリンタードライバーの必要なモジュールの一覧などの設定情報が記述されたファイルである。インストーラー３００３は、外部からの操作入力装置２０５を通じて起動された際にドライバー３００６をＯＳ２１０内に配置を行うと共に、ドライバーＵＩモジュール３００２を配置するドライバーＵＩインストーラーを呼び出す。また、インストールされたドライバー３００６および関連ファイルを削除する際にＯＳ２１０から呼び出されるドライバーアンインストーラー３００５を所定の領域に配置し、ＯＳ２１０に登録する。インストーラー３００３により、インストールが行われる。すると、結果的に、図５のように、ＯＳ２１０には、ＩＮＦファイル３００７、機種依存ファイル３００１、グラフィックスモジュール３００８が登録される。それと共に、アプリケーション２１２の領域にドライバーＵＩモジュール３００２、ドライバーアンインストーラー３００５が配置される。ドライバーＵＩモジュール３００２は、ドライバーのインストールが終了し、アプリケーション２１２の領域に登録された後に、印刷時に呼び出され、詳細な印刷設定を行うことを可能とするモジュールである。
【００１８】
また、後述のドライバー拡張関連付け定義５００１は、ドライバー３００６がどの設定画面を開くかの定義であり、ＯＳ２１０が持つ設定データベース領域に情報を登録してよい。例えば、図４に示すように、ドライバーＵＩの配置場所を定義したドライバーＵＩのファイルパス４０１とドライバー本体を一意に特定するための情報であるドライバー本体のＩＤ４０２のように関連づけが行われる。
【００１９】
ここで、ドライバー３００６が設定画面を開く場合、まずドライバー３００６が、ドライバー本体ＩＤ４０２を使って、設定データベースにある、図５に示すドライバー拡張関連付け定義５００１を検索する。その上で、ドライバー本体ＩＤ４０２が一致したドライバーに関し、ドライバーＵＩのファイルパス４０１を元に登録されているドライバーＵＩを呼び出すことによって、設定画面が開く。以後、ドライバーＵＩと区別を明確にするためドライバー３００６をドライバー本体と呼ぶ。
【００２０】
次に、ＯＳ２１０に登録されたドライバーアンインストーラーについて説明する。ドライバーアンインストーラーは、ユーザーがＯＳ２１０の用意するプログラムのアンインストール画面を開くと、例えば、図６の画面に示すように表示される。ここで、ドライバーアンインストーラー６０１は、に示すようにドライバー本体アンインストーラーという名前で、「Ｃａｎｏｎ  Ｉｎｃ．」が発行元、ドライバーアンインストーラーが登録されたドライバーのインストール日は、「２０１７／１１／１７」となる。そして、サイズは、「未登録」、バージョンは、「１．１」で登録されているということになる。また、ドライバーＵＩモジュールは、ドライバーＵＩインストーラーでインストールした際に、ＯＳ２１０にドライバーＵＩインストーラーが持つアンインストール機能と名前を登録することによって、ドライバーＵＩのアンインストール時に、利用可能となる。
【００２１】
また、図６に示すドライバーＵＩアンインストーラー６０２は、ドライバーＵＩアンインストーラーという名前で登録されている。そして、「Ｃａｎｏｎ  Ｉｎｃ．」が発行元、ドライバーアンインストーラーが登録されたドライバーのインストール日は、「２０１７／１１／１７」、サイズは、「３９Ｍ」、バージョンは、「１．１」で登録されているということになる。
【００２２】
次に、図７を用いて、ドライバーのネットワークからの自動アップデート時の構成の変化について説明する。ドライバーインストーラー（バージョン１．２）を利用して、機種Ｂのドライバーをインストールするとドライバー本体（バージョン１．２）がＯＳにインストールされる。続いてドライバーＵＩインストーラーを呼び出してドライバーＵＩ（バージョン１．２）をプログラム領域に配置する。そして、ドライバーＵＩインストーラーは、インストールされたドライバーとドライバーがどの設定画面を開くかを定義するドライバー拡張関連付け定義をＯＳが持つ設定データベース領域に情報を登録する。
【００２３】
ここで、ドライバー本体（バージョン１．２）がドライバーＵＩ（バージョン１．２）と関連付くことになる。図７において、構成７０１の「関連」の線が関連付いていることを示す。そして、ドライバーＵＩアンインストーラー（バージョン１．２）の名前で、ＯＳにドライバーＵＩのアンインストール機能が登録される。なお、本実施形態では、ドライバーＵＩのバージョンと、そのバージョンのドライバーＵＩを削除するドライバーＵＩアンインストーラーのバージョンは一致しているものとする。ドライバーとドライバーＵＩのインストールが成功すると、ドライバーをアンインストールするドライバーアンインストーラーがプログラム領域に配置され、ＯＳにドライバーアンインストーラーが登録される。
【００２４】
この結果、図７の構成７０１のように、ドライバー本体、ドライバーＵＩ、ドライバーＵＩアンインストーラー、ドライバーアンインストーラー全て（バージョン１．２）の構成となる。そして、機種Ｂのドライバーのアンインストールが指示されると、ドライバーアンインストーラー（バージョン１．２）が呼び出され、機種Ｂのドライバー本体（バージョン１．２）が削除される。そして、同時に、削除したドライバー本体と同じバージョンのドライバーＵＩアンインストーラーを呼び出す。他の機種が、自分のドライバーＵＩを利用している他の機種がいないかどうか、ドライバー拡張関連付け定義をチェックし、いなければ、ドライバーＵＩ、ドライバー拡張関連付け定義を消し、バージョン１．２を削除して、自分をＯＳの登録から削除する。
【００２５】
この時、ドライバーＵＩは、ドライバーＵＩインストーラー単独で動くことも想定しているため、ドライバー本体の削除は、ドライバーアンインストーラーが行い、ドライバーＵＩの削除は、ドライバーＵＩアンインストーラーで行うような構成となっている。また、各アンインストーラーの役割分担を明確にするため、ドライバーをアンインストールするドライバーアンインストーラーは、自分のバージョンのコアとドライバストアのファイルの情報のみを扱う。そして、ドライバーＵＩアンインストーラーが、ドライバー拡張関連付け定義の管理を行うように実装を行っている。このようにすることで、ドライバーＵＩインストーラーのみでも、ドライバーとして動作できるようになっている。
【００２６】
ここで、ＯＳによるドライバーのネットワークからの自動アップデート（あるいは、手動でネットワークからの自動アップデートを指示）によって、ドライバー本体のみがアップデートされる。その結果、ドライバー本体のバージョンが、ドライバーＵＩのバージョンと異なってしまった場合を考える。この場合、ドライバー本体のみがアップデートされると、図７の構成７０２のように、ドライバー本体のみがバージョン１．４とアップデートされる。これに対して、ドライバーＵＩ、ドライバーＵＩアンインストーラー、ドライバーアンインストーラーはバージョン１．２のままの構成となる。そして、機種Ｂのドライバーのアンインストールが指示されると、ドライバーアンインストーラー（バージョン１．２）が呼び出される。ドライバーアンインストーラーは、ＯＳに登録されているＩＮＦファイルを見ることにより、機種Ｂのドライバー本体（バージョン１．４）を削除する。そのあとで、ドライバーＵＩをアンインストールするために、ドライバー本体と同じバージョンのドライバーＵＩアンインストーラーを探しに行く。しかし、存在しないため、自動アップデート前のバージョン１．２のドライバーＵＩアンインストーラーを呼ぶ仕組みが必要となる。
【００２７】
次に、ＯＳによるドライバーのネットワークからの自動アップデートが行われた際のドライバーＵＩアンインストール手段について説明する。まず、バージョンが１．１の機種Ａ、１．２の機種Ｂ、１．３の機種Ｃの順番にドライバーがインストールされたとする。この場合、それぞれの機種に対して、ドライバー本体、ドライバーＵＩ、ドライバーＵＩアンインストーラー、ドライバーアンインストーラーがインストールおよび配置され、図１４のようになる。ドライバーアンインストーラーは、１つしか登録されないため、バージョンが１．１から１．２に更新され、更に１．３に更新され、図１４のような構成となる。
【００２８】
この時、ＯＳによるドライバーのネットワークからの自動アップデートによって機種Ｂのドライバー本体のみがバージョン１．４にアップデートされると、図１５のようになる。ユーザーがＯＳの用意するプログラムのアンインストール画面を開く。すると、図１６のように、ドライバーアンインストーラーは（１６０１）１．３に、そして、ドライバーＵＩアンインストーラーは、１．１（１６０２）、１．２（１６０３）、１．３（１６０４）が登録されていることになる。
【００２９】
ユーザーが機種Ｂのドライバーをアンインストールしようとして、ドライバー本体アンインストーラー（１６０１）を選択すると図１７のように表示される。機種Ｂ（プリンターＢ）のドライバーの削除がユーザーから指示された場合、まず、ＯＳに登録されているバージョン１．３のドライバーアンインストーラーが実行され、現在インストールされているプリンタードライバーが列挙される。プリンターＢ（１７０１）を選択して削除ボタンを押下することにより、機種Ｂのドライバーのアンインストールが始まる。
【００３０】
次に、ドライバーのアンインストール処理について図１８、図１９を用いて説明する。図１８において、ドライバー本体アンインストーラー（第１のアンインストール手段）の処理が始まると、まず、選択された機種のドライバー本体のアンインストール処理を行う（Ｓ１８００１）。そして、全てのバージョンのドライバーＵＩアンインストーラー（第２のアンインストール手段）を実行したか否かを判定（確認）する（Ｓ１８００２）。そして、実行していない場合（Ｎｏ）、ＯＳに登録されているドライバーＵＩアンインストーラーから実行していないバージョンのドライバーＵＩアンインストーラーを選択する（Ｓ１８００３）。そして、ドライバーＵＩのアンインストール処理を行う（Ｓ１８００４）。
【００３１】
続いて、図１９において、ドライバーＵＩのアンインストール処理が始まると、ＯＳに登録されている対象プリンターのリストを作成する（Ｓ１９００１）。次に、自身（ドライバーＵＩアンインストーラー）のバージョンに対応するバージョンのドライバーＵＩを使用しているドライバー本体があるか否かを判定（確認）する（Ｓ１９００２）。他に自身のバージョンに一致するバージョンのドライバーＵＩを使用している場合（Ｙｅｓ）、ドライバーＵＩをアンインストールすることができないため、そのまま終了となる。一方、自身のバージョンに一致するバージョンのドライバーＵＩを使用しているドライバー本体が無い場合（Ｎｏ）、関連付けレジストリの削除を行う（Ｓ１９００３）。そして、削除対象のドライバーＵＩの削除を行う（Ｓ１９００４）。つまり、ドライバーＵＩを実行するアプリケーションを含むＵＩ実行関連ファイルと、該ドライバーＵＩと紐づいたドライバー本体とのドライバー拡張関連付け定義がアンインストールされる。続いて、登録していた、ＵＩアンインストーラーである自分をＯＳの登録から削除する（Ｓ１９００５）。そして、ドライバーＵＩのアンインストール処理を終了して、図１８のＳ１８００２に戻り、全てのバージョンのドライバーＵＩアンインストーラーを実行するまで、ドライバーＵＩのアンインストール処理を繰り返す。そして、全てのバージョンのドライバーＵＩを削除した後（Ｓ１８００２でＹｅｓ）、全てのドライバー本体が削除されていれば、自分をＯＳの登録から削除する（Ｓ１８００５）。
【００３２】
以上、本実施形態によれば、全てのバージョンのドライバーＵＩアンインストーラーを呼び出して、処理する。これによって、ドライバー本体のみがアップデートされ、ドライバー本体のバージョンが、ドライバーＵＩのバージョンと異なってしまった場合でも、ドライバー本体のアンインストーラーから、確実に不要となったドライバーＵＩを削除することが可能となる。
【００３３】
（第２実施形態）
第１実施形態においては、全てのバージョンのドライバーＵＩアンインストーラーを呼び出して、処理することによって、ドライバーＵＩの削除を行った。本実施形態では、ドライバーＵＩアンインストーラーで他のバージョンのドライバーＵＩの削除を行う。それによって、ドライバー本体のバージョンが、ドライバーＵＩのバージョンと異なってしまった場合でも、ドライバー本体のアンインストーラーから、不要となったドライバーＵＩを削除できる。
【００３４】
ドライバーのアンインストール処理について図１０、図１１を用いて説明する。第１実施形態の、図１５、図１６のような状態で、第１実施形態と同様、ユーザーが機種Ｂのドライバーをアンインストールしようとする。そして、ドライバー本体アンインストーラーを選択すると図１７のように表示され、プリンターＢ（１７０１）を選択して削除ボタンを押下することにより、機種Ｂのドライバーのアンインストールが始まる。
【００３５】
図１０において、ドライバー本体のアンインストーラーの処理が始まると、まず、選択された機種のドライバー本体のアンインストール処理を行う（Ｓ１０００１）。そして、任意の１つのバージョンのドライバーＵＩアンインストーラーを選択する（Ｓ１０００２）。続いてドライバーＵＩのアンインストール処理を行う（Ｓ１０００３）。図１１において、ドライバーＵＩのアンインストール処理が始まると、ＯＳに登録されている全てのバージョンのチェックを実行したか否かを判定（確認）する（Ｓ１１００１）。全てのバージョンのチェックを実行した場合（Ｙｅｓ）、そのまま終了となる。一方、全てのバージョンのチェックを実行していない場合（Ｎｏ）、未チェックのバージョンを選択、ＯＳに登録されている対象プリンターのリストを作成する（Ｓ１１００２）。
【００３６】
次に、自身のバージョンに一致するバージョンのドライバーＵＩを使用しているドライバー本体があるか否かを判定（確認）する（Ｓ１１００３）。他に自身のバージョンに一致するバージョンのドライバーＵＩを使用している場合（Ｙｅｓ）、ドライバーＵＩをアンインストールすることができないため、そのまま次のバージョンのチェックに進むためにＳ１１００１に戻る。一方、自身のバージョンに一致するバージョンのドライバーＵＩを使用しているドライバー本体が無い場合（Ｎｏ）、関連付けレジストリの削除を行う（Ｓ１１００４）。そして、削除対象のドライバーＵＩの削除を行う（Ｓ１１００５）。続いて、チェック中のバージョンのドライバーＵＩアンインストーラーをＯＳの登録から削除する（Ｓ１１００６）。そして、Ｓ１１００１からの処理を繰り返し、ＯＳに登録されている全てのバージョンについて、ドライバーＵＩの削除を実行する。そして、ドライバーＵＩのアンインストール処理を終了して、図１０の処理に戻り、全てのドライバー本体が削除されていれば、自分をＯＳの登録から削除する（Ｓ１０００４）。
【００３７】
以上、本実施形態によれば、ドライバーＵＩアンインストーラーの中で全てのバージョンのドライバーＵＩのチェックを行い、処理する。これによって、ドライバー本体のみがアップデートされ、ドライバー本体のバージョンが、ドライバーＵＩのバージョンと異なってしまった場合でも、ドライバー本体のアンインストーラーから、確実に不要となったドライバーＵＩを削除することが可能となる。
【００３８】
（第３実施形態）
第１実施形態および第２実施形態においては、ドライバーＵＩのアンインストール処理の中でのみドライバーＵＩの使用状態をチェックしていた。本実施形態では、ドライバー本体アンインストーラーも削除対象となるドライバー本体で使用しているドライバーＵＩを確認する。
【００３９】
ドライバーのアンインストール処理について図１２、図１３を用いて説明する。第１実施形態の図１５、図１６のような状態で、第１実施形態と同様、ユーザーが機種Ｂのドライバーをアンインストールしようとする。そして、ドライバー本体アンインストーラーを選択すると図１７のように表示され、プリンターＢ（１７０１）を選択して削除ボタンを押下することにより、機種Ｂのドライバーのアンインストールが始まる。
【００４０】
図１２において、ドライバー本体のアンインストーラーの処理が始まると、まず、削除対象となるドライバー本体で使用しているドライバーＵＩを検索する（Ｓ１２００１）。そして、使用しているドライバーＵＩのアンインストーラーのバージョンを記憶する（Ｓ１２００２）。次に、選択された機種のドライバー本体のアンインストール処理を行う（Ｓ１２００３）。そして、記憶されたバージョンのドライバーＵＩアンインストーラーを選択する（Ｓ１２００４）。続いてドライバーＵＩのアンインストール処理を行う（Ｓ１２００５）。
【００４１】
次に、図１３において、ドライバーＵＩのアンインストール処理が始まると、ＯＳに登録されている対象プリンターのリストを作成する（Ｓ１３００１）。次に、自身のバージョンに一致するバージョンのドライバーＵＩを使用しているドライバー本体があるか否かを判定（確認）する（Ｓ１３００２）。他に自身のバージョンに一致するバージョンのドライバーＵＩを使用している場合（Ｙｅｓ）、ドライバーＵＩをアンインストールすることができないため、そのまま終了となる。一方、自身のバージョンに一致するバージョンのドライバーＵＩを使用しているドライバー本体が無い場合（Ｎｏ）、関連付けレジストリの削除を行う（Ｓ１３００３）。そして、削除対象のドライバーＵＩの削除を行う（Ｓ１３００４）。続いて、チェック中のバージョンのドライバーＵＩアンインストーラーをＯＳの登録から削除する（Ｓ１３００５）。ドライバーＵＩのアンインストール処理を終了して、図１２の処理に戻り、全てのドライバー本体が削除されていれば、自分をＯＳの登録から削除する（Ｓ１２００６）。
【００４２】
以上、本実施形態によれば、ドライバー本体アンインストーラーも削除対象となるドライバー本体で使用しているドライバーＵＩを確認する。これによって、ドライバー本体のみがアップデートされ、ドライバー本体のバージョンが、ドライバーＵＩのバージョンと異なってしまった場合でも、ドライバー本体のアンインストーラーから、確実に不要となったドライバーＵＩを削除することが可能となる。
【００４３】
（第４実施形態）
第１実施形態、第２実施形態、第３実施形態においては、ドライバーＵＩアンインストーラーによるドライバーＵＩのアンインストール手段と、関連するＵＩ関連情報を削除する手段について述べた。しかしながら、ドライバー本体が削除された場合にも、何らかのエラーにより、ドライバーＵＩとドライバーの関連が残ってしまうと、ドライバーＵＩアンインストーラーを削除することができなくなる。そのため、ドライバーの関連とドライバーＵＩを強制的に削除するドライバーＵＩアンインストール処理の強制モードが必要となる。
【００４４】
次に、ドライバーのアンインストール処理に於けるドライバーＵＩアンインストール処理の強制モードについて図８、図９を用いて説明する。第１実施形態の図１５、図１６のような状態で、ユーザーがドライバーを全てアンインストールしようとして、ドライバー本体アンインストーラーを選択する。すると、図１７のように表示され、ドライバーの全削除であるクリーンアップボタン１７０２がユーザーから指示された場合を考える。
【００４５】
図８において、ドライバー本体のアンインストーラーの処理が始まると、クリーンアップ処理か否かを判定（確認）する（Ｓ８００１）。クリーンアップ処理でない場合（Ｎｏ）、第１実施形態と同様、選択された機種のドライバー本体のアンインストール処理を行い（Ｓ８００２）、Ｓ８００６に進む。一方、クリーンアップ処理の場合（Ｙｅｓ）、まず、削除していないドライバー本体１つのアンインストール処理を行う（Ｓ８００３）。次に、全てのドライバー本体を削除したか否かを判定（確認）する（Ｓ８００４）。そして、全てのドライバー本体の削除処理が終わるまでＳ８００３、Ｓ８００４を繰り返した後（Ｓ８００４でＹｅｓ）、クリーンアップ処理なので、全てのＵＩ関連情報を削除するべく、強制モードを設定する（Ｓ８００５）。続いて、全てのバージョンのドライバーＵＩアンインストーラーを実行したか否かを判定（確認）する（Ｓ８００６）。全てのバージョンのチェックを実行していない場合（Ｎｏ）、ＯＳから実行していないバージョンのドライバーＵＩアンインストーラーを選択する（Ｓ８００７）。次に、第１実施形態と同じようにドライバーＵＩのアンインストール処理を行う（Ｓ８００８）。
【００４６】
次に、図９にて、ドライバーＵＩのアンインストール処理が始まると、ＯＳに登録されている対象プリンターのリストを作成する（Ｓ９００１）。そして、強制モードか否かを判定（確認）する（Ｓ９００２）。強制モードでない場合（Ｎｏ）、第１実施形態と同様に、自身のバージョンに一致するバージョンのドライバーＵＩを使用しているドライバー本体があるかを確認する（Ｓ９００３）。一方、クリーンアップ処理の場合には、Ｓ８００５において強制モードが設定されている。そのため、自身のバージョンに一致するバージョンのドライバーＵＩを使用しているドライバー本体があるか否かを判定（確認）することなく、強制的に、ＵＩ関連情報の削除を行う。すなわち、関連付けレジストリの削除を行う（Ｓ９００４）。続いて、削除対象のドライバーＵＩの削除を行う（Ｓ９００５）。更に、登録していた、ＵＩアンインストーラーである自分をＯＳの登録から削除する（Ｓ９００６）。
【００４７】
そして、ドライバーＵＩのアンインストール処理を終了して、図８のＳ８００６に戻り、全てのバージョンのドライバーＵＩアンインストーラーで強制的にＵＩ関連情報の削除を実行するまで、ドライバーＵＩのアンインストール処理を繰り返す。そして、全てのバージョンのドライバーＵＩを削除した後、自分をＯＳの登録から削除する（Ｓ８００９）。
【００４８】
以上、本実施形態によれば、登録されている全てのバージョンのドライバーＵＩアンインストーラーを実施することになり、削除した機種のドライバー本体とはバージョンが異なるドライバーＵＩもアンインストールすることが可能となる。
【００４９】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００５０】
また、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2019175031.tif 000003
【図２】
2019175031.tif 000004
【図３】
2019175031.tif 000005
【図４】
2019175031.tif 000006
【図５】
2019175031.tif 000007
【図６】
2019175031.tif 000008
【図７】
2019175031.tif 000009
【図８】
2019175031.tif 000010
【図９】
2019175031.tif 000011
【図１０】
2019175031.tif 000012
【図１１】
2019175031.tif 000013
【図１２】
2019175031.tif 000014
【図１３】
2019175031.tif 000015
【図１４】
2019175031.tif 000016
【図１５】
2019175031.tif 000017
【図１６】
2019175031.tif 000018
【図１７】
2019175031.tif 000019
【図１８】
2019175031.tif 000020
【図１９】
2019175031.tif 000021