レジストリキーの削除方法を教えて下さい。
レジストリの構造は下記の通り
---------------------------------------------------
HKEY_CURRENT_USER - Software - AAAA -???? - ????
-???? - ????
- ????
- ????
※????は、キー名、キーの数が不定です。
使用する環境は、WIndows XP Pro
---------------------------------------------------
不要な、「AAAA」配下のレジストリキーを削除したいのですが、
「RegDeleteKey」の場合、「WindowsNT系OSでは、サブキーを持つキーを削除することはできません。」とある為、WindowsXPでは、削除できない・・・・・んですよね??
質問ですが、
WindowsXPでも使用できる、サブキー指定で配下のキーも削除可能な関数、方法があれば教えて下さい。
または、サブキー配下のキー一覧を参照する様な関数、方法があれば教えて下さい。
以上、宜しくお願い致します。m(_ _)m
レジストリキーの削除について
ABのヘルプに載っていない関数は大抵自分でDeclare宣言を書く必要があります。
さて,もっと簡単な方法を見つけました。
SHDeleteKey関数です。この関数はサブキーが有っても平気であるようです。
SHDeleteKey - MSDN Libyrary
プロジェクト内のどこかにこれを書けばこのSHDeleteKey関数は使えます。
使い方はRegDeleteKey関数と全く変わりません。
ただしshlwapi.dllの関数ですので,Win 95/NT4ではIE4以上をインストールする必要があります。
(Win 98/2000以上なら標準でIE4以上が入っているので,問題にはなりません)
Win 95/NT4を使う方にはIE4以上を入れるようお願いすることになります。
自分専用プログラムを書くときには全く気にする必要はないであろうことですが。
さて,もっと簡単な方法を見つけました。
SHDeleteKey関数です。この関数はサブキーが有っても平気であるようです。
SHDeleteKey - MSDN Libyrary
プロジェクト内のどこかにこれを書けばこのSHDeleteKey関数は使えます。
コード: 全て選択
Declare Function SHDeleteKey Lib "shlwapi.dll" Alias "SHDeleteKeyA" (hKey As HKEY, pszSubKey As BytePtr) As DWord
ただしshlwapi.dllの関数ですので,Win 95/NT4ではIE4以上をインストールする必要があります。
(Win 98/2000以上なら標準でIE4以上が入っているので,問題にはなりません)
Win 95/NT4を使う方にはIE4以上を入れるようお願いすることになります。
自分専用プログラムを書くときには全く気にする必要はないであろうことですが。