(57)【特許請求の範囲】
【請求項１】
コンピュータにインストールされたデバイスドライバをアンインストールするアンインストールプログラムであって、
該デバイスドライバを識別する検索条件に基づいて、複数のデバイスドライバの設定情報を一括管理するデータであって、該デバイスドライバのインストールに伴って作成されるレジストリキーから、該デバイスドライバのインストールに使用し、該デバイスドライバの設定情報を含むデバイスドライバデータの格納場所データを抽出するドライバデータ格納場所データ抽出手順と、
該格納場所データに基づいて該デバイスドライバデータを特定し、該デバイスドライバデータより第１の所定の文字列を検索してデバイスＩＤを抽出し、第２の所定の文字列を検索してデバイスドライバのファイル名を抽出し、第３の所定の文字列を検索してドライバファイルのパスを抽出するアンインストールデータ抽出手順と、
前記パスが前記ファイル名を有するか否かを判定し、前記パスが前記ファイル名を有する場合に、前記パスを用いて前記デバイスドライバをアンインストールし、前記デバイスＩＤを用いて前記レジストリキーを削除するアンインストール手順と、
をコンピュータで実行するアンインストールプログラム。
【請求項２】
コンピュータにインストールされたデバイスドライバをアンインストールするアンインストール方法であって、
該デバイスドライバを識別する検索条件に基づいて、複数のデバイスドライバの設定情報を一括管理するデータであって、該デバイスドライバのインストールに伴って作成されるレジストリキーから、該デバイスドライバのインストールに使用し、該デバイスドライバの設定情報を含むデバイスドライバデータの格納場所データを抽出するドライバデータ格納場所データ抽出工程と、
該格納場所データに基づいて該デバイスドライバデータを特定し、該デバイスドライバデータより第１の所定の文字列を検索してデバイスＩＤを抽出し、第２の所定の文字列を検索してデバイスドライバのファイル名を抽出し、第３の所定の文字列を検索してドライバファイルのパスを抽出するアンインストールデータ抽出工程と、
前記パスが前記ファイル名を有するか否かを判定し、前記パスが前記ファイル名を有する場合に、前記パスを用いて前記デバイスドライバをアンインストールし、前記デバイスＩＤを用いて前記レジストリキーを削除するアンインストール工程と、
を含んだことを特徴とするアンインストール方法。
【請求項３】
コンピュータにインストールされたデバイスドライバをアンインストールするアンインストール装置であって、
該デバイスドライバを識別する検索条件に基づいて、複数のデバイスドライバの設定情報を一括管理するデータであって、該デバイスドライバのインストールに伴って作成されるレジストリキーから、該デバイスドライバのインストールに使用し、該デバイスドライバの設定情報を含むデバイスドライバデータの格納場所データを抽出するドライバデータ格納場所データ抽出手段と、
該格納場所データに基づいて該デバイスドライバデータを特定し、該デバイスドライバデータより第１の所定の文字列を検索してデバイスＩＤを抽出し、第２の所定の文字列を検索してデバイスドライバのファイル名を抽出し、第３の所定の文字列を検索してドライバファイルのパスを抽出するアンインストールデータ抽出手段と、
前記パスが前記ファイル名を有するか否かを判定し、前記パスが前記ファイル名を有する場合に、前記パスを用いて前記デバイスドライバをアンインストールし、前記デバイスＩＤを用いて前記レジストリキーを削除するアンインストール手段と、
を備えたことを特徴とするアンインストール装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、コンピュータにインストールされたデバイスドライバをアンインストールするアンインストールプログラム、アンインストール方法およびアンインストール装置に関し、特に、全てのデバイスドライバのアンインストールに共通に使うことができ、デバイスごとの開発が不要で、デバイスの開発コストを低減することができるアンインストールプログラム、アンインストール方法およびアンインストール装置に関する。
【０００２】
【従来の技術】
近年、ＵＳＢデバイスやモデムなどのコンピュータと接続して利用するデバイスが数多く実用化されている。これらのデバイスをコンピュータに接続して使用する際には、デバイスごとにデバイスドライバをコンピュータにインストールする必要がある。
【０００３】
そして、これらのデバイスを新しい機種に変更する場合やコンピュータに接続して利用する必要がなくなった場合には、コンピュータにインストールされたデバイスドライバをアンインストールする必要がある。
【０００４】
したがって、これらのデバイスを開発する場合には、デバイスおよびデバイスドライバの開発に加えてデバイスドライバをアンインストールするためのアンインストールプログラムを開発する必要がある。
【０００５】
従来、このアンインストールプログラムは、デバイスを特定するためのデバイスＩＤやデバイスドライバの格納場所などのデバイス情報を必要とすることから、デバイスごとに開発されていた。
【０００６】
【発明が解決しようとする課題】
しかしながら、新たなデバイスを開発するごとにそのデバイスドライバをアンインストールするアンインストールプログラムを開発したのでは、アンインストールプログラムの開発に伴うデバイス開発コストの増大やデバイス開発期間の長期化を招くという問題が生ずる。
【０００７】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、全てのデバイスドライバのアンインストールに共通に使うことができ、デバイスごとの開発が不要で、デバイスの開発コストを低減することができるアンインストールプログラム、アンインストール方法およびアンインストール装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上述した課題を解決し、目的を達成するため、本発明は、コンピュータにインストールされたデバイスドライバをアンインストールするアンインストールプログラムであって、該デバイスドライバを識別する検索条件に基づいて、複数のデバイスドライバの設定情報を一括管理するデータであって、該デバイスドライバのインストールに伴って作成されるレジストリキーから、該デバイスドライバのインストールに使用し、該デバイスドライバの設定情報を含むデバイスドライバデータの格納場所データを抽出するドライバデータ格納場所データ抽出手順と、該格納場所データに基づいて該デバイスドライバデータを特定し、該デバイスドライバデータより第１の所定の文字列を検索してデバイスＩＤを抽出し、第２の所定の文字列を検索してデバイスドライバのファイル名を抽出し、第３の所定の文字列を検索してドライバファイルのパスを抽出するアンインストールデータ抽出手順と、前記パスが前記ファイル名を有するか否かを判定し、前記パスが前記ファイル名を有する場合に、前記パスを用いて前記デバイスドライバをアンインストールし、前記デバイスＩＤを用いて前記レジストリキーを削除するアンインストール手順と、をコンピュータで実行することを特徴とする。
【０００９】
また、本発明は、コンピュータにインストールされたデバイスドライバをアンインストールするアンインストール方法であって、該デバイスドライバを識別する検索条件に基づいて、複数のデバイスドライバの設定情報を一括管理するデータであって、該デバイスドライバのインストールに伴って作成されるレジストリキーから、該デバイスドライバのインストールに使用し、該デバイスドライバの設定情報を含むデバイスドライバデータの格納場所データを抽出するドライバデータ格納場所データ抽出工程と、該格納場所データに基づいて該デバイスドライバデータを特定し、該デバイスドライバデータより第１の所定の文字列を検索してデバイスＩＤを抽出し、第２の所定の文字列を検索してデバイスドライバのファイル名を抽出し、第３の所定の文字列を検索してドライバファイルのパスを抽出するアンインストールデータ抽出工程と、前記パスが前記ファイル名を有するか否かを判定し、前記パスが前記ファイル名を有する場合に、前記パスを用いて前記デバイスドライバをアンインストールし、前記デバイスＩＤを用いて前記レジストリキーを削除するアンインストール工程と、を含んだことを特徴とする。
【００１０】
また、本発明は、コンピュータにインストールされたデバイスドライバをアンインストールするアンインストール装置であって、該デバイスドライバを識別する検索条件に基づいて、複数のデバイスドライバの設定情報を一括管理するデータであって、該デバイスドライバのインストールに伴って作成されるレジストリキーから、該デバイスドライバのインストールに使用し、該デバイスドライバの設定情報を含むデバイスドライバデータの格納場所データを抽出するドライバデータ格納場所データ抽出手段と、該格納場所データに基づいて該デバイスドライバデータを特定し、該デバイスドライバデータより第１の所定の文字列を検索してデバイスＩＤを抽出し、第２の所定の文字列を検索してデバイスドライバのファイル名を抽出し、第３の所定の文字列を検索してドライバファイルのパスを抽出するアンインストールデータ抽出手段と、前記パスが前記ファイル名を有するか否かを判定し、前記パスが前記ファイル名を有する場合に、前記パスを用いて前記デバイスドライバをアンインストールし、前記デバイスＩＤを用いて前記レジストリキーを削除するアンインストール手段と、を備えたことを特徴とする。
【００１１】
かかる発明によれば、デバイスドライバを識別する検索条件に基づいて、複数のデバイスドライバの設定情報を一括管理するデータであって、デバイスドライバのインストールに伴って作成されるレジストリキーから、デバイスドライバのインストールに使用し、デバイスドライバの設定情報を含むデバイスドライバデータの格納場所データを抽出し、格納場所データに基づいてデバイスドライバデータを特定し、デバイスドライバデータより第１の所定の文字列を検索してデバイスＩＤを抽出し、第２の所定の文字列を検索してデバイスドライバのファイル名を抽出し、第３の所定の文字列を検索してドライバファイルのパスを抽出し、パスがファイル名を有するか否かを判定し、パスがファイル名を有する場合に、パスを用いてデバイスドライバをアンインストールし、デバイスＩＤを用いてレジストリキーを削除することとしたので、全てのデバイスドライバのアンインストールに共通に使うことができ、デバイスごとの開発が不要で、デバイスの開発コストを低減することができる。
【００１２】
【発明の実施の形態】
以下に添付図面を参照して、この発明に係るアンインストールプログラム、アンインストール方法およびアンインストール装置の好適な実施の形態を詳細に説明する。
【００１３】
まず、本実施の形態に係るアンインストール装置の構成について説明する。図１は、本実施の形態に係るアンインストール装置の構成を示す機能ブロック図である。同図に示すように、このアンインストール装置２００は、ユーザインタフェース部２１０と、ｉｎｆファイル名抽出部２２０と、アンインストール情報抽出部２３０と、アンインストール部２４０とを有する。
【００１４】
ユーザインタフェース部２１０は、アンインストール装置２００のユーザと対話してアンインストールするデバイスドライバを決定する処理部である。具体的には、このユーザインタフェース部２１０は、デバイスドライバがインストールされているデバイスのベンダ一覧をユーザに表示し、ユーザは、アンインストールするデバイスのベンダを選択する。そして、このユーザインタフェース部２１０は、ユーザによって選択されたベンダのデバイスであってそのデバイスドライバがインストールされているデバイスの一覧をユーザに表示し、ユーザは、デバイスドライバをアンインストールするデバイスを選択する。
【００１５】
また、このユーザインタフェース部２１０は、デバイスドライバがインストールされているデバイスのベンダ一覧を表示するかわりに、デバイスのカテゴリ一覧を表示し、ユーザは、デバイスドライバをアンインストールするデバイスのカテゴリを選択することもできる。ここで、カテゴリの例としては、モデム、ポート、ＵＳＢなどがある。さらに、ユーザは、アンインストールするデバイスドライバのベンダ名やデバイス名を直接入力することもできる。
【００１６】
ｉｎｆファイル名抽出部２２０は、アンインストールするデバイスドライバの情報を格納するｉｎｆファイルの名前であるｉｎｆファイル名をレジストリ１０から抽出する処理部である。アンインストールするデバイスドライバは、ユーザインタフェース部２１０を介してユーザによって指定される。レジストリ１０は、デバイスドライバなどのプログラムの設定情報を一括管理するＷｉｎｄｏｗｓ（登録商標、以下同様）のファイルである。なお、このｉｎｆファイル名抽出部２２０およびレジストリ１０の詳細については後述する。
【００１７】
アンインストール情報抽出部２３０は、ｉｎｆファイル名抽出部２２０からｉｎｆファイル名を受け取り、このｉｎｆファイル名で指定されたｉｎｆファイル２０からデバイスドライバをアンインストールするために必要なデバイスＩＤやドライバファイルのパスなどの情報を抽出する処理部である。ｉｎｆファイル２０は、デバイスドライバをインストールした時に作られるＷｉｎｄｏｗｓのファイルであり、デバイスに関する情報を管理する。
【００１８】
このアンインストール情報抽出部２３０は、ｉｎｆファイル２０からデバイスドライバをアンインストールするために必要な情報を抽出することによって、アンインストール装置２００を、すべてのデバイスドライバのアンインストールに共通に使うことを可能としている。なお、このアンインストール情報抽出部２３０およびｉｎｆファイル２０の詳細についても後述する。
【００１９】
アンインストール部２４０は、アンインストール情報抽出部２３０からデバイスＩＤやドライバファイルのパスなどの情報を受け取り、ユーザによって指定されたデバイスドライバをアンインストールする処理部である。具体的には、レジストリ１０に格納されたデバイスドライバのレジストリキーを削除するとともに、ドライバファイルを削除する。なお、レジストリキーは、デバイスＩＤで表わされる。
【００２０】
次に、本実施の形態に係るアンインストール装置２００の処理手順について説明する。図２は、本実施の形態に係るアンインストール装置２００の処理手順を示すフローチャートである。同図に示すように、このアンインストール装置２００は、ｉｎｆファイル名抽出部２２０がユーザインタフェース部２１０を介してユーザから指定されたデバイスのｉｎｆファイル名をレジストリ１０から抽出する（ステップＳ２０１）。
【００２１】
そして、アンインストール情報抽出部２３０が、抽出されたｉｎｆファイル名のｉｎｆファイル２０からデバイスドライバのアンインストールに必要なデバイスＩＤやドライバファイルのパスなどの情報を抽出し（ステップＳ２０２）、アンインストール部２４０がデバイスＩＤを用いてレジストリ１０からデバイスドライバのレジストリキーを削除するとともに、ドライバファイルのパスを用いてドライバファイルを削除することによってデバイスドライバをアンインストールする（ステップＳ２０３）。
【００２２】
次に、図１に示したｉｎｆファイル名抽出部２２０の構成について説明する。図３は、図１に示したｉｎｆファイル名抽出部２２０の構成を示す機能ブロック図である。同図に示すように、このｉｎｆファイル名抽出部２２０は、検索条件入力部３１０と、レジストリ読込部３２０と、デバイス選択部３３０とを有する。
【００２３】
検索条件入力部３１０は、デバイスドライバをアンインストールするデバイスの情報をレジストリ１０から検索するための検索条件を入力する処理部である。検索条件は、デバイスのベンダ名、デバイスのカテゴリ、デバイス名のいずれかであり、ユーザによって指定される。なお、ユーザインタフェース部２１０がユーザとの対話をおこない、検索条件入力部３１０は、ユーザの指定した検索条件をユーザインタフェース部２１０から受け取る。
【００２４】
レジストリ読込部３２０は、検索条件入力部３１０から検索条件を受け取り、この検索条件に基づいてレジストリ１０を読み込む処理部である。図４は、図３に示したレジストリ１０の構成の一例を示す図である。同図に示すように、デバイスドライバをインストールすると、HKLM_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class、HKLM_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum、HKLM_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicesの配下にこのデバイスドライバのレジストリキーが作成される。これらのレジストリキーの中で、レジストリ読込部３２０は、検索条件に基づいてレジストリキーHKLM_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Classまたはこの配下のレジストリを検索して読み込み、検索条件に合うデバイスの情報を取り出してデバイス一覧を作成する。
【００２５】
図５は、検索条件の一例を示す図である。同図（ａ）に示すように、ユーザがベンダ名でデバイスを指定した場合には、検索条件はベンダ名またはベンダＩＤとなる。また、同図（ｂ）に示すように、ユーザがカテゴリでデバイスを指定した場合には、検索条件はカテゴリＩＤとなる。
【００２６】
図６は、デバイス一覧の一例を示す図である。同図に示すように、このデバイス一覧は、検索条件に合ったデバイスのデバイス名およびｉｎｆファイル名の組からなる一覧データである。たとえば、デバイス名がH"INModuleのｉｎｆファイル名はFUJITSUFJ61PCI.INFであり、デバイス名がAirH"INModuleのｉｎｆファイル名もFUJITSUFJ61PCI.INFであることを示している。
【００２７】
デバイス選択部３３０は、レジストリ読込部３２０が作成したデバイス一覧を用いて検索条件を満足したデバイスのデバイス名をユーザに示し、ユーザの指定を受けてデバイスドライバをアンインストールするデバイスのｉｎｆファイル名を決定する処理部である。なお、ユーザとの対話処理は、ユーザインタフェース部２１０がおこない、デバイス選択部３３０は、表示するデバイス名をユーザインタフェース部２１０に渡し、ユーザが指定したデバイス名をユーザインタフェース部２１０から受け取る。
【００２８】
図７は、ｉｎｆファイル名の一例を示す図である。同図に示すように、ｉｎｆファイル名としてFUJITSUFJ61PCI.INFが得られている。なお、この例では、ｉｎｆファイル名が一つだけ示されているが、複数のｉｎｆファイル名が得られる場合もある。
【００２９】
次に、図３に示したｉｎｆファイル名抽出部２２０の処理手順について説明する。図８は、図３に示したｉｎｆファイル名抽出部２２０の処理手順を示すフローチャートである。同図に示すように、このｉｎｆファイル名抽出部２２０は、検索条件入力部３１０がユーザインタフェース部２１０を介してユーザからデバイスドライバをアンインストールするデバイスの検索条件を入力する（ステップＳ８０１）。
【００３０】
そして、レジストリ読込部３２０がこの検索条件に基づくレジストリキーを用いてレジストリ１０を読み込み（ステップＳ８０２）、検索条件を満足するデバイスがあるか否かを判定し（ステップＳ８０３）、満足するデバイスがある場合には、そのデバイスのデバイス名とｉｎｆファイル名をレジストリ１０から抽出する（ステップＳ８０４）。
【００３１】
そして、レジストリ読込部３２０は、レジストリ１０の読み込みが終了したか否かを判定し（ステップＳ８０５）、読み込みが終了していない場合には、レジストリ１０の読み込みを続ける。もし、読み込みが終了した場合には、デバイス選択部３３０がユーザインタフェース部２１０を介してユーザにデバイスドライバをアンインストールするデバイスの選択を依頼し（ステップＳ８０６）、ユーザの選択結果に基づいてｉｎｆファイル名を決定する（ステップＳ８０７）。なお、ユーザが検索条件として始めからデバイス名を指定した場合には、デバイス選択をユーザに依頼する処理は不要となる。
【００３２】
次に、図１に示したアンインストール情報抽出部２３０の構成について説明する。図９は、図１に示したアンインストール情報抽出部２３０の構成を示す機能ブロック図である。同図に示すように、このアンインストール情報抽出部２３０は、ｉｎｆファイル読込部９１０と、読込データ定義９２０と、アンインストール情報判定部９３０とを有する。
【００３３】
ｉｎｆファイル読込部９１０は、ｉｎｆファイル名抽出部２２０がレジストリ１０から取り出したｉｎｆファイル名のｉｎｆファイル２０を読み込む処理部である。このｉｎｆファイル読込部９１０は、ｉｎｆファイルを一行ずつ読み込み、アンインストール情報判定部９３０に渡す。
【００３４】
図１０は、図９に示したｉｎｆファイル２０の一例を示す図である。同図に示すように、このｉｎｆファイル２０は、"[Version]"、"[ControFlags］"、"[Manufacturer］"、"[Models]"、"[Strings]"、"［SerMdm_Service_Inst]"、"[SourceDiskFiles]"、"[DestinationDirs]"などの文字列を含むテキストファイルである。
【００３５】
読込データ定義９２０は、ｉｎｆファイル２０からデバイスドライバのアンインストールに必要な情報を取り出すために使用されるデータである。図１１は、図９に示した読込データ定義９２０の一例を示す図である。同図に示すように、この読込データ定義９２０は、ｉｎｆファイル２０から検索する文字列を定義している。
【００３６】
たとえば、Ref_1およびRef_2は、文字列"[ControlFlags]"を検索し、この文字列が見つかった場合には、文字列"ExcludeFromSelect="を検索することを定義している。そして、文字列"ExcludeFromSelect="に続く文字列がデバイスＩＤとなる。この動作定義を図１０に示したｉｎｆファイル２０に適用すると、デバイスＩＤとしてFJUB\FUJ02C1が得られる。
【００３７】
また、Ref_3〜Ref_5は、文字列"[Version]"を検索し、この文字列が見つかった場合には、文字列"ClassGUID="と文字列"Class="を検索することを定義している。そして、文字列"ClassGUID="に続く文字列がクラスＧＵＩＤとなり、文字列"Class="に続く文字列がクラス名となる。この動作定義を図１０に示したｉｎｆファイル２０に適用すると、クラスＧＵＩＤとして
[4D36E96D-E325-11CE-BFC1-08002BE10318]
が得られ、クラス名としてModemが得られる。なお、クラスＧＵＩＤとクラス名は、レジストリ１０からデバイスドライバのレジストリキーを削除するために必ずしも必要な情報ではないが、レジストリキーの削除を高速化するためにアンインストール部２４０によって使用される。
【００３８】
また、Ref_6は、文字列"[SourceDiskFiles]"を検索し、この文字列が見つかった場合には、次の行の文字列を取り出すことを定義している。そして、取り出された文字列の文字"="の前までの文字列がデバイスドライバのファイル名となる。この動作定義を図１０に示したｉｎｆファイル２０に適用すると、デバイスドライバのファイル名としてSerMdm.sysが得られる。
【００３９】
また、Ref_7およびRef_8は、文字列"[xxx_Service_Inst]"を検索し、この文字列が見つかった場合には、文字列"ServiceBinary="を検索することを定義している。そして、文字列"ServiceBinary="に続く文字列がドライバファイルパス候補となる。ただし、"xxx"は任意の文字列を示し、文字列"%12%"は文字列"%SystemRoot%\system32\drivers"に置き換えることとする。この動作定義を図１０に示したｉｎｆファイル２０に適用すると、ドライバファイルパス候補として
%SystemRoot%\system32\drivers\SerMdm.sys
が得られる。
【００４０】
ドライバパス候補は、Ref_6の定義によって得られたデバイスドライバのファイル名と同じファイル名を有する場合に、ドライバファイルのパスとなる。たとえば、図１１に示した動作定義を図１０に示したｉｎｆファイル２０に適用すると、ドライバファイル名としてSerMdm.sysが得られ、ドライバファイルパス候補として
%SystemRoot%\system32\drivers\SerMdm.sys
が得られ、ファイル名が同じSerMdm.sysであるので、
%SystemRoot%\system32\drivers\SerMdm.sys
がドライバファイルのパスとなる。
【００４１】
アンインストール情報判定部９３０は、ｉｎｆファイル読込部９１０が入力したｉｎｆファイル２０のデータから、読込データ定義部９２０の定義に基づいてアンインストール情報を作成する。
【００４２】
図１２は、アンインストール情報の一例を示す図である。同図は、デバイスＩＤがFJUSB\FUJ02C1およびFJUSB\FUJ02C2である二つのデバイスのアンインストール情報を示しており、どちらのデバイスもクラスＧＵＩＤが
[4D36E96D-E325-11CE-BFC1-08002BE10318]
であり、クラス名がModemであり、ドライバファイルのパスが
%SystemRoot%\system32\drivers\SerMdm.sys
であることを示している。
【００４３】
次に、図９に示したアンインストール情報抽出部２３０の処理手順について説明する。図１３は、図９に示したアンインストール情報抽出部２３０の処理手順を示すフローチャートである。同図に示すように、このアンインストール情報抽出部２３０は、ｉｎｆファイル読込部９１０がｉｎｆファイル名抽出部２２０から受け取ったｉｎｆファイル名のｉｎｆファイル２０をオープンし（ステップＳ１３０１）、バッファに一行読み込む（ステップＳ１３０２）。
【００４４】
そして、アンインストール情報判定部９３０が読込データ定義９２０に基づいてバッファの内容を判定し（ステップＳ１３０３）、バッファの内容が文字列"[ControlFlags]"である場合には、文字列"ExcludeFromSelect="を検索し、この後に続く文字列を取り出し、デバイスＩＤとする（ステップＳ１３０４）。また、バッファの内容が文字列"[Version]" である場合には、文字列"ClassGUID="を検索し、この後に続く文字列を取り出してクラスＧＵＩＤとし、さらに、文字列"Class="を検索し、この後に続く文字列を取り出してクラス名とする（ステップＳ１３０５）。
【００４５】
また、バッファの内容が文字列"[SourceDiskFiles]"である場合には、次の行の文字列を取り出し、文字"="の前までの文字列をデバイスドライバのファイル名とする（ステップＳ１３０６）。また、バッファの内容が文字列"[xxx_Service_Inst]"である場合には、文字列"ServiceBinary="を検索し、この後に続く文字列を取り出し、ドライバファイルパス候補とする（ステップＳ１３０７）。
【００４６】
もし、バッファの内容がその他の文字列である場合には、ｉｎｆファイル読込部９１０がｉｎｆファイル２０から次の行を読み込む。もし、ファイルの終わりである場合には、デバイスドライバのファイル名とドライバファイルパス候補からドライバファイルのパスを作成する（ステップＳ１３０８）。
【００４７】
なお、ここでは、一つのｉｎｆファイル２０の処理手順について説明したが、ｉｎｆファイル２０が複数ある場合には、図１３に示した処理手順を繰り返すことにより、複数のデバイスについてのアンインストール情報を得ることができる。
【００４８】
上述してきたように、本実施の形態では、ｉｎｆファイル名抽出部２２０がレジストリ１０からデバイスドライバをアンインストールするデバイスのｉｎｆファイル名を抽出し、アンインストール情報抽出部２３０がこのｉｎｆファイル名のｉｎｆファイル２０からデバイスドライバをアンインストールするために必要なアンインストール情報を抽出し、アンインストール部２４０がこのアンインストール情報を用いてデバイスドライバをアンインストールすることとしたので、全てのデバイスドライバのアンインストールに共通に使うことができ、デバイスごとの開発が不要で、デバイスの開発コストを低減することができるアンインストール装置２００を提供することができる。
【００４９】
なお、本実施の形態では、Ｗｉｎｄｏｗｓのレジストリ１０およびｉｎｆファイル２０を用いたアンインストール装置２００について説明したが、同様の情報を有するファイルであれば、他のファイルを用いることもできる。
【００５０】
また、本実施の形態では、アンインストール装置について説明したが、このアンインストール装置が有する構成をソフトウェアによって実現することで、同様の機能を有するアンインストールプログラムを得ることができる。そこで、このアンインストールプログラムを実行するコンピュータシステムについて説明する。
【００５１】
図１４に示すコンピュータシステム１００は、本体部１０１、本体部１０１からの指示により表示画面１０２ａに画像等の情報を表示するディスプレイ１０２、このコンピュータシステム１００に種々の情報を入力するためのキーボード１０３、ディスプレイ１０２の表示画面１０２ａ上の任意の位置を指定するマウス１０４、ローカルエリアネットワーク（ＬＡＮ）１０６または広域エリアネットワーク（ＷＡＮ）に接続するＬＡＮインタフェース、インターネットなどの公衆回線１０７に接続するモデム１０５が備えられている。ここで、ＬＡＮ１０６は、ほかのコンピュータシステム（ＰＣ）１１１、サーバ１１２、プリンタ１１３等とコンピュータシステム１００とを接続している。また、図１５に示すように、本体部１０１は、ＣＰＵ１２１、ＲＡＭ１２２、ＲＯＭ１２３、ハードディスクドライブ（ＨＤＤ）１２４、ＣＤ−ＲＯＭドライブ１２５、ＦＤドライブ１２６、Ｉ／Ｏインタフェース１２７およびＬＡＮインタフェース１２８を備えている。
【００５２】
このコンピュータシステム１００においてアンインストールプログラムを実行する場合、フロッピィディスク（ＦＤ）１０８、ＣＤ−ＲＯＭ１０９、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体、モデム１０５およびＬＡＮインタフェースを利用し回線を介して接続されたサーバ１１２のデータベース、あるいは、ほかのコンピュータシステム（ＰＣ）１１１のデータベースに格納等の記憶媒体に記憶されたアンインストールプログラムをコンピュータシステム１００にインストールする。インストールされたアンインストールプログラムは、ＨＤＤ１２４に記憶され、ＲＡＭ１２２、ＲＯＭ１２３などを利用してＣＰＵ１２１により実行される。ここで、記憶媒体とは、ＣＤ−ＲＯＭ１０９、フロッピィディスク１０８、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体やコンピュータシステム１００の内外に備えられたハードディスク１２４等の記憶装置のほか、ＬＡＮ１０６を介して接続されたインストール元のアンインストールプログラムを保持するサーバ１１２のデータベース、あるいは、ほかのコンピュータシステム１１１並びにそのデータベースや、さらに公衆回線１０７上の伝送媒体をも含むものである。
【００５３】
（付記１）コンピュータにインストールされたデバイスドライバをアンインストールするアンインストールプログラムであって、
前記デバイスドライバのインストールに伴って作成されたデバイスドライバデータから該デバイスドライバをアンインストールするために必要なアンインストールデータを抽出するアンインストールデータ抽出手順と、
前記アンインストールデータ抽出手順により抽出されたアンインストールデータに基づいてコンピュータにインストールされた前記デバイスドライバをアンインストールするアンインストール手順と、
をコンピュータで実行するアンインストールプログラム。
（付記２）コンピュータにインストールされたプログラムの設定データから前記デバイスドライバデータの格納場所を抽出するドライバデータ格納場所抽出手順をさらにコンピュータで実行する付記１に記載のアンインストールプログラム。
（付記３）前記アンインストールデータ抽出手順は、前記デバイスドライバデータに格納された前記アンインストールデータの格納位置を記述した格納位置データに基づいて該アンインストールデータを抽出することを特徴とする付記１または２に記載のアンインストールプログラム。
（付記４）コンピュータにインストールされたデバイスドライバをアンインストールするアンインストール方法であって、
前記デバイスドライバのインストールに伴って作成されたデバイスドライバデータから該デバイスドライバをアンインストールするために必要なアンインストールデータを抽出するアンインストールデータ抽出工程と、
前記アンインストールデータ抽出工程により抽出されたアンインストールデータに基づいてコンピュータにインストールされた前記デバイスドライバをアンインストールするアンインストール工程と、
を含んだことを特徴とするアンインストール方法。
（付記５）コンピュータにインストールされたプログラムの設定データから前記デバイスドライバデータの格納場所を抽出するドライバデータ格納場所抽出工程をさらに含んだことを特徴とする付記４に記載のアンインストール方法。
（付記６）前記アンインストールデータ抽出工程は、前記デバイスドライバデータに格納された前記アンインストールデータの格納位置を記述した格納位置データに基づいて該アンインストールデータを抽出することを特徴とする付記４または５に記載のアンインストール方法。
（付記７）コンピュータにインストールされたデバイスドライバをアンインストールするアンインストール装置であって、
前記デバイスドライバのインストールに伴って作成されたデバイスドライバデータから該デバイスドライバをアンインストールするために必要なアンインストールデータを抽出するアンインストールデータ抽出手段と、
前記アンインストールデータ抽出手段により抽出されたアンインストールデータに基づいてコンピュータにインストールされた前記デバイスドライバをアンインストールするアンインストール手段と、
を備えたことを特徴とするアンインストール装置。
（付記８）コンピュータにインストールされたプログラムの設定データから前記デバイスドライバデータの格納場所を抽出するドライバデータ格納場所抽出手段をさらに備えたことを特徴とする付記７に記載のアンインストール装置。
（付記９）前記アンインストールデータ抽出手段は、前記デバイスドライバデータに格納された前記アンインストールデータの格納位置を記述した格納位置データに基づいて該アンインストールデータを抽出することを特徴とする付記７または８に記載のアンインストール装置。
【００５４】
【発明の効果】
以上説明したように、本発明によれば、デバイスドライバを識別する検索条件に基づいて、複数のデバイスドライバの設定情報を一括管理するデータであって、デバイスドライバのインストールに伴って作成されるレジストリキーから、デバイスドライバのインストールに使用し、デバイスドライバの設定情報を含むデバイスドライバデータの格納場所データを抽出し、格納場所データに基づいてデバイスドライバデータを特定し、デバイスドライバデータより第１の所定の文字列を検索してデバイスＩＤを抽出し、第２の所定の文字列を検索してデバイスドライバのファイル名を抽出し、第３の所定の文字列を検索してドライバファイルのパスを抽出し、パスがファイル名を有するか否かを判定し、パスがファイル名を有する場合に、パスを用いてデバイスドライバをアンインストールし、デバイスＩＤを用いてレジストリキーを削除するよう構成したので、全てのデバイスドライバのアンインストールに共通に使うことができ、デバイスごとの開発が不要で、デバイスの開発コストを低減することができるという効果を奏する。
【図面の簡単な説明】
【図１】本実施の形態に係るアンインストール装置の構成を示す機能ブロック図である。
【図２】本実施の形態に係るアンインストール装置の処理手順を示すフローチャートである。
【図３】図１に示したｉｎｆファイル名抽出部の構成を示す機能ブロック図である。
【図４】図３に示したレジストリの構成の一例を示す図である。
【図５】検索条件の一例を示す図である。
【図６】デバイス一覧の一例を示す図である。
【図７】ｉｎｆファイル名の一例を示す図である。
【図８】図３に示したｉｎｆファイル名抽出部の処理手順を示すフローチャートである。
【図９】図１に示したアンインストール情報抽出部の構成を示す機能ブロック図である。
【図１０】図９に示したｉｎｆファイルの一例を示す図である。
【図１１】図９に示した読込データ定義の一例を示す図である。
【図１２】アンインストール情報の一例を示す図である。
【図１３】図９に示したアンインストール情報抽出部の処理手順を示すフローチャートである。
【図１４】本実施の形態に係るアンインストールプログラムを実行するコンピュータシステムを示す図である。
【図１５】図１４に示した本体部の機能構成を示す機能ブロック図である。
【符号の説明】
１０  レジストリ
２０  ｉｎｆファイル
１００，１１１  コンピュータシステム
１０１  本体部
１０２  ディスプレイ
１０２ａ  表示画面
１０３  キーボード
１０４  マウス
１０５  モデム
１０６  ＬＡＮ
１０７  公衆回線
１０８  フロッピィディスク
１０９  ＣＤ−ＲＯＭ
１１２  サーバ
１１３  プリンタ
１２１  ＣＰＵ
１２２  ＲＡＭ
１２３  ＲＯＭ
１２４  ハードディスクドライブ
１２５  ＣＤ−ＲＯＭドライブ
１２６  フロッピィディスクドライブ
１２７  Ｉ／Ｏインタフェース
１２８  ＬＡＮインタフェース
２００  アンインストール装置
２１０  ユーザインタフェース部
２２０  ｉｎｆファイル名抽出部
２３０  アンインストール情報抽出部
２４０  アンインストール部
３１０  検索条件入力部
３２０  レジストリ読込部
３３０  デバイス選択部
９１０  ｉｎｆファイル読込部
９２０  読込データ定義
９３０  アンインストール情報判定部
【図１】
0004094883.tif 000002
【図２】
0004094883.tif 000003
【図３】
0004094883.tif 000004
【図４】
0004094883.tif 000005
【図５】
0004094883.tif 000006
【図６】
0004094883.tif 000007
【図７】
0004094883.tif 000008
【図８】
0004094883.tif 000009
【図９】
0004094883.tif 000010
【図１０】
0004094883.tif 000011
【図１１】
0004094883.tif 000012
【図１２】
0004094883.tif 000013
【図１３】
0004094883.tif 000014
【図１４】
0004094883.tif 000015
【図１５】
0004094883.tif 000016