Hidden Registry Keys

Well, it took me few hours to get around this one!.

This is a TIP (not a question) for all developers who wonder why the registry setting/details written under HKLM\Software cannot be seen while the developed application still able to access it when migrating the APP from XP into VISTA/7

On Windows XP, when I wrote my application, I created a key under "HKLM\Software\Newhex Technologies\....." for my application, however, when I deployed this into a VISTA / Windows 7 system, the applicatoin can still access and see the data, but I still can't see it when using RegEdit !.

I checked the hidden value keys etc, read a dozen articles about Hidden keys etc and almost thought it's a bug in the RegEdit program. However;

Aparently there is a new "feature" developed by Microsoft on VISTA and onwards, whereas the HKLM key is "Virtualized" !,... and the values are physically stored under "HKCU\Softwate\Classes\VirtualStore\Machine\Software\Newhex Technologies" !.

When my application wanted to access "HKLM\Software\Newhex Technologies\..." it was accessing the above key under HKCU which then was being Virtualized into the HKLM.

Now, to workaround this problem, you need to take the following steps:

1) Access RegEdit
2) Check the permissions under HKLM\Software\YOUR_KEY and allow your user full access.
3) Goto DOS
4) type in: "REG FLAGS HKLM\SOFTWARE\YOUR_KEY SET DONT_VIRTUALIZE /s
5) (Up to this stage, your applicaion should start accessing the Key under HKLM, however, you need to remove the Virtual key now):
6) Remove the Virtual Key under HKCU\Software\Classes\VirtualStore\MACHINE\YOUR_KEY

That's it, all should work as it should from it's own place. 

i.e. There is NO hidden keys., more info can be read under:

http://msdn.microsoft.com/en-us/library/aa965884(VS.85).aspx


I hope you find this useful.



U are probably using x64 version, same as I am, RIGHT???

for some reason there must be 2 sections of the registry, 64 bit and a 32 bit.
Why it takes 2 different programs to view them is an MS secret.
look here
C:\Windows\SysWOW64 and run "REGEDIT.EXE"

REGEDIT32.EXE is duplicated in this folder and SYSTEM32
REGEDIT.EXE will show u different entries than "REGEDIT32.EXE"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值