在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文件的存放位置。
  /L: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:\PWIN /R:E:\PWIN /C reg.dat

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

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

  regedit /E txt.reg HKEY_CLASSES_ROOT\txtfile

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

  regedit txt.reg

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

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

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

(0)

相关推荐

  • bat与注册表操作的方法分析 原创

    bat(批处理)操作注册表的方法,我知道的应该有两种1,结合用reg.exe实现读写注册表2,用bat输出文件,然后regedit /s 1.reg 这样的格式来实现 输出vbs等都是这种 echo cmd.exe /k dir c: > c:\windows\system32\1.bat reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "test" /d "c:\win

  • 批处理操作注册表完全攻略(读取注册表/写入注册表等)

    一,批处理生成.Reg文件操作注册表 用批处理中的重定向符号可以轻松地生成.reg文件.然后用命令执行.reg文件即可! 这里,着重要了解.reg文件操作注册表的方法. 首先.reg文件首行必须是:Windows Registry Editor Version 5.00.然后才是操作注册表的内容. (就和从注册表中导出的文件格式一致) 1,创建子项 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\TTT] 在HK

  • DOS下对注册表的编程的方法

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

  • 用bat操作注册表实现不显示扩展名

    reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t reg_dword /d 00000001 /f

  • 在DOS方式下对注册表进行操作的代码

    因为注册表编辑器Regedit.exe其实是一个双栖型的程序,既可在DOS下运行,也可在Windows95/98下运行.许多用户可能已经知道在Windows下使用Regedit的方法,那么,要掌握DOS方式下对注册表的编程,首先要了解在DOS下如何使用注册表编辑器. 在DOS提示符下键入Regedit命令,将出现一个帮助屏幕.此屏幕给出了其命令行参数及其使用方法. 语法: Regedit [/L:system] [/R:user] filename1 Regedit [/L:system] [/

  • 在DOS下使用注册表扫描程序

    从windows98之后,windows系统加入了对注册表的管理程序,该程序有两个版本,scanregw.exe工作在windows环境中,Scanreg.exe工作在dos环境.并用一个Scanreg.ini文件与之辅助.介绍该程序For windows版本的文章很多,朋友们可以自己查找参阅.这里仅介绍如何在dos下使用Scanreg.exe程序. 由于程序是在dos模式下工作.因此,尽管你的操作系统是中文版的windows,这时出现的也是英文字符界面.程序操作是由命令行和一些选项开关组成.命

  • regini dos下更改注册表权限的工具

    这个玩意主要用途是 在cmd下 修改注册表 以及 注册表权限! 用法研究了一晚上 弄出来了 ,微软上写的 根本不能用啊 郁闷.. 使用方法 C:\>regini regset.ini 就行啦 regset.ini 是你要修改的数据 下面举例! regset.ini 文件内容 引用: 复制代码 代码如下: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run test = c:\windows\system32\fuckt

  • Windows下利用注册表的小技巧

    作者:高山 一,WIX9X下防止匿名用户登录 虽然"WIN9X"可以为每个用户定制各自的使用界面并指定口令,但任何人都能通过点击登录窗口中的"取消"或按"ESC"键进入系统,即所谓匿名登录.下述方法可以防止匿名用户登录:在"开始"菜单中选择"运行"命令,在弹出的"运行"命令对话框中键入"regedit"命令,按Enter.打开"注册表编辑器". 在

  • C#读写注册表的思路及代码

    NET框架在Microsoft.Win32名字空间中提供了两个类来操作注册表:Registry和RegistryKey.这两个类都是密封类不允许被继承.下面我们分别来介绍这两个类.Registry类提供了7个公共的静态域,分别代表7个基本主键(其中两个在XP系统中没有)分别是:  Registry.ClassesRoot 对应于HKEY_CLASSES_ROOT主键 Registry.CurrentUser 对应于HKEY_CURRENT_USER主键 Registry.LocalMachine

  • C/C++读写注册表中二进制数据(代码示例)

    1.RegOpenKeyEx 函数: 原形: LONG RegOpenKeyEx(               HKEY hKey,     // 要打开主键名               LPCTSTR lpSubKey, // 需要打开的子键或路径               DWORD ulOptions,  // 保留,为0              REGSAM samDesired, // 操作权限标志               PHKEY phkResult  // 指向你打开键

  • 用注册表更改DNS的代码分享

    最进我这里DNS老是间歇性掉,很不稳定,广州地区,如果你的DNS经常需要更换,试试这个批处理, 论坛很多人发过了更改DNS的批处理,但改的过程批处理等待有点缓慢,还有的同志的本地连接有2到N位的,改时很不方便. 批处理内容: 复制代码 代码如下: echo offregedit /s \\\\server\\xx\\xx.regcls \\\\server\\xx\\xx.reg为你的远程路劲.,不要用我的,只需修改红色部分为你的远程路劲, 下面是DNS的注册表项,我的是2000, 复制代码 代

  • Oracle如何清除一个用户下的所有表(谨慎操作!)

    执行该操作要慎重,不然可能会造成很严重的后果! 使用工具: plsql developer Oracle 数据库 前段时间部署程序的时候导入数据有问题,需要重新导入.然后保险起见把原来的表全部删掉之后再导入.清表操作就如下步骤进行的. 首先通过要清空表的用户登陆plsql,登陆进入之后sql窗口执行下列语句进行查询全部表: SELECT 'drop table '|| table_name || ';' FROM USER_TABLES ORDER BY TABLE_NAME; 查询结果如下图:

  • WMI StdRegProv 通过wmi操作注册表的vbscript实现代码 (本地或远程)

    Because of its length, only the code for the function itself is shown on this page. The demo script that shows how to use this function is available as a separate download. 复制代码 代码如下: Function ReadRegValue( myComputer, myRegPath, myRegValue ) ' This

随机推荐