当前位置:文档之家› VBS教程

VBS教程

VBS教程-wscript对象一、wscript对象描述:提供对Windows 脚本宿主对象模型根对象的访问。

详述:WScript 对象是Windows 脚本宿主对象模型层次结构的根对象。

它可在任何脚本文件中使用,不需要特定的声明。

WScript 对象提供对以下信息的访问命令行参数,脚本文件的名称,宿主文件名,宿主版本信息。

WScript 对象可用来创建对象,连接对象,与对象断开连接,同步事件,以编程方式停止脚本的执行,将信息输出到默认输出设备(Windows 对话框或命令控制台)。

WScript 对象也可用来设置脚本运行的模式(交互模式或批处理模式)。

就像刚才我们说的一样,对象通过两种其自有的特性想我们提供工具,这两种特性分别是“属性”和“方法”。

二、属性1、Arguments属性描述:用于返回Arguments 对象(这个对象我们以后会学,现在只需要了解就行)。

语法:object.Arguments参数:object ,WScript 对象例子:显示本vbs文件运行的参数Set Arg=WScript.ArgumentsFor i=0 to Arg.Count-1msgbox Arg(i)Next将上面这些代码保存为vbs文件,然后将一个或者数个任意的文件拖放到这个vbs文件上面上,那么他会逐个显示你拖放的文件。

(这仅仅给出了一个实例,用到了Arguments对象,其的具体用法我们以后再了解)2、FullName 属性描述:返回主机可执行文件(CScript.exe 或WScript.exe)的完全限定路径。

语法:object.FullName参数:object ,WScript 对象例子:显示本机wscript的路径msgbox wscript.fullname在默认的情况下会显示”C:\WINDOWS\system32\wscript.exe“3、Interactive 属性描述:设置或确定脚本模式。

语法:object.Interactive参数:object ,WScript 对象说明:Interactive 属性返回一个布尔值。

有批处理和交互两种模式。

在交互模式(默认模式)下,该脚本为用户提供交互功能。

启用对Windows 脚本宿主的输入和输出。

该脚本可以将信息显示在对话框中并等待用户提供反馈。

在批处理模式下,不支持这种类型的用户交互,所有对WSH 的输入和输出被禁用。

还可以使用Windows 脚本宿主命令行开关//I(对于交互式)和//B(对于批处理模式)来设置脚本模式。

例子:显示本机的脚本模式msgbox WScript.Interactive4、Name 属性描述:返回WScript 对象(主机可执行文件)的名称。

语法:参数:object ,WScript 对象例子:msgbox 5、Path 属性描述:返回包含主机可执行文件(CScript.exe 或WScript.exe)的路径名称语法:object.Path参数:object ,WScript 对象例子:msgbox WScript.Path如果你的wscript.exe是在”C:\WINDOWS\system32\wscript.exe“那么本属性会显示”C:\WINDOWS\system32“6、ScriptFullName 属性描述:返回当前运行脚本的完整路径。

语法:object.ScriptFullName参数:object ,WScript 对象例子:显示本vbs的完整路径msgbox WScript.ScriptFullName神奇吧,这个vbs竟然知道他自己的名字。

7、ScriptName 属性描述:返回当前运行脚本的文件名。

语法:object.ScriptName参数:object ,WScript 对象说明:刚才我们知道了用ScriptFullName可以获取vbs文件自身的完整路径,加入你只想要这个文件的名字改怎么办?看例子。

例子:显示本VBS文件的名字msgbox WScript.ScriptName怎么样?看到了吗?8、Version 属性描述:返回Windows 脚本宿主的版本。

语法:object.Version参数:object ,WScript 对象例子:显示本机脚本宿主版本msgbox WScript.version三、方法1、CreateObject方法描述:创建一个对象语法:CreateObject(appname.objecttype,[servername])解释:appname 必需的,Variant(字符串)。

提供该对象的应用程序名。

objecttype 必需的;Variant(字符串)。

待创建对象的类型或类。

servername 可选的;Variant (String). 要在其上创建对象的网络服务器名称。

说明:要创建ActiveX 对象,只需将CreateObject 返回的对象赋给一个对象变量:Set ExcelSheet = CreateObject("Excel.Sheet")'的引用。

每个支持自动化的应用程序都至少提供一种对象类型。

例如,一个字处理应用程序可能会提供Application 对象,Document 对象,以及Toolbar 对象。

要创建ActiveX 对象,只需将CreateObject 返回的对象赋给一个对象变量:例子:Dim ExcelSheet As Object'声明一个对象变量来存放该对象Set ExcelSheet = CreateObject("Excel.Sheet")ExcelSheet.Application.Visible = True '设置Application 对象使Excel 可见ExcelSheet.Cells(1, 1).Value = "This is column A, row 1"'在表格的第一个单元中写些文本ExcelSheet.SaveAs "C:\ TEST.xls"'将该表格保存到C:\test.xls 目录ExcelSheet.Application.Quit'使用应用程序对象的Quit 方法关闭Excel。

Set ExcelSheet = Nothing'释放该对象变量上述代码将启动该应用程序创建该对象,在本例中就是创建一个Microsoft Excel 电子数据表。

对象创建后,就可以在代码中使用自定义的对象变量来引用该对象。

在下面的示例中,可以使用对象变量ExcelSheet 来访问新建对象的属性和方法,以及访问Microsoft Excel 的其它对象,包括应用程序对象和单元格集合。

2、GetObject方法描述:从文件中检索一个Automation 对象,或检索strProgID 参数所指定的对象语法:object.GetObject(strPathname [,strProgID], [strPrefix])参数:object必选项。

WScript 对象。

strPathname必选项。

包含要获取的对象的完整路径和名称。

strProgID可选项。

表示对象的程序标识符(ProgID)的字符串。

strPrefix可选项。

如果指定了参数strPrefix,Windows 脚本宿主将在创建对象之后把对象的输出接口与脚本文件连接起来。

在对象中触发事件时,Windows 脚本宿主将调用一个子例程,其名称包括strPrefix 和事件的名称。

例如,如果strPrefix 为"MYOBJ_",对象产生的事件为"OnBegin,",那么Windows 脚本宿主将调用脚本中的"MYOBJ_OnBegin" 子例程。

说明:如果当前存在对象的实例或者希望使用已经被装载的文件创建对象,可使用GetObject 方法。

如果当前不存在实例,而且不希望从已经装载的文件中启动对象,请使用CreateObject 方法。

如果一个对象将自己注册为单实例对象(例如,Microsoft Word 7.0 中的Word.Basic 对象),那么无论执行CreateObject 多少次也只能创建对象的一个实例。

此外,对于单实例的对象,如果用零长度的字符串语法("")调用,GetObject 总是返回同样的实例,而且如果省略路径参数将导致错误。

使用GetObject 不能获得对Visual Basic 4.0 以及以前版本创建的Microsoft Visual Basic(R)类的引用。

GetObject 适用于所有的COM 类,不受创建对象所用语言的限制。

示例在执行下列代码时,与指定的strPathname 相关联的应用程序被启动,指定文件中的对象被激活。

如果strPathname 是一个零长度的字符串(""),GetObject 将返回指定类型的新对象实例。

如果strPathname 参数完全被省略,GetObject 将返回指定类型的当前活动对象。

如果不存在指定类型的对象,将发生错误。

Dim MyObject As ObjectSet MyObject = GetObject("C:\CAD\SCHEMA.CAD")MyApp = MyObject.Application某些应用程序允许激活一个文件的某些部分。

如果要这样做,需要在文件名后添加一个惊叹号(!),然后跟一个字符串,标识出文件中希望被激活的部分。

关于如何创建该字符串的信息,请参阅创建对象的应用程序的有关文档。

例如,在一个绘图应用程序中,文件中存储的一幅图可能包含多层。

可以使用下面的代码激活绘图文件中称为schema.cad 的一层:Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")如果不指定对象的类,COM 将根据所提供的文件名来确定要启动的应用程序和要激活的对象。

但是,某些文件可能支持多个对象类。

例如,一幅图纸可能支持三种不同类型的对象:一个应用程序对象,一个绘图对象,以及一个工具栏对象,它们都是同一个文件的组成部分。

在下例中,FIGMENT 是一个绘图应用程序的名称,DRAWING 是它支持的对象类型之一。

Dim MyObject As ObjectSet MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")3、Quit方法描述:退出执行,返回指定的错误代码。

相关主题