中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [原创]DOS下对注册表的编程 上一主题 | 下一主题
dthao
中级用户

LarkSpur


积分 378
发帖 183
注册 2007-9-19
状态 离线
『楼 主』:  [原创]DOS下对注册表的编程

在DOS方式下也能对注册表进行编程?是的。当您的Windows95/98因注册表问题而无法启动到图形界面时,您此时只有在DOS下对注册表进行手术了。因为注册表编辑器Regedit.exe其实是一个双栖型的程序,既可在DOS下运行,也可在Windows95/98下运行。许多用户可能已经知道在Windows下使用Regedit的方法,那么,要掌握DOS方式下对注册表的编程,首先要了解在DOS下如何使用注册表编辑器。

   在DOS提示符下键入Regedit命令,将出现一个帮助屏幕。此屏幕给出了其命令行参数及其使用方法。

   语法: Regedit [/L:system] [/R:user] filename1
         Regedit [/L:system] [/R:user] /C filename2
         Regedit [/L:system] [/R:user] /E filename3 [regpath]
   其中:
           /L:system 指定system.dat文件的存放位置。
           /R:user 指定user.dat文件的存放位置。
           filename1 指定引入注册表数据库的文件名。
             /C filename2 指定形成注册表数据库的文件名。
             /E filename3 指定导出注册表文件的文件名。
           regpath 指定导出注册表文件的开始关键字(缺省为全部关键字)

   现举几个例子说明regedit.exe在DOS下的使用方法。
   【例1】 将系统注册表数据库registry导出到reg1.reg文件中。
  regedit /E reg1.reg
   【例2】 reg1.reg形成系统注册表数据库registry(全部)中。
   regedit /C reg1.reg
   【例3】 将reg.dat引入系统注册表数据库中(部分)。
   regedit reg.dat
   【例4】 将CJH开始的关键字导出注册表数据库,并命名为cjh.reg。  
   regedit /E cjh.reg cjh
   【例5】 指定system/dat存放在D:PWIN中和user.dat存放在E:PWIN中,将reg.dat数据文件形成一个新的注册表数据库registry。
  regedit /L:D:PWIN /R:E:PWIN /C reg.dat

   有了以上这些知识,结合在《对注册表进行编程的“捷径”》里讲过的关于导入或导出的注册表文件(*.REG),我们就可以在DOS方式下对注册表进行编程了。

   我们还是以更改“*.txt”文件的默认打开方式——“记事本”为“写字板”为例。首先在MS-DOS提示符下导出“HKEY_CLASSES_ROOT xtfile”子键这一分支,即执行命令:

  regedit /E txt.reg HKEY_CLASSES_ROOT xtfile

  然后用DOS下的EDIT编辑器打开txt.reg文件进行编辑:将其中所有的“C:\WINDOWS\NOTEPAD.EXE”全部改成“C:\WINDOWS\WRITE.EXE”,存盘退出EDIT,再在命令行下执行命令:

  regedit txt.reg

  便大功告成了。

  当然,严格来说,这并不是编程。如果一定要编程实现的话,我们可以将以上过程写成一批处理文件chang.bat:

   @echo off
   path=c:windows;c:windowscommand;c:dos
   cls
   echo 正在导出注册表……
  regedit /E txt.reg HKEY_CLASSES_ROOT xtfile
   echo.
   echo 注册表导出完毕!按任一键开始编辑注册表……
   echo.
   pause
   edit txt.reg
   echo 正在将修改后的注册表导入……
   regedit txt.reg
   echo 恭喜您!在MS-DOS方式下成功修改了注册表!
   pause
   cls
   @echo on

  充分发挥EDIT编辑器的强大功能,我们可以在遵循导出的注册表文件的格式的前提下,对注册表进行随心所欲的修改、删除或者增加任一子键。如果觉得这还不够程序化,您可以发挥DOS环境下各种程序设计语言的优势,加上交互性的界面,将这一过程真正的程序化,应该丝毫不亚于Windows状态下的利用API函数做出来的效果。有兴趣的朋友可以试一试。

2007-9-25 14:56
查看资料  发送邮件  发短消息 网志  OICQ (854869705)  编辑帖子  回复  引用回复
yqi99
初级用户





积分 108
发帖 51
注册 2007-5-15
状态 离线
『第 2 楼』:  

现在还有几个人用 Windows95/98 哦...

   此帖被 +1 点积分    点击查看详情   
评分人:【 分数: +1  时间:2007-9-27 23:18


2007-9-26 16:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gideon
新手上路





积分 14
发帖 6
注册 2007-9-26
状态 离线
『第 3 楼』:  

好帖!!!

   此帖被 +2 点积分    点击查看详情   
评分人:【 dthao 分数: +2  时间:2007-9-27 21:43


2007-9-26 18:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
dthao
中级用户

LarkSpur


积分 378
发帖 183
注册 2007-9-19
状态 离线
『第 4 楼』:  ?

~~呵呵

2007-9-27 21:40
查看资料  发送邮件  发短消息 网志  OICQ (854869705)  编辑帖子  回复  引用回复
dthao
中级用户

LarkSpur


积分 378
发帖 183
注册 2007-9-19
状态 离线
『第 5 楼』:  

有人用~



海洋遼,佛殿晨鐘敲鳴,喚醒迷津問覺路; 山嶺橫,僧院暮鼓擂振,促修慧業悟空門。         
2007-9-27 21:42
查看资料  发送邮件  发短消息 网志  OICQ (854869705)  编辑帖子  回复  引用回复
cometarsenic
初级用户





积分 45
发帖 23
注册 2007-9-28
状态 离线
『第 6 楼』:  

请教一下,如果是XP系统的注册表~
在DOS下应该怎样操作?

2007-9-28 23:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dthao
中级用户

LarkSpur


积分 378
发帖 183
注册 2007-9-19
状态 离线
『第 7 楼』:  

我介绍一个:http://www.cn-dos.net/forum/atta ... bdca&download=1

2007-9-29 18:11
查看资料  发送邮件  发短消息 网志  OICQ (854869705)  编辑帖子  回复  引用回复
dthao
中级用户

LarkSpur


积分 378
发帖 183
注册 2007-9-19
状态 离线
『第 8 楼』:  

自己看

2007-9-29 18:11
查看资料  发送邮件  发短消息 网志  OICQ (854869705)  编辑帖子  回复  引用回复
dthao
中级用户

LarkSpur


积分 378
发帖 183
注册 2007-9-19
状态 离线
『第 9 楼』:  

或者在DOS提示符下键入Regedit命令,将出现一个帮助屏幕。此屏幕给出了其命令行参数及其使用方法。
  语法: Regedit [/L:system] [/R:user] filename1
 Regedit [/L:system] [/R:user] /C filename2
 Regedit [/L:system] [/R:user] /E filename3 [regpath]
  其中:
 /L:system 指定system.dat文件的存放位置。
  /L:user 指定user.dat文件的存放位置。
   filename1 指定引入注册表数据库的文件名。
  /C filename2 指定形成注册表数据库的文件名。
  /E filename3 指定导出注册表文件的文件名。
  regpath 指定导出注册表文件的开始关键字(缺省为全部关键字)

2007-9-29 18:13
查看资料  发送邮件  发短消息 网志  OICQ (854869705)  编辑帖子  回复  引用回复
nzycx000825
新手上路





积分 12
发帖 6
注册 2007-9-29
状态 离线
『第 10 楼』:  

XP!

2007-9-29 22:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lqcabcd
初级用户





积分 30
发帖 14
注册 2007-6-20
状态 离线
『第 11 楼』:  

应该不单在95/98的系统才可以用的,其他应该也可以吧

2007-9-29 23:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dthao
中级用户

LarkSpur


积分 378
发帖 183
注册 2007-9-19
状态 离线
『第 12 楼』:  

差不多啊

2007-10-6 14:23
查看资料  发送邮件  发短消息 网志  OICQ (854869705)  编辑帖子  回复  引用回复
qingjing
新手上路





积分 10
发帖 4
注册 2007-10-6
状态 离线
『第 13 楼』:  

好东西,谢谢了!

   此帖被 +2 点积分    点击查看详情   
评分人:【 dthao 分数: +2  时间:2007-10-12 14:41


2007-10-7 10:34
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: