删除注册表中的项
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
保存为reg文件双击导如即可删除此项
注意有个“-”号
删除注册表中的值
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"SoundMan"=-
这样可以删除此值
对于服务的启动类型
对应注册表[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services]
下的各个子项
服务名字下的start键表示启动类型
1是系统
2是自动
3是手动
4是禁用
关于终止进程的操作
XP下可以选择taskkill命令
终止记事本:
taskkill /IM notepad.exe /F
/F的意思是强制终止
使用批处理删除注册表分支
可以用Dos命令 reg.exe 来删除。举例如下: 假如我要清除WinRAR的历史记录,可以新建个批处理文件, 其中/va参数是指删除该分支下的所有键值,/f参数是指不要跳出提示。 reg delete "HKEY_CURRENT_USER\Software\Alcohol Soft\Alcohol 120%%\Basic" /v "Image File Path" /f
一、RegWrite(写入或新建注册表数据) * 新建子主键 语法为:WshShell.RegWrite "子主键名\" 例如,我们想新建一个子主键“HKEY_CURRENT_USER\MyReg”,可使用如下的语句: WshShell.RegWrite "HKCU\MyReg\" 说明:子主键名必须以反斜线 (\) 结束,若不小心忘记输入了这个(\),则该方法返回的是键值,即表示你是想在 HKEY_CURRENT_USER\下建立了一个名叫MyReg的键值了。这一点一定要十分注意! 注意引号里子主键的开头必须是下列根键名之一: HKEY_CURRENT_USER(可简写为HKCU)、HKEY_LOCAL_MACHINE (HKLM)、HKEY_CLASSES_ROOT(HKCR)、 HKEY_USERS和HKEY_CURRENT_CONFIG 语法为:WshShell.RegWrite "子主键名\键值名","键值的数据","键值的类型" 例如我们想在子主键“HKEY_CURRENT_USER\MyReg” 下新建一个字符串键值KeyValue,设置键值的数据为“str”,可使用如下的语句: WshShell.RegWrite "HKCU\MyReg\KeyValue", "str" (注:键值为字符串值,可省去"键值类型"的声明) 若所建的为二进制值或DWORD值,数据为“1”,则还必须声明键值的类型,如下: WshShell.RegWrite "HKCU\MyReg\KeyValue",1,"REG_BINARY" WshShell.RegWrite "HKCU\MyReg\KeyValue",1,"REG_DWORD" 注意二进制值和DWORD值的数据不能加引号,而字符串值的数据则必须加引号。 二、RegDelete(删除注册表数据) * 删除一个子主键 语法为:WshShell.RegDelete "子主键名\" 例如,我们想删除子主键“HKEY_CURRENT_USER\MyReg”,可使用如下的语句: WshShell.RegDelete "HKCU\MyReg\" * 删除子主键的某个键值 语法为:WshShell.RegDelete "子主键名\键值名" 例如,我们想删除子主键“HKEY_CURRENT_USER\MyReg” 的键值KeyValue,可使用如下的语句: WshShell.RegDelete "HKCU\MyReg\KeyValue" 类似于RegWrite,有一个“\”号表示的是删除子主键,没有“\”则表示要删除的是子主键下的键值。 创建对象的语法如下: WScript.CreateObject(strProgID) 其中strProgID就是我们所要创建的对象的标识名。 例如:我们要使用WshShell对象及其属性和方法,首先就要用WScript对象的方法CreateObject来创建一个WshShell对象,语句如下: Set WSHShell = WScript.CreateObject("WScript.Shell") 举一个例子吧。大家都知道,如果你使用了“开始”菜单中的“运行”,Windows将在列表框里记录下你“作案” 的痕迹。其实这些数据是记录在注册表中HKEY_CURRENT_USER\Software\Microsoft\Windows\ CurrentVersion\Explorer\RunMRU子键下,我们只要把这个子键删除,然后再重新建立,不就可以了吗? 现在我们可以来编写一个脚本了。以VBS为例,我们可以用记事本新建一个文件,然后输入(其中“//”后的文字为注释,不必输入): //定义对象,要编辑注册表,我们需要使用WSHShell对象及其方法 Dim WSHShell //对象的方法CreateObject来创建WSHShell对象 Set WSHShell = WScript.CreateObject("WScript.Shell") //然后我们使用WSHShell对象的方法RegDelete来删除 HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Explorer\RunMRU子键 WSHShell.RegDelete "HKCU\Software\Microsoft\ Windows\CurrentVersion\Explorer\RunMRU\" //最后我们恢复该主键,并在该主键下恢复字符串值“MRUList”,设置其数据为空串 WSHShell.RegWrite "HKCU\Software\Microsoft\ Windows\CurrentVersion\Explorer\RunMRU\MRUList","" 程序到此结束,我们把文件另存为CleanMRU.vbs就可以了。现在我们就可以使用Scripting Engine来执行这个程序了。假设我们刚才把这个文件保存在D:\TEMP里,我们就可以使用“开始”菜单的“运行”——Wcript.exe D:\TEMP\CleanMRU.vbs。重新启动,怎么样?“运行”里已经是空空如也了吧! 如果我们这样费尽心思地编了程序,最后还是得靠手工来运行,那还不如每次直接用注册表编辑器来操作呢!其实我们完全可以让它在每次开机时自动加载。这么一说,大家肯定都知道了——我们可以使用注册表编辑器,在“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\ CurrentVersion\Run”子主键下建立一个字符串值 “CleanMRU”,设置其数据为"Wcript.exe D:\TEMP\CleanMRU.vbs"。嘿嘿,这样才算大功告成。以后你每次开机,Windows就会自动执行该脚本以清除 “运行”中的历史记录了
RegistryDelete() RegistryGet() RegistryKeys() RegistrySet() RegistryValues() |
这是一个基本的格式参考
REG DELETE KeyName [/v ValueName | /ve | /va] [/f]
KeyName [\\Machine\]FullKey
Machine 远程机器名 - 忽略当前机器的默认值。
远程机器上只有 HKLM 和 HKU。
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey 所选 ROOTKEY 下的注册表项的全名。
ValueName 所选项下的要删除的值的名称。
省略时,该项下的所有子项和值都会被删除。
/ve 删除空白值名称的值(默认)。
/va 删除该项下的所有值。
/f 不用提示就强行删除。
例如:
REG DELETE HKLM\Software\MyCo\MyApp\Timeout
删除注册表项 Timeout 及其所有子项和值
REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU
删除 ZODIAC 上 MyCo 下的注册表项 MTU