Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot read Registry entry in C++

I have a registry entry I can't seem to read in C++, but it shows up in Regedit.

Using the following C++ snippet:

openResult=RegOpenKeyEx( HKEY_LOCAL_MACHINE, _TEXT("SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full"), 0, KEY_READ, &root);
readResult1=RegQueryValueEx(root, _TEXT("InstallPath"), NULL, NULL, data1, &size);
readResult2=RegQueryValueEx(root, _TEXT("fake_entry"), NULL, NULL, data2, &size);

I get Error 2, ERROR_FILE_NOT_FOUND for my second RegQueryValueEx() call.

As you can see in the image below, my fake_entry exists.

enter image description here

I created this entry via Regedit.

Microsoft's Registry Keys Affected by WOW64 does not include the location I'm trying to read, and as you can see in the picture below, my fake_entry is not in the Wow6432Node location.

enter image description here

  • Yes, I understand this isn't a registry location I should be changing. I stumbled upon this as I was debugging my code and am curious why my added fake_entry doesn't work.
  • Yes, I've read about Registry Redirector.
  • Yes, I've read this question.
  • Yes, I tried reading fake_entry at SOFTWARE\\Wow6432Node\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full with the same error.

Running Windows 7, 64 bit, C++ in Visual Studio 2010, using ASCII character encoding.

Am I misunderstanding the Registry Redirector? Is there a problem with my code? Are there some sort of permission settings on certain portions of the Registry? I'm obviously missing something. Please point me in the right direction.

like image 777
kmort Avatar asked Oct 20 '25 05:10

kmort


1 Answers

Try

openResult = RegOpenKeyEx( HKEY_LOCAL_MACHINE, _TEXT("SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v4\\Full"), 0, KEY_READ|KEY_WOW64_64KEY, &root);

according to MSDN you should use either KEY_WOW64_64KEY or KEY_WOW64_32KEY for WOW64 access

like image 99
Shahriyar Avatar answered Oct 21 '25 19:10

Shahriyar



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!