レジストリのアンインストール情報に登録されているアプリケーションをすべて取得するには?

解決


どら  2005-01-20 21:45:46  No: 56082

またまた申し訳ないです・・・。
簡単に言うと、レジストリのアンインストール情報から、インストールされているアプリケーション名とバージョンの一覧を取得したいと考えています。

自分の中では
    1.レジストリの
            
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
        以下にあるサブキーをすべて取得
    2.取得したサブキー以下のDisplayName、DisplayVersionを取得(ない物は無視)
といった手順かな〜と考えているのですが・・・
1のように、不特定多数のサブキーを取得する方法ってあるのでしょうか?

普通にキーを取得して、文字列を返す事はできたのですが・・・

ちなみに、Windowsは2000またはXPで、開発環境はVisual Studio .NETです。

よろしくお願いいたします。


YuO  2005-01-20 22:01:14  No: 56083

RegEnumKeyExなどが使えるかと。


どら  2005-01-21 00:28:42  No: 56084

YuOさん

お久しぶりです。
早速の回答、ありがとうございます。

試しに

HKEY hKey;
char CurrentSubKey[256];
FILETIME ft;
int n = 0;

RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", 0, KEY_READ, &hKey);
RegEnumKeyEx(hKey, n, CurrentSubKey, lpcName, NULL, NULL, NULL, &ft);

自作関数(指定したキーの価を取得);

n++;

という流れでループをかけようと思っているのですが・・・。
単発で行おうとしたとき、RegOpenKeyExで止まってしまう(DebugModeでここで止められてしまいます)。

正直なにが悪いのやら・・・まるでわかっておりません・・・。
もしご存じでしたらご教授いただけますでしょうか?

よろしくお願いいたします。


どら  2005-01-21 02:10:07  No: 56085

すんません、自己解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加