社区
C语言
帖子详情
如何实现用C对注册表进行读写操作啊,请高手祥解一下
贝壳鱼
2003-12-27 11:09:45
如题
...全文
158
5
打赏
收藏
如何实现用C对注册表进行读写操作啊,请高手祥解一下
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
flyforlove
2003-12-27
打赏
举报
回复
可以用程序执行外部程序对注册表进行操作
注册表编辑器不仅可以在Windows下运行使用,还可以在MS-DOS命令行模式下运行。注意,这里说的“MS-DOS”指的是纯MS-DOS,不是在Windows下运行的仿真MS-DOS模式,你可以在启动时按F8键,在出现的启动菜单中选择“Command prompt only”模式,或者在Windows下从“开始”菜单中选择“关闭系统”,然后选择“重新启动计算机并切换到MS-DOS方式”即可进入纯MS-DOS。
MS-DOS下注册表编辑器虽然没有Windows下那样强大,但也有它的独到之处。比如当系统出现问题无法启动Windows的时候,它的作用就体现出来了。首先说明一下,注册表的实际物理文件为System.dat和User.dat,也就说注册表中的数据保存在这两个文件中。明白了这一点之后,下面让我们来看看MS-DOS下的注册表编辑器到底有哪些作用。
1、导出注册表文件
此功能可以用来对注册表文件做个备份。
命令格式:
Regedit /L:system /R:user /E filename.reg Regpath
参数详解:
/L:system指定system.dat文件所在的路径。
/R:user指定user.dat文件所在的路径。
/E:此参数指定注册表编辑器要进行导出注册表操作,在此参数后面空一格,输入导出注册表的文件名。
Regpath指定要导出哪个注册表的分支,如果不指定,则将导出全部注册表分支。
注意事项:
/L:system和/R:user参数为可选项,如果缺省,那么注册表编辑器认为是对Windows目录下的system.dat和User.dat进行操作。但是如果你从软盘开始启动,那么必须使用/L和/R参数来指定System.dat和User.dat文件的具体路径,否则注册表编辑器将无法找到它们。
举例说明:
如果将保存在C:\Windows\System.dat和保存在 C:\Windows\Profiles\User.dat 中所有HKEY_CLASSER_ROOT根键下的分支导出到file.reg中,命令如下:
Regedit /L:C:\Windows\ /R:C\Windows\Profiles\ /e file1.reg HKEY_CLASSER_ROOT
大多数情况,我们只是需要导出默认目录下的所有注册表项目,命令格式:Regedit /e Allfile.reg
2、导入注册表文件
将指定的注册表文件导入注册表中,并新建或覆盖这些导入的子键分支、键值项和键值。
命令格式:
Regedit /L:system /R:user file.reg
参数详解:
/L:system指定system.dat文件所在的路径。
/R:user指定user.dat文件所在的路径。
注意事项:
导入注册表和导出注册表在参数上有所不同,它仅仅需要指定被导入的.reg文件的路径即可,而不需要像“/E”、“/C”这样的参数。
举例说明:
如果将上一个例子中导出的file1.reg中的内容导入到C:\Windows\System.dat和C:\Windows\Profiles\User.dat中,命令如下:Regedit /L:C:\Windows\ /R:C:\Windows\Profile\ file1.reg
3、重建注册表
可以用指定的.reg文件中的内容,重新建立整个注册表,即重新建立System.dat和User.dat文件。
命令格式:
Regedit /L:system /R:user /C file.reg
参数详解:
/L:system指定system.dat文件所在的路径。
/R:user指定user.dat文件所在的路径。
/C:此参数将告诉注册表编辑器,用所指定的.reg文件中的内容重新建立注册表。
注意事项:
参数/C是个危险选项,它将会导入指定注册表文件的全部内容,从头到尾开始创建一个新的注册表。
举例说明:
如果我们要用file1.reg文件中的内容重新建立整个注册表,并将其保存到C:\Windows\System.dat和C:\Windows\Profiles\User.dat中,命令如下:
Regedit /L:C:\Windows\ /R:C:\Windows\Profiles\ /C file1.reg
4、删除注册表分支
此命令可以将注册表中的一个子键分支删除。
命令格式:
Regedit /L:system /R:user /D REGPATH
参数详解:
/L:system指定system.dat文件所在的路径。
/R:user指定user.dat文件所在的路径。
/C:此参数告诉注册表编辑器,将REGPATH所指定的注册表子键分支删除。
注意事项:
参数/C将删除指定子键下所包含的所有内容,包括所有子键、键值项和键值。
举例说明:
如果我们要将注册表中的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrenVersion\Run分支删除,命令如下:Regedit /L:C:\Windows\ /R:C:\Windows\Profiles\ /D HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrenVersion\Run
5、注册表检查器
MS_DOS下的注册表检查器Scanreg.exe可以用来备份及恢复注册表。
命令格式:
Scanreg /backup /restore /comment /fix
参数详解:
/backup用来立即备份注册表
/restore按照备份的时间以及日期显示所有的备份文件
/comment在/restore中显示同备份文件有关的部分
/fix修复注册表文件的错误
注意事项:
在显示备份的注册表文件时,压缩备份的文件以.CAB文件列出,CAB文件的后面单词是Started或者是NotStarted,Started表示这个文件能够成功启动Windows,是一个完好的备份文件,NotStarted表示文件没有被用来启动Windows,所以不知道是否是一个完好备份。
举例说明:
如果我们要查看所有的备份文件及同备份有关的部分,命令如下:Scanreg /restore /comment
如果注册表有问题,也可以用Scanreg来修复,命令如下:Scanreg /fix
lucia_wfq
2003-12-27
打赏
举报
回复
好高深的问题啊!果然是高手!
FoxMale007
2003-12-27
打赏
举报
回复
分析注册表文件的结构就可以了嘛,只要你不停地分,不断地分,总有一天可以分出来的。因为至少注册表数据没有被加密。我就尝试过取注册表的文本数据过,在98下。
但是不想啊,太耗时,分了也没工资:)
wmzlq
2003-12-27
打赏
举报
回复
嗯,要用到API的,你在MSDN中选择Index,然后输入reg,就会列出你想要的API函数,比较多,你慢慢找好了.
liyufeng1983
2003-12-27
打赏
举报
回复
需要利用api编程实现/
易语言
注册表
数值读写
在易语言中,对
注册表
的数值读写是常见的操作,这对于程序的配置存储、系统设置管理等场景非常关键。
注册表
是Windows操作系统中的一个重要数据库,它存储了系统的各种配置信息和应用程序的数据。 易语言
注册表
数值...
vb读写
注册表
_vb读写
注册表
_
在VB(Visual Basic)编程环境中,读写
注册表
是一项常见的任务...此外,对
注册表
的操作要谨慎,错误的修改可能导致系统不稳定或应用程序运行异常。因此,在编写和测试这类代码时,一定要做好备份,并在受控环境下
进行
。
C#演示
注册表
的
读写操作
C#演示
注册表
的
读写操作
,程序中引入了using Microsoft.Win32; 主要是对
注册表
的操作要用到Registry和RegistryKey两个类,写入
注册表
:以可写的方式打开SOFTWARE子键,依次创建ChoseColor子键和Color子键。读取...
C++ 操作
注册表
读写
这个一个C++ 使用Windows API 操作
注册表
的代码,
注册表
操作包括:创建
注册表
、写入
注册表
、查询
注册表
;写入
注册表
的过程包括:打开
注册表
、读取
注册表
、关闭
注册表
;查询的过程包括:打开
注册表
、查询
注册表
、关闭...
易语言
注册表
数值读写源码
在易语言中,我们可以通过特定的语句和函数来操作
注册表
,
实现
对
注册表
数值的读取和写入。
注册表
是Windows操作系统中的一个重要数据库,存储了系统和应用程序的各种配置信息,因此掌握
注册表
的读写技术对于程序开发...
C语言
70,037
社区成员
243,243
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章