EMU618社区

 找回密码
 立即注册
搜索
查看: 2961|回复: 5

[求助] 注册表请教

[复制链接]
头像被屏蔽

该用户从未签到

发表于 2006-10-24 21:09:50 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

签到天数: 1 天

[LV.1]初来乍到

发表于 2006-10-25 19:23:06 | 显示全部楼层
举例来说,如下.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]
"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)了

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
头像被屏蔽

该用户从未签到

 楼主| 发表于 2006-10-25 22:56:37 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

签到天数: 1 天

[LV.1]初来乍到

发表于 2006-10-26 19:34:13 | 显示全部楼层
如果以下还有子项的话会自动添加.

如:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\abc]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\abc\def]
"新值 #1"="asdfff"

以上保存为.REG

假如你的注册表内容[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden]

导入该注册表后,就会首先添加[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\abc]

然后添加[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\abc\def]
"新值 #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,在最后启动项里将其前的勾去掉即可.
头像被屏蔽

该用户从未签到

 楼主| 发表于 2006-10-26 22:12:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

签到天数: 1 天

[LV.1]初来乍到

发表于 2006-10-27 12:19:58 | 显示全部楼层
点.实际就是分隔符的作用,因为机器码是按照一个一个执行的.

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

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

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

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

你问的问题越来越深了,恕本人能力有限,你还是在网上找些注册表相关资料自己看的好.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|国治模拟精品屋 ( 沪ICP备15012945号-1 )

GMT+8, 2024-11-26 21:00 , Processed in 1.092773 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表