I'm stumped on a windows 7 registry problem and while various questions and answers get me some of the way there, nothings I've seen addresses my particular issue. I don't know if other windows versions affects this problem, but we all have win7x64 machines.
We have a wide variety of tools at our work, some C++, some C#, some python (2.6), etc. We also run a mix of 32 and 64 bit tools. In the past, we've happily stored registry information in HKLM. We've been working on moving stuff into HKCU. We've had a lot of discussions about whether to do this, affects on UAC, etc. We really want to try and make this move. That said:
We are having trouble reading/writing registry keys out of HKCU/software/CompanyABC/App. We have a setup app write in python that writes out registry keys to the above location using _winreg. Whether or not we specify KEY_WRITE|KEY_WOW64_32KEY or just KEY_WRITE, the values get written to HKCU/Software/WOW6432Node/companyABC/app. Fine.
Then I have a C# app that tries to read these values. Using Microsoft.Win32.Registry, I open the subkey ('HKCU/Software/CompanyABC/app') and I don't see my values. Turns out that I'm seeing the following behavior:
- When reading/writing registry keys from
HKLM, this stuff all just works. The python app will write toHKLM/Softare/Wow6432Node/CompanyABC/app, and the C# code will read from that location. This all makes proper sense too, given how we are building our C# apps, and writing the registry values via python - Reading/writing the registry values from HKCU, I get different behavior. The
_winregfunctions will write toHKCU/Sofrware/Wow6432Node/CompanyABC/app, but the C# app will read fromHKCU/Software/CompanyABC/app. The C# app is built as an x86 app (not Any CP