- 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: