RegOpenKeyExの第4引数がわかればすべてが見えてきた

皆様に謝らないといけないことがございます。

私は、1.2017/02/25のブログ「レジストリキーの最終更新日時取得はRegOpenKeyから」で、RegOpenKeyExは使えないのでRegOpenKeyを使えとぼやきました。
さらに、2.2017/03/04のブログ「なぜか、指示していないWow6432Nodeの方を列挙してしまう」で、RegOpenKeyExがWow6432Nodeにリダイレクトされてしまうとぼやきました。

しかしこれは、そもそもRegOpenKeyExの第4引数の意味が分かっていなかったことが原因でした。これが理解できた時、2つの問題は解決しました。

1.RegOpenKeyExの第4引数の値は常に1だと誤解していたため、正しくOpenしていなかった。
2.RegOpenKeyExの第4引数の値にKEY_WOW64_64KEYのフラグを渡してやればリダイレクトされない。

結論ははこうです。
Const KEY_ENUMERATE_SUB_KEYS = &H8&
Const KEY_WOW64_64KEY = &H100&
RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\UnInstall", 0&, KEY_ENUMERATE_SUB_KEYS Or KEY_WOW64_64KEY, Hensu)
 

軽率な発言を反省しております。
それにしても、奥が深いなあ。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント