This is nothing to do with Delphi. This is all about Windows, and specifically the WOW64 emulator that runs 32 bit processes on 64 bit Windows.
A 32 bit process, running under WOW64 on a 64 bit machine is presented with the 32 bit view of certain registry keys. This is handled transparently by the registry redirector. Do follow that MSDN link to learn more about the redirector, and take special heed of the section that tells you never to access Wow6432Node directly.
You can see into different views of the registry like this:
- A 32 bit process can access the 64 bit registry view using the
KEY_WOW64_64KEY
flag. - A 64 bit process can access the 32 bit registry view using the
KEY_WOW64_32KEY
flag.
This is covered in more detail on MSDN: Accessing an Alternate Registry View.
In Delphi, you can specify these flags when creating an instance of TRegistry
, or through the Access
property.