要操作注册表需要通过ActiveX控件调用WScript.shell对象,通过该对象的一些方法来操作.
Wshshell对象:可以在本地运行程序、操纵注册表内容、创建快捷方式或访问系统文件夹.
先来看看如何创建它:
var wsh=new ActiveXObject("Wscript.shell");
操作注册表需要使用 RegRead方法|RegWrite方法|RegDelete方法| 这三个方法.
下面就介绍下这三个方法:
QUOTE:
RegRead : 从注册表中返回项值或值名.
语法 : object.RegRead(strName);
object: 所创建的Wshshell对象.
strName: 表示所需的项名或值名的字符串值.
示例:
CODE:
var wsh = new ActiveXObject("WScript.shell");
var reg=wsh.RegRead("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page");
alert(reg);
[Copy to clipboard]
在这里读取了IE 的默认地址 也就是StartPage里的值.
[attachment=354]
下面来认识RegWrite这个方法
QUOTE:
RegWrite:创建新项,将另一个值名添加到现有的项中(为其指派一个值),或更改现有值名的值;
语法bject.RegWrite(strName, anyValue [,strType])
object:所创建的Wshshell对象;
strName:表示要创建、添加或更改的项名值、名或值的字符串值。
anyValue: 要创建的新项名称、要添加到现有项中的值名或要指派给现有值名的新值。
strType:可选。表示值的数据类型的字符串值。
strType指定的四个可能的数据类型:
类型 说明 形式
REG_SZ 字符串 字符串
REG_DWORD 数字 整数
REG_BINARY 二进制值 整数
REG_EXPAND_SZ 可扩展的字符串(例如,"%windir%\\calc.exe") 字符串
示例:
如我现在想通过修该注册表的方法更改IE主页就可以通过这个方法.
CODE:
var wsh = new ActiveXObject("WScript.shell");
var reg=wsh.RegWrite("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page","http:\\www.sun.com","REG_SZ");
alert(wsh.RegRead("HKCU\\Software\\Microsoft\\Internet Explorer\\Main\\Start Page"));
[Copy to clipboard]
你可以通过右键查看IE的主页你会发现已经变成了http:\\www.sun.com.
[attachment=355]
下面来介绍一下RegDelete方法:
QUOTE:
RegDelete:从注册表中删除项及其某个值。
语法:object.RegDelete(strName)
object:WshShell 对象。
strName:表示要删除的注册表项名或值名的字符串。
示例:大家一定发现我的IE工具栏有一副背景图片.
现在就通过这个方法将其删除。
CODE:
var wsh = new ActiveXObject("WScript.shell");
var reg=wsh.RegDelete("HKCU\\Software\\Microsoft\\Internet Explorer\\Toolbar\\BackBitmap");
reg.popup("删除工具栏背景图成功");
[Copy to clipboard]
[attachment=356]
这里项名称都用了缩写,缩写如下
QUOTE:
根项名 缩写
HKEY_CURRENT_USER HKCU
HKEY_LOCAL_MACHINE HKLM
HKEY_CLASSES_ROOT HKCR
HKEY_USERS HKEY_USERS
HKEY_CURRENT_CONFIG HKEY_CURRENT_CONFIG
这些方法很简单,主要是需要你对注册表够熟悉.
好了,现在已经介绍完了 如果有兴趣可以自己写一个简易的优化大师^_^.
对了,最好使用HTA(HTML application),不然通过Web访问会出现安全提示。
另外Wshshell对象还有很多办法,在这里只介绍如何操作注册表