百度空间 | 百度首页 
 
查看文章
 
[UMU WSH 教程](10)常见对象 - WScript.Shell
2007年04月10日 星期二 14:40

[UMU WSH 教程](5)脚本超时

[UMU WSH 教程](6)命令行参数

[UMU WSH 教程](7)WScript 对象

[UMU WSH 教程](8)脚本中的脚本

[UMU WSH 教程](9)CreateObject 过程


  看这个对象的名字就知道它是专门为 WSH 设计的,由 %SystemRoot%\system32\wshom.ocx 提供,按照《[UMU WSH 教程](9)CreateObject 过程》说的方法,我们用 eXeScope 打开它,查看 TYPELIB,可以看到这个对象有以下接口函数(省略 IDispatch 接口函数):

property-get SpecialFolders: ^IWshCollection;
property-get Environment([Type:^variant]): ^IWshEnvironment;
function Run(Command:BSTR; [WindowStyle:^variant; WaitOnReturn:^variant]): INT;
function Popup(Text:BSTR; [SecondsToWait:^variant; Title:^variant; Type:^variant]): INT;
function CreateShortcut(PathLink:BSTR): IDispatch;
function ExpandEnvironmentStrings(Src:BSTR): BSTR;
function RegRead(Name:BSTR): variant;
function RegWrite(Name:BSTR; Value:^variant; [Type:^variant]);
function RegDelete(Name:BSTR);
function LogEvent(Type:^variant; Message:BSTR; Target:BSTR): bool;
function AppActivate(App:^variant; [Wait:^variant]): bool;
function SendKeys(Keys:BSTR; [Wait:^variant]);
function Exec(Command:BSTR): ^IWshExec;
property-get CurrentDirectory: BSTR;
property-put CurrentDirectory(BSTR);

  把上面红色字 + CreateObject 作为关键字百度一下,肯定可以找到实例代码,这里 UMU 只介绍注册表读写的函数。

  RegRead 方法支持五种类型的值:

类型 说明 形式
REG_SZ 字符串 字符串
REG_DWORD 数字 整数
REG_BINARY 二进制值 由整数组成的 VB 数组
REG_EXPAND_SZ 可扩展的字符串(例如,"%windir%\\calc.exe") 字符串
REG_MULTI_SZ 字符串数组 由字符串组成的 VB 数组

  但是,RegWrite 方法不支持 REG_MULTI_SZ 类型,而且最多只能将一个 DWORD 写入一个 REG_BINARY 值,也就是说不支持超过 4 字节的 REG_BINARY 值。

  因为存在这些限制,不得不提到天下无敌 WMI 了,WScript.Shell 不支持的就靠它了!在后面的教程会专门说 WMI。

  下面举个例子,下面的程序用来调用注册表编辑器,代码保存为 CallRegEdit.VBS:

On Error Resume Next

Dim objWSH

Set objWSH = WScript.CreateObject( "WScript.Shell" )

' 解除禁用注册表编辑器
objWSH.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools", 0, "REG_DWORD"
' 调用注册表编辑器
objWSH.Exec "%SystemRoot%\regedit.exe"

Set objWSH = Nothing


类别:wsh 专栏 | 添加到搜藏 | 浏览() | 评论 (1)
 
最近读者:
 
网友评论:
1
2007年04月10日 星期二 15:24 | 回复
支持
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu