Tech Support > Microsoft Windows > Development Resources > Can't read some registry entries on WinXP-64bit
Can't read some registry entries on WinXP-64bit
Posted by Phil Tomson on December 29th, 2003


I've got a win32 app that reads registry values to determine if there
is an uninstall for a particular class of programs. It looks in:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall\

Recently, we tried to run this program on Windows XP 64-bit and we
find that certain registry entries are not visible to our app. For
example, we can see:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall\Adobe
Acrobat 5.0

But we can't see:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall\{01A4AEDE
-F219-49A2-B855-16A016EAF9A4}

Basically we can't see any of the entries which have the form:
{********-****-****-****-************}

(we can see them in regedit, but not in our program).

Any ideas? I really want to avoid creating a seperate 64-bit version
of our app if at all possible.

Phil

Posted by Carey Frisch [MVP] on December 29th, 2003


List of Limitations in 64-Bit Windows
http://support.microsoft.com/default...&Product=winxp

Cannot Install Some Programs on Windows XP for 64-bit Platforms
http://support.microsoft.com/default...&Product=winxp

--
Carey Frisch
Microsoft MVP
Windows XP - Shell/User

Be Smart! Protect your PC!
http://www.microsoft.com/security/protect/

---------------------------------------------------------------------------------------------------------

"Phil Tomson" <intc_ctor@yahoo.com> wrote in message:
news:c68ca8f2.0312291013.209d6f49@posting.google.c om...

| I've got a win32 app that reads registry values to determine if there
| is an uninstall for a particular class of programs. It looks in:
| HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall\
|
| Recently, we tried to run this program on Windows XP 64-bit and we
| find that certain registry entries are not visible to our app. For
| example, we can see:
|
| HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall\Adobe
| Acrobat 5.0
|
| But we can't see:
| HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall\{01A4AEDE
| -F219-49A2-B855-16A016EAF9A4}
|
| Basically we can't see any of the entries which have the form:
| {********-****-****-****-************}
|
| (we can see them in regedit, but not in our program).
|
| Any ideas? I really want to avoid creating a seperate 64-bit version
| of our app if at all possible.
|
| Phil

Posted by Phil Tomson on December 29th, 2003



"Carey Frisch [MVP]" <mrxp2004@nospamyahoo.com> wrote in message news:<OTzQOjjzDHA.3900@tk2msftngp13.phx.gbl>...
I don't see anything in that list that seems to be the problem - did
you have a specific one in mind? The only one that looks close is:
"32-bit installer programs cannot load and register 64-bit DLLs."



This seems to apply only to install programs which have some 16bit
code in them still. Not the case here.


Phil

Posted by Raymond Chen on December 30th, 2003


On Win64, the 32-bit emulation layer has its own registry
separate from the 64-bit registry..

http://msdn.microsoft.com/library/en...redirector.asp

But in your specific case, the registry is probably the wrong
thing. The {...} entries are MSI programs. Use MsiEnumProducts to
enumerate the MSI-managed programs on the system.

On 29 Dec 2003 10:13:47 -0800, intc_ctor@yahoo.com (Phil Tomson)
wrote:


Similar Posts