Far as I am aware, this had always worked and I can't think why this won't work any longer.
PHP Code:
ReadRegStr $R0 HKLM \
"Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"\
"UninstallString"
MessageBox MB_OK "R0 val: $R0" IDOK # debugging purposes -jw
StrCmp $R0 "" no_remove_uninstaller
On a Vista x64 box, the R0 value is blank, even though there is indeed an entry in the registry at that point.
On WinXP x64, however, the uninstall string doesn't even get populated. That part of the code had always worked and wouldn't had changed. I am not too sure why it stopped working for these two OSes. As it works fine in Win 7 x86/x64 and Win 8 x86/x64.
I am guessing it is something to do with the Wow6432 but why would it work fine in Win 7 and 8 x64?