对注册表主键的认识

最近终于搞明白了注册表,我们都知道注册表预定义的主键有五个,分别是

HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIGH
KEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS

其实注册表就是由一些hive文件组成的,查看注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist,我的是这样

其实五个主键只有HKEY_LOCAL_MACHINE和HKEY_USERS才是真实存在的,我们在注册表编辑器中在这两个主键上新建子项会发现根本不行,因为SAM、SECURITY、SOFTWARE、SYSTEM等子项都是从hive文件加载而来的。

HKEY_CLASSES_ROOT主键其实就是由“HKEY_LOCAL_MACHINE\SOFTWARE\Classes”映射而来,HKEY_CURRENT_CONFIGH是由“HKEY_USERS\当前用户的SID”映射而来,HKEY_CURRENT_CONFIGH主键是由“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001”映射而来。

比如我们在HKEY_CLASSES_ROOT新建子项,其实就是在“HKEY_LOCAL_MACHINE\SOFTWARE\Classes”新建子项,我们编辑HKEY_CLASSES_ROOT的内容其实就是在编辑“HKEY_LOCAL_MACHINE\SOFTWARE\Classes”的内容。

 

我们用注册表编辑器导出注册表其中一个子项,保存类型选择注册表配置单元文件,注册表配置单元文件其实就是hive文件,我们保存为C:\Demo.sav。现在我们想把Demo.sav加载到注册表中HKEY_LOCAL_MACHINE主键下,并且子项名叫做Demo,我们可以这样做。

RegLoadKey(HKEY_LOCAL_MACHINE, "Demo", "C:\\Demo.sav");//需要启用SE_RESTORE_NAME和SE_BACKUP_NAME特权

这样Demo.sav的内容就加载到“HKEY_LOCAL_MACHINE\Demo”下,我们可以像编辑SOFTWARE、SYSTEM子项一样编辑Demo子项,“C:\Demo.sav”的内容和大小将随Demo子项的内容而改变,然后我们想卸载该子项可以这样做。

RegUnLoadKey(HKEY_LOCAL_MACHINE, "Demo");//需要启用SE_RESTORE_NAME和SE_BACKUP_NAME特权

 

聪明的朋友肯定想到了,如果想让Demo从一开机就加载到HKEY_LOCAL_MACHINE下可以修改注册表,在“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist”下新建REG_SZ类型的值名为“\REGISTRY\MACHINE\Demo”或者“\REGISTRY\USER\Demo”(表示加载到HKEY_USERS主键下),值为“\Device\HarddiskVolume1\Demo.sav”(表示C盘下的Demo.sav文件)。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值