I am having to interact with More x64 systems, XP64 and VISTA and have unearthed a very frustrating problem I am hoping someone can help me with... As a pre-install check for an application installer I need to check in this example whether .NET 3.5 SP1 is present.
On 32bit no problem, on 64bit neither KEYEXIST nor READVALUE returns what is expected... e.g.
IF keyexist("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{CE2CDD62-0124-36CA-84D3-9F4DCF5C5BD9}")=0
or
If InStr(ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{CE2CDD62-0124-36CA-84D3-9F4DCF5C5BD9}","DisplayName"),'3.5')=0
then Not installed...
I am assuming it is some type of security setting but I have no clue how to circumvent it !
Suggestions Welcome. Currently I have to bypass the check on x64 !!
|