mustafacity
4th May 2009 13:37 UTC
Deleting registry value under HKCU wow6432node
Hi,
I am having trouble trying to delete a registry entry at the following location on Vista 64 bit:
HKEY_CURRENT_USER\Software\classes\virtualStore\Machine\Software\Wow6432Node\JavaSoft\Prefs\AppName\
I have already tried to use SetRegValue 32 in order to try to delete the key, but having no luck could someone share some light or provide me with some help as to how can I delete a registry value at this location?
Many thanks in advance
Musafa
mustafacity
4th May 2009 15:11 UTC
I guess no one has encountered this kind of problem before?
Anders
4th May 2009 15:14 UTC
do you have RequestExecutionLevel in your script? Vista will not redirect to the virtualstore if you have a "vista manifest"
You could use Process Monitor from sysinternals to see where the problem is, with the virtualStore or Wow6432Node part of the path
mustafacity
4th May 2009 15:34 UTC
Hi Anders,
Many thanks for replying.
The problem is that these registry entries are not actually inserted by the nsi script. They get inserted from the Java code. Hence, I was looking for a way of deleting a registry value within that location. Is there no way to make nsis script to see the full registry location that way I can put in the full path to the key?
mustafacity
4th May 2009 18:14 UTC
Any ideas anyone? I have found an alternative solution which is to use AutoIt which would allow me to get around this problem.
mustafacity
5th May 2009 10:00 UTC
I realise I may not have explained this well. I am trying to remove the effects of VirtualStore on a 64-bit PC running 32-bit processes.
I have a piece of legacy software which wrote to the system registry and was virtualised to a user registry location within HKCU "Software\Classes\VirtualStore\MACHINE\SOFTWARE\wow6432node".
I want to erase this. But whenever I try to write/delete registry entries using this full path, I get values appearing/deleting in a different place, and the above location remains unchanged.
Place I'm trying to write/delete:
HKCU "Software\Classes\VirtualStore\MACHINE\SOFTWARE\wow6432node"
Places I get (depending on SetRegView 32):
HKCU "Software\Classes\"
HKCU "Software\classes\wow6432Node\"
Places I get (depending on SetRegView 64):
HKCU "Software\classes\virtualstore\machine\software\"
HKCU "Software\classes\wow6432Node\virtualStore\machine\software\"
Is there any way of enabling "raw" access to the exact registry path I am specifying, without any of this "VirtualStore" and "Wow6432Node" messing about Windows is doing for me within the user registry? Or is this a bug in NSIS?
Thanks
Afrow UK
5th May 2009 10:57 UTC
If the legacy application was redirected to that registry location then why can't your NSIS script just delete from the original registry path?
I assume it would just be:
HKEY_CURRENT_USER\Software\JavaSoft\Prefs\AppName\
Sorry if I do not have this correct.
Stu
Anders
5th May 2009 15:55 UTC
why can't you go after the the redirected path?
SetRegView 64 + "Software\classes\virtualStore\Machine\Software\Wow6432Node\JavaSoft\Prefs\AppName\" ?