,,VBS基础篇 - wscript 对象详解

,,VBS基础篇 - wscript 对象详解

WScript对象是Windows脚本宿主对象模型层次结构的根对象。它可以在任何脚本文件中使用,无需特定声明。

一、wscript对象

描述:提供对Windows脚本宿主对象模型的根对象的访问。

详细信息:WScript对象是Windows脚本宿主对象模型层次结构的根对象。它可以在任何脚本文件中使用,无需特定声明。

WScript对象为以下信息提供了access命令行参数、脚本文件名、主机文件名和主机版本信息。

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

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

刚才我们说了,对象通过自己的特性给我们提供工具,这些特性就是“属性”和“方法”。

二、属性

1、Arguments 属性

描述:用于返回Arguments对象(我们将在后面学习这个对象,现在我们只需要知道它)。

语法:object。争论

参数:对象,WScript对象

示例:显示此vbs文件的参数。

Set Arg=WScript。争论

对于i=0到Arg。计数- 1

MsgBox参数(I)

然后

将上述代码保存为vbs文件,然后将一个或多个任意文件拖放到该vbs文件上,它将逐个显示您拖放的文件。(这里只给出一个例子,使用Arguments对象,具体用法后面会了解。)

2、FullName 属性

描述:返回宿主可执行文件的完全限定路径(WScript.exe或WScript.exe)。

语法:object。全名

参数:对象,WScript对象

示例:显示本地wscript的路径

MsgBox wscript.fullname

默认情况下,将显示“c:\ windows \ system32 \ wscript . exe”。

3、Interactive 属性

描述:设置或确定脚本模式。

语法:object。相互作用的

参数:对象,WScript对象

描述:Interactive属性返回一个布尔值。

有两种模式:批处理和交互。在交互模式(默认模式)下,该脚本为用户提供交互功能。启用对Windows脚本主机的输入和输出。这个脚本可以在对话框中显示信息,并等待用户的反馈。在批处理模式下,不支持这种类型的用户交互,所有到WSH的输入和输出都被禁用。您还可以使用Windows脚本主机命令行开关//I(用于交互模式)和//B(用于批处理模式)来设置脚本模式。

示例:显示该机器的脚本模式

MsgBox WScript。相互作用的

4、Name 属性

描述:返回WScript对象(宿主可执行文件)的名称。

语法:object。名字

参数:对象,WScript对象

示例:

MsgBox WScript.name

5、Path 属性

描述:返回包含宿主可执行文件(WScript.exe或WScript.exe)的路径名。

语法:object。小路

参数:对象,WScript对象

示例:

MsgBox WScript。小路

如果您的wscript.exe位于“C: \ WINDOWS \ system32 \ wscript . exe”中,则该属性将显示“C:\ WINDOWS \ System32”

6、ScriptFullName 属性

描述:返回当前运行脚本的完整路径。

语法:object。脚本全名

参数:对象,WScript对象

示例:显示此vbs的完整路径

MsgBox WScript。脚本全名

太神奇了,这个vbs居然知道自己的名字。

7、ScriptName 属性

描述:返回当前运行脚本的文件名。

语法:object。脚本名

参数:对象,WScript对象

说明:刚才我们知道了vbs文件本身的完整路径可以通过使用ScriptFullName获得。如果你只想改变这个文件的名字呢?看例子。

示例:显示VBS文件的名称

MsgBox WScript。脚本名

最近怎么样?看到了吗?

8、Version 属性

描述:返回Windows脚本宿主的版本。

语法:object。版本

参数:对象,WScript对象

示例:显示本机脚本主机版本

MsgBox WScript.version

三、方法

1.CreateObject方法

描述:创建一个对象。

语法:CreateObject(appname . object type,[servername])

解释:对于appname,Variant (string)是必需的。提供此对象的应用程序名称。

必需的类型;变量(字符串)。要创建的对象的类型或类。

Servername可选;变量(字符串)。要在其上创建对象的网络服务器的名称。

解释:要创建ActiveX对象,只需将CreateObject返回的对象赋给一个对象变量:

set excel sheet=createobject(' excel . sheet ')'。

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

例如,文字处理应用程序可以提供应用程序对象、文档对象和工具栏对象。要创建ActiveX对象,只需将CreateObject返回的对象赋给一个对象变量:

“Dim ExcelSheet As Object”声明一个对象变量来存储对象。

set Excel sheet=CreateObject(' Excel。工作表’)

Excelseit。' Application.visible=true '设置Application对象以使Excel可见。

Excelsit.cells (1,1)。value='这是a列,第1行''在表格的第一个单元格中写一些文本。

ExcelSheet。另存为“C:\ TEST.xls”将表格保存到C:\test.xls目录中。

ExcelSheet。“Application.Quit”使用Application对象的Quit方法关闭Excel。

' Set ExcelSheet=Nothing '释放此对象变量。

上面的代码将启动应用程序来创建对象,在本例中是一个Microsoft Excel电子表格。创建对象后,可以使用自定义对象变量在代码中引用它。在下面的示例中,可以使用对象变量ExcelSheet来访问新建对象的属性和方法,以及Microsoft Excel中的其他对象,包括application对象和单元格集合。

2、GetObject方法

描述:从文件或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中的基本对象),无论执行多少次CreateObject,都只能创建该对象的一个实例。另外,对于单实例对象,如果用零长度字符串语法(')调用,GetObject总是返回同一个实例,如果省略path参数,会导致错误。使用GetObject无法获取对由Visual Basic 4.0和早期版本创建的Microsoft Visual Basic(R)类的引用。

GetObject适用于所有COM类,不管创建该对象使用的语言是什么。

示例:当执行以下代码时,将启动与指定strPathname关联的应用程序,并激活指定文件中的对象。如果strPathname是零长度字符串(“”),GetObject将返回指定类型的新对象实例。如果完全省略strPathname参数,GetObject将返回指定类型的当前活动对象。如果没有指定类型的对象,将会发生错误。

将我的对象作为对象变暗

set my object=GetObject(' C:\ CAD \ SCHEMA。CAD’)

MyApp=MyObject。应用

有些应用程序允许激活文件的某些部分。为此,您需要添加一个感叹号(!),然后跟随一个字符串来标识您想要激活的文件部分。有关如何创建该字符串的信息,请参考创建该对象的应用程序的文档。

例如,在绘图应用程序中,存储在文件中的图片可能包含多个层。您可以使用以下代码激活图形文件中名为schema.cad的图层:

set layer object=GetObject(' C:\ CAD \ SCHEMA。CAD!第3层’)

如果没有指定对象的类,COM将根据提供的文件名确定要启动的应用程序和要激活的对象。但是,某些文件可能支持多个对象类。例如,图纸可能支持三种不同类型的对象:应用程序对象、绘图对象和工具栏对象,它们都是同一文件的一部分。

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

将我的对象作为对象变暗

set my object=GetObject(' C:\ DRAWINGS \ SAMPLE。DRW,虚构的人物。绘图’)

3、Quit 方法

描述:退出执行并返回指定的错误代码。

语法:object。退出[intErrorCode]

解释:需要对象。WScript对象。

IntErrorCode可选。如果包含此参数,WScript会将其作为进程终止代码返回。如果省略intErrorCode,WScript将返回零(0)作为进程终止代码。

示例:

以下示例退出执行并返回错误代码1:

WScript。放弃

4、Sleep 方法

描述:使脚本进程在指定的毫秒数内不活动,然后继续执行。

语法:object。睡眠(intTime)

参数:object必需。WScript对象。

int脚本进程不活动的时间长度,以毫秒为单位。

注意:在睡眠状态下,脚本将继续执行已处理的事件。如果脚本引擎超时或被中断,睡眠将立即结束。

示例:

wscript.sleep(3000)

set apprun=CreateObject(' wscript . shell ')

apprun . run“% windir % \ notepad . exe”

本示例将记事本的启动延迟3秒。

5、timeout 方法

描述:设置脚本的生存期。

语法:wscript.timeout

示例:

wscript.timeout=10

MsgBox '你好'

6、Echo 方法

描述:将输出发送到对话框或控制台。

语法:object.echo [arg1] [,arg2] [,arg3].

参数:object必需。WScript对象。

1,arg2,arg3.显示项目的列表。

注意:如果主机是WScript.exe,这个方法会在对话框中显示输出;如果主机是CScript.exe,结果将显示在控制台上。每一项都用空格隔开。在CScript.exe下,输出的末尾会添加一个换行符。如果没有提供任何项目,将显示一个空行。

示例:

set FSO=CreateObject(' scripting . file system object ')

设置f=fso。OpenTextFile('c:\test.txt ')

wscript.echo f.ReadAll

将显示该文件中的所有内容。所以,他的功能和msgbox一样,但是没有他的强大。

7、ConnectObject 方法

描述:将对象事件源连接到具有给定前缀的函数。

语法:object.connect object strobject,strprefix

参数:object必需。WScript对象。

要连接的对象的名称。

strPrefix事件函数的前缀。

描述:

对象必须能够枚举它们自己的类的事件集合。

示例:以下示例实例化一个假设的对象,并将其连接到一个脚本文件。然后脚本调用对象的“SomeMethod”方法。如果对象中发生名为“Event”的事件,将调用MyEvent_Event子例程。

设置MyObject=WScript。CreateObject(“SomeObject”)

我的对象。某种方法

WScript。ConnectObject MyObject,' MyEvent '

子MyEvent_Event(strName)

WScript。回声字符串

末端接头

WScript。DisconnectObject我的对象

8、DisconnectObject 方法

描述:断开最初连接到Windows脚本主机的对象。

语法:object。断开对象对象

参数:object必需。WScript对象。

要断开连接的对象的名称。

描述:

如果指定的对象尚未连接到Windows脚本宿主,则此方法无效。

示例:

以下示例创建一个虚构的对象,并将其连接到脚本文件。然后脚本调用对象的“SomeMethod”方法。如果对象中出现名为“Event”的错误,将调用MyEvent_Event子例程。

设置MyObject=WScript。CreateObject('SomeObject ',' MyEvent ')

我的对象。某种方法

子MyEvent_Event(strName)

WScript。回声字符串

末端接头

WScript。DisconnectObject我的对象

本文到此结束。有需要的朋友可以参考一下。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: