レジストリキーの削除について

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: レジストリキーの削除について

by イグトランス » 2006年5月26日(金) 07:38

ABのヘルプに載っていない関数は大抵自分でDeclare宣言を書く必要があります。

さて,もっと簡単な方法を見つけました。
SHDeleteKey関数です。この関数はサブキーが有っても平気であるようです。
SHDeleteKey - MSDN Libyrary

プロジェクト内のどこかにこれを書けばこのSHDeleteKey関数は使えます。

コード: 全て選択

Declare Function SHDeleteKey Lib "shlwapi.dll" Alias "SHDeleteKeyA" (hKey As HKEY, pszSubKey As BytePtr) As DWord
使い方はRegDeleteKey関数と全く変わりません。

ただしshlwapi.dllの関数ですので,Win 95/NT4ではIE4以上をインストールする必要があります。
(Win 98/2000以上なら標準でIE4以上が入っているので,問題にはなりません)
Win 95/NT4を使う方にはIE4以上を入れるようお願いすることになります。
自分専用プログラムを書くときには全く気にする必要はないであろうことですが。

by rabi » 2006年5月26日(金) 01:37

ご回答有難うございます。

RegEnumKeyEx関数と、いう事ですが、ActiveBasicのHELPを参照しましたが、載っていませんでした。
他のReg関数と同様に普通に使うことが出来るんでしょうか?
または、別に、何か「ワザ」が必要なんでしょうか?

私自身、まだ、ActiveBasic使って間もないもので・・・・。

恐れ入りますが、ご教示願います。m(_ _)m

by イグトランス » 2006年5月26日(金) 00:10

RegEnumKeyEx関数を使えばサブキーの値を列挙できると思います。
これでサブキーを全て削除してから親を削除すればよいのではないでしょうか。
(ただしそれを再帰的に行う必要があるでしょう)

レジストリキーの削除について

by rabi » 2006年5月25日(木) 20:45

レジストリキーの削除方法を教えて下さい。

レジストリの構造は下記の通り
---------------------------------------------------
HKEY_CURRENT_USER - Software - AAAA -???? - ????
                                -???? - ????
                                     - ????
                                     - ????
※????は、キー名、キーの数が不定です。
使用する環境は、WIndows XP Pro
---------------------------------------------------

不要な、「AAAA」配下のレジストリキーを削除したいのですが、
「RegDeleteKey」の場合、「WindowsNT系OSでは、サブキーを持つキーを削除することはできません。」とある為、WindowsXPでは、削除できない・・・・・んですよね??

質問ですが、
WindowsXPでも使用できる、サブキー指定で配下のキーも削除可能な関数、方法があれば教えて下さい。
または、サブキー配下のキー一覧を参照する様な関数、方法があれば教えて下さい。


以上、宜しくお願い致します。m(_ _)m

ページトップ