掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
レジストリのサブキーの列挙 (ID:57513)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんにちは。早速質問です。 僕は、今、パソコンにインストールされているプログラム名を列挙して、 テキストファイルに保存するプログラムを作っているんですが、 プログラムを列挙するところでつまずいています。 その部分のプログラムを載せます。 見にくいかもしれませんが、よろしくお願いします。 char Subkey[1024]; ULONG regflag; HKEY hRegkey,hRegkey2; BYTE *data; DWORD datasize, buf = sizeof(Subkey), index=0; RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall", 0, KEY_READ,&hRegkey); for(;;index++) { regf = RegEnumKeyEx(hRegkey, index, Subkey, &buf, NULL,NULL,NULL,NULL); if(regf == ERROR_NO_MORE_ITEMS) { MessageBox(hwndp,reinterpret_cast<const char *> (Subkey),"test",MB_OK); break; } else if(regf == ERROR_SUCCESS) { RegOpenKeyEx(hRegkey, Subkey, 0, KEY_EXECUTE|KEY_READ, &hRegkey2); MessageBox(hwndp,"OK","test",MB_OK); if( RegQueryValueEx(hRegkey2, "DisplayName", NULL,NULL,NULL, &datasize) == ERROR_SUCCESS && RegQueryValueEx(hRegkey2,"UninstallString", NULL,NULL,NULL,NULL) == ERROR_SUCCESS ) { data = (BYTE *) malloc(datasize); RegQueryValueEx(hRegkey2,"DisplayName", NULL,NULL, data, &datasize); SendMessage(g_hlist_print, LB_ADDSTRING, 0, (LPARAM)reinterpret_cast<const char *>(data)); } } } RegCloseKey(hRegkey); RegCloseKey(hRegkey2); 僕のパソコンではこれを実行すると、 OKが3回出て、4回目に「ICW」が出て、ループが終了するみたいです。 なぜか、サブキーを全部見ていないのに、ERROR_NO_MORE_ITEMSが 出てくるのが問題だと思うんですが…。 どなたかご回答をお願い致します。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.