Archive: Deleting registry value under HKCU wow6432node


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


I guess no one has encountered this kind of problem before?


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


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?


Any ideas anyone? I have found an alternative solution which is to use AutoIt which would allow me to get around this problem.


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


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


why can't you go after the the redirected path?

SetRegView 64 + "Software\classes\virtualStore\Machine\Software\Wow6432Node\JavaSoft\Prefs\AppName\" ?