• 締切済み

レジストリキーの削除方法(VC++6.0)

VC++ で、 SetRegistryKey 関数を用いてレジストリキーへの登録を行っています。 アプリケーション削除時に、 アプリケーションに関するレジストリキーの登録を一括削除するために、 これと逆の操作を行いたいのですが、どのようにすればよいのでしょうか? 読み込み、書き込みの GetProfileString WriteProfileString 関数はあるのですが、削除用の関数が見当たりません。 ご存知の方お教えいただけますでしょうか?

みんなの回答

  • jun_l
  • ベストアンサー率18% (4/22)
回答No.3

>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/jpwinpf/_win32_regdeletekey.htm
  • hanimaro
  • ベストアンサー率44% (22/50)
回答No.2

RegOpenKeyEx()で削除したいキーを開いて そのハンドルをRegDeleteKey()に渡してやればまとめて消せます。

mu_nya
質問者

補足

回答ありがとうございます。 しかしやはり、具体的な方法が今ひとつわかりません。 「まとめて消せる」というのは、1つ1つ消すのとは異なるのですね。 大変申し訳ないのですが、 「HKEY_CURRENT_USER\Software\__my_name__\__software_name__\__dir__\__key__」 のような構成になっている場合の、 「__software_name__」 一式の削除の仕方をご教授いただけませんでしょうか。

noname#5824
noname#5824
回答No.1

あんまりレジストリいじらないので 自信はないですが、 RegDeleteKey() RegDeleteValue() このあたりでは? 見当違いでしたらすみません。

mu_nya
質問者

補足

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

関連するQ&A

  • レジストリキーの削除

    あるセキュリティソフトをアンインストールしました。それでレジストリキーも削除したいのですが、メーカーはレジストリキーの削除は勧めていない、との回答で、具体的なことがわかりません。 削除する場合、レジストリキーのバックアップをデスクトップに作成しておいてから、削除してください、と言われ、とても不安です。 アンインストールしたソフトのレジストリキーを削除して、パソコンに不具合がでることがあるのでしょうか。 また、削除しないほうがいいのでしょうか。

  • レジストリキーを bat で削除したい

    レジストリキーを bat で削除したいのですが、方法はありますでしょうか? regedit /d とかでいけると思っていたのですが、ダメでした。あるいは reg ファイルで登録や変更はできるみたいですが、削除ってできないんでしょうか?

  • 他プログラムの関数実行(C#,VC++.net)

    VC#かVC++.netで作成したプログラムから他のアプリケーションの関数を実行するにはどうしたらよろしいでしょうか? ご存知の方、アドバイスをいただけら幸いです。

  • 【VC++】インストーラーの削除

    VC++2005の.NETでアプリケーションを作成しています。 VC++のプロジェクト追加にて、 新しいプロジェクト⇒セットアッププロジェクト を選択し、「.msi」ファイルをビルド生成して、 インストーラーを作成しました。 このインストーラーを実行し、指定のフォルダにアプリのexeファイルは生成することが出来ました。 しかし、このアプリを実行すると、同階層に設定ファイルが生成されるのですが、 アプリ終了後、「.msi」ファイルを再度実行して、インストールファイルの削除をする際に、 インストールフォルダと、その中に設定ファイルのみ残ってしまう状態となってしまいます。 削除時には、設定ファイルも一緒に削除したいのですが、 削除対象のファイルを指定することはできないのでしょうか? ちなみに設定ファイルの状態として、下記となります。 ・起動時に生成 ・ファイル名は同じ⇒よって生成の度に上書き ・生成場所はexeファイルと同階層

  • VC++を始めるにあたって

    始めまして。今回会社でVC++でMFCアプリケーションのプログラミングの仕事をすることになりました。  現在の私のスペックです。  [0] 今年入社、毎日プログラムの学習をしてます。  [1] 経験したプログラム   [1-1] C 学生時代、授業で基礎のみ   [1-2] JAVA 同じく授業で基礎のみ   [1-3] VC# 10日で覚えるVC#.netと言う本で学習中    VC++自体始めてなので、関数や書き方も理解してなくて、何から勉強したらいいのか分かりません。 いい勉強方法があれば教えてください。 また参考になるHPや参考書もあれば教えてください。 以上です。お願いします。

  • VC++6.0 でのライブラリ参照方法

    調べてはいるのですが、いまいち理解できないので以下の事を教えて下さい。 VC++6.0 のWin32 Console Applicationで、今回あるパッケージのdllを参照して使いたいと考えていますが、うまくいきません。 プロジェクト追加から、~.dllを追加して関数を使ってみたのですが、「error LNK2001: 外部シンボル "_関数名" は未解決ですとエラーがでます。 Console Applicationからはリンクできないのでしょうか? 何度も簡単な事で質問してしまい申し訳ありません。

  • VC++2010 最小化のアイコン 無効の方法

    VC++2010 最小化のアイコン 無効の方法について質問があります。 現在、VC++2010 のMFCアプリケーションを作成しようとしています。 最初のアプリケーション作成の設定で最小化アイコンを有にしてしまいました。 そこで質問なんですが、どうやったら 最小化アイコンを削除(押せない状態、無効状態)できますか? よろしくお願いします。

  • ウィルスバスター2006のレジストリキーを教えてください。

    質問No.2389423で質問したものですが、 回答者の方たちのアドバイスにしたがって いろいろやってみたのですが、うまくいきません。 それで、最後の手段として、レジストリから VB2006の関連ファイルを直接削除してみたいのですが、 VB2006のレジストリキーがわかりませんので、 教えてください。

  • 難しいノートン2004の削除方法、について。

    現在インストールされている【ノートン2004】を完全にアンインストールしたいのです。 そうしないと、また別のウイルスソフトをインストールしようとしても、うまくいかない場合がある、 ということですから。 友達は、「アプリケーションの追加と削除からノートンを選んでOKすればそれで済むじゃない。」 と軽く言ってましたが、それでいいですか?。そんなに簡単にアンインストールできるのでしょうか。 ここOKWebの質問をいろいろ見させていただきましたが。 ノートンの場合、システムの内部奥深くを書き換えており、普通のコントロールパネルからのやり方では 元に戻らない。表面的に削除されている様に見えても実際にはPC内部的には残っている。 だからその後のインストールなどがうまくいかない可能性が高くなる。 ・・・とのことでした。やっぱり・・・ ノートンを完全に削除する方法ですが。シマンテックサポートサイトを見ると。 「ノートンに関係するレジストリキーやフォルダの削除をする」 ということでした。 ・・レジストリキー?それって何?・・・どこにあるんでしょう・・ フォルダはどこ?どこをどうすれば削除できるの?って感じです。(^^;)Help Me~! もう少し初心者向けの説明をお願いしたいのですが。 よろしくお願いします。m(_ _)m ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 僕のパソコンは。Windows98です。 

  • VC2005で作成したDLLファイルをVC2008で動的リンク(LoadLibrary)する方法

    「VC2005 Standard Edition」で作成したDLLファイルを、 「VC2008 Express Edition」で作成したコンソールアプリケーション から、LoadLibrary("VC2005で作成したDLLファイル")すると 失敗してしまいます。 GetLastErrorでエラーを取得すると、"36B1"が表示されます。 (このエラーは何か調べても見つかりませんでした) 何が原因かご存知の方がいらっしゃいましたら、 ご教授頂けませんでしょうか。