学用Windows的“批处理-->coldfengzi添加
|
日期:2007年7月2日 作者: 查看:[大字体
中字体 小字体]
|
早些年用过DOS系统的用户都知道,MS-DOS操作系统允许普通用户编写批处理文件来实现简单的编程。它有效地简化了我们的工作,带给我们许多方便。当时甚至出现了一些专门编写批处理文件的程序员呢。
事实上,操作系统除了提供易于操作的使用界面外,还应当有一套内建的Script(脚本)语言才算完整。从某种角度来说,批处理文件可以说就是MS-DOS下的脚本语言。到了Windows时代,虽然Windows系统仍然保留了批处理,但是批处理在Windows中就显得功能过于简单,无法满足用户的需要了——比如修改注册表,批处理能做得到吗?事实上, Windows 98之后的Windows系统,除了保留原来的批处理系统之外,开始加入了对脚本语言的支持,这就是“Windows Scripting Host”,中文译名为“Windows 脚本宿主”,简称WSH。
WSH本身并不是脚本语言,它是脚本语言的运行环境,WSH支持的脚本语言有JScript(微软版的JavaScript,与真正JavaScript不太一样)和VBScript——这个东东大家一定很熟悉啦,网页上常用。
WSH的脚本引擎(Scripting Engine)有两种方式,一种是Command方式的CScript.exe,另一种是Windows方式的WScript.exe。我们编写的脚本程序(扩展名为“.js”和“.vbs”的纯文本文件)必须通过这两者之一来加载运行。
虽然WSH支持JScript和VBScript语言,但仍然要配合WSH本身所提供的一些对象,以及对象的属性(Properties)和方法(Method)才能够发挥最大的效用。关于JScript和VBScript的程序设计我们这里就不多说了。我们现在还是把注意力放在WSH的对象上面。事实上,本文涉及的注册表编程就几乎不需要关于VBScript的任何知识,我们只需简单地套用现成的语句就可以了。
WSH中的对象主要有:WScirpt、WshArguments、WshShell、 WshUrlShortcut、WshNetwork、 WshSpecialFolders、WshCollection、 WshEnvironment、WshShort等。
每一个对象又都有各自的属性和方法。在这里我们仅就访问注册表所涉及的有关对象的方法和属性略做介绍。
首先是WshShell对象。该对象可用来设置系统环境变量以及修改注册表的数据。要修改注册表的数据,需要使用WshShell对象的三种方法: RegDelete(删除注册表数据)、RegWrite(写入或新建注册表数据)和 RegRead(读取注册表数据)。
通常我们只需要用到前两种方法,它们具体的使用方法如下:
一、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,有一个“\”号表示的是删除子主键,没有“\”则表示要删除的是子主键下的键值。
上一篇:SQL Server 2005常见问题解答
下一篇:Win2000下游戏常见问题和处理方法,不足请补充
|
| 学用Windows的“批处理-->coldfengzi添加 相关文章: |
|
|
|
| 学用Windows的“批处理-->coldfengzi添加 相关软件: |
|
|
|