プロが教えるわが家の防犯対策術!

VC++ で、
SetRegistryKey
関数を用いてレジストリキーへの登録を行っています。

アプリケーション削除時に、
アプリケーションに関するレジストリキーの登録を一括削除するために、
これと逆の操作を行いたいのですが、どのようにすればよいのでしょうか?

読み込み、書き込みの
GetProfileString
WriteProfileString
関数はあるのですが、削除用の関数が見当たりません。

ご存知の方お教えいただけますでしょうか?

A 回答 (3件)

あんまりレジストリいじらないので


自信はないですが、
RegDeleteKey()
RegDeleteValue()
このあたりでは?

見当違いでしたらすみません。

この回答への補足

回答をありがとうございます。
確かに、おっしゃる通りの関数で削除可能なようです。
ありがとうございました。

現在Win2000を使っているのですが、
1つ1つのキーについて、上記の関数を実行しないと削除できないようです。
レジストリエディタで自分で開発したプログラムの項目を見ると、
「HKEY_CURRENT_USER\Software\__my_name__\__software_name__\__dir__\__key__」
のような構成になっているのですが、
ここで、
「__software_name__」
以下をごっそり削除したいと思うのですが、
よい方法をご存知でしたらお教えいただけますと幸いです。

補足日時:2001/05/05 16:06
    • good
    • 0

RegOpenKeyEx()で削除したいキーを開いて


そのハンドルをRegDeleteKey()に渡してやればまとめて消せます。

この回答への補足

回答ありがとうございます。

しかしやはり、具体的な方法が今ひとつわかりません。
「まとめて消せる」というのは、1つ1つ消すのとは異なるのですね。

大変申し訳ないのですが、
「HKEY_CURRENT_USER\Software\__my_name__\__software_name__\__dir__\__key__」
のような構成になっている場合の、 「__software_name__」 一式の削除の仕方をご教授いただけませんでしょうか。

補足日時:2001/05/06 00:05
    • good
    • 0

>HKEY_CURRENT_USER\Software\__my_name__\__software_name__\__dir__\__key__」


>のような構成になっている場合の、 「__software_name__」 一式の削除の仕方をご教授いただけませんでしょうか。

RegOpenKeyExで__my_name__をOpenして、そこでRegDeleteKey()で__software_name__を消せばよかったはずです。
消したいキーのひとつ上のキーを開くはずです。

もちろんOpneするときにアクセスの権限で消せるようにしないとだめですけど。
MSDNにはNTではサブキーを持っていたら消せないと書いてありますね。。。

参考URL:http://www.microsoft.com/JAPAN/developer/library …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!