How to check a registry's data?

Posted on 2000-05-15
Last Modified: 2009-12-16
How can I check the content of the registry key I have created?

I have tried using "RegQueryValueKeyEx"
but can seems to work. Registry is not updated..

Any idea why?
Question by:raymondwee
  • 4
  • 3

Expert Comment

ID: 2810196
Please paste the code that you use to access the registry, or how can we know what happen.

Accepted Solution

xutao earned 50 total points
ID: 2810220
The RegSetValueEx function sets the data and type of a specified value under a registry key.

LONG RegSetValueEx(
  HKEY hKey,           // handle to key
  LPCTSTR lpValueName, // value name
  DWORD Reserved,      // reserved
  DWORD dwType,        // value type
  CONST BYTE *lpData,  // value data
  DWORD cbData         // size of value data

The RegQueryValueEx function retrieves the type and data for a specified value name associated with an open registry key.

LONG RegQueryValueEx(
  HKEY hKey,            // handle to key
  LPCTSTR lpValueName,  // value name
  LPDWORD lpReserved,   // reserved
  LPDWORD lpType,       // type buffer
  LPBYTE lpData,        // data buffer
  LPDWORD lpcbData      // size of data buffer

And check the return value when you open or create a registry key.Notice: if you use null-terminated string containing the name of the subkey, double slash(\\) is needed.

Author Comment

ID: 2811075
My test application for registry manipulation is as attached below. Some of those codes are for debugging purposes.

                HKEY hKeyResult = 0;
      HKEY hKey = 0;
      DWORD dwDisposition = 0;
      char initial_value[2] = "0";
      char Reg_value[10] = "";
      DWORD Value = 0;
      DWORD value = 0;
      long CreateResult = RegCreateKeyEx(HKEY_CLASSES_ROOT,"Test",0,"",REG_OPTION_VOLATILE,KEY_ALL_ACCESS,NULL,&hKeyResult,&dwDisposition);
if(CreateResult != ERROR_SUCCESS)

      long OpenResult = RegOpenKeyEx(HKEY_CLASSES_ROOT,"Test",0,KEY_QUERY_VALUE,&hKey);

      long SetResult = RegSetValue(hKeyResult,NULL,REG_SZ,"8",1);


      value = atol(Reg_value) + 1;

      SetResult = RegSetValue(hKeyResult,NULL,REG_SZ,Reg_value,1);

      if(SetResult != ERROR_SUCCESS)

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.


Expert Comment

ID: 2812729
Add Value = sizeof(Reg_value) before RegQueryValueEx.

Expert Comment

ID: 2812731
long SetResult = RegSetValue(hKeyResult,NULL,REG_SZ,"8",1);

//////// Add this

Value = sizeof(Reg_value);


you'd better check the return value of RegQueryValueEx, it can tell why the function failed.

Author Comment

ID: 2812861
Thanks xutao and yz for your answers.

I can update the registry now.

yz, why does it work if the Value = sizeof(....) is added before the Query...

Pls email me at

Thanks again.

Expert Comment

ID: 2820699
Paste a part of the description of the RegQueryValueEx from MSDN below.
[in/out] Pointer to a variable that specifies the size, in bytes, of the buffer pointed to by the lpData parameter. When the function returns, this variable contains the size of the data copied to lpData.
notice the variable lpcbData is [in/out], it means you should give is a exectly value when call the function, if need, the function will give you back a new value.

Author Comment

ID: 2821001
thx again

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Lambda for random numbers problem 7 117
Embarcadero C++ Builder XE2 TDateTime 8 75
Exception thrown at 0x00007FFD5BC81F28 7 49
Android development question 2 54
Errors will happen. It is a fact of life for the programmer. How and when errors are detected have a great impact on quality and cost of a product. It is better to detect errors at compile time, when possible and practical. Errors that make their wa…
Container Orchestration platforms empower organizations to scale their apps at an exceptional rate. This is the reason numerous innovation-driven companies are moving apps to an appropriated datacenter wide platform that empowers them to scale at a …
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.

832 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question