iori046420 发表于 2006-10-24 21:09:50

重生の红狼 发表于 2006-10-25 19:23:06

举例来说,如下.


"CheckedValue"="0x00000001 (1)"

我的PC注册表只到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced

子项Hidden没有,可以右键->新建项命名为Hidden->选中刚建的那个项,右键新建项->命名SHOWALL->再选中SHOWALL(刚才才新建的项),右键新建->DWORD值,命名为CheckerValue,建完后双击该键(CheckerValue),在数值数据项添入 1 即可.

不知道是否是你需要的结果.

注:0x表示16进制表示(为区分10进制),学过编程的应该都知道.所以0x00000001只需要输入1.

第2个是用机器码编的,这样做虽然难读但可以提高计算机的执行效率,写成字符型当然也可以.

看下图你就会明白为什么会是用(2)了

注:字符型数据用注册表导出后会自动转为机器码.

iori046420 发表于 2006-10-25 22:56:37

重生の红狼 发表于 2006-10-26 19:34:13

如果以下还有子项的话会自动添加.

如:

Windows Registry Editor Version 5.00




"新值 #1"="asdfff"

以上保存为.REG

假如你的注册表内容

导入该注册表后,就会首先添加

然后添加
"新值 #1"="asdfff"

没有的子项会自动添加,懂了吧.

至于 00 那里,你应该大致可以看出点东西.

25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\         \\
00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,\            \\
6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,25,00,53,\            \\
00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,\               \\      (2)
79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,65,00,6c,00,6c,\            \\
00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,4f,00,70,00,65,00,6e,00,41,00,\               \\
73,00,5f,00,52,00,75,00,6e,00,44,00,4c,00,4c,00,20,00,25,00,31,00,00,00

实际就是%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1的十六进制码,也就是ASCII(国际标准字符规则)->HEX(16进制)

举例来说,你看到的25就是ASCII码的%,00就是.(点)

不知你看懂了没.

漏了几个,关于@="openas".

实际是将第一项 默认 赋值 为openas,就是注册表每项的第一个键.

空则等于没有.

至于开机启动,只要在运行里输入MSCONFIG,在最后启动项里将其前的勾去掉即可.

iori046420 发表于 2006-10-26 22:12:02

重生の红狼 发表于 2006-10-27 12:19:58

点.实际就是分隔符的作用,因为机器码是按照一个一个执行的.

字符串类型的键,因为需要转成机器可以识别的2进制码,所以就要用.来分隔,不分的话机器无法识别.

而2进制的键则无须.分隔,因为机器码本来就是由2进制组成,无须转换直接执行.

注:键的类型可以看小图标.

后面的问题,你可以做试验,将内容写入记事本保存为.reg双击,看看注册表里相应数值是否改变.

你问的问题越来越深了,恕本人能力有限,你还是在网上找些注册表相关资料自己看的好.
页: [1]
查看完整版本: 注册表请教