VBS脚本编程(6)——对象的创建与调⽤对象:严格的说,对象是复杂数据和程序结构在内存中的表现,只有在程序运⾏时才存在。包含有⽅法和属性。
对象的创建及⽤法
1. Set 语句
将对象引⽤赋给⼀个变量或属性,或者将对象引⽤与事件关联。
Set objectvar = {objectexpression | New classname | Nothing}
-或者-
Set object.eventname = GetRef(procname)
参数
objectvar
必选项,变量或属性名称;符合标准变量命名规则。
objectexpression
可选项,与对象名称⼀致的表达式,另⼀个相同对象类型、函数或⽅法的已声明变量,它们返回相同对象类型的对象。
New
⽤于创建⼀个类的新实例的关键字。如果objectvar包含⼀个对某个对象的引⽤,当⼀个新的引⽤被赋给这个对象之后,则这个引⽤将被释放。New 关键仅⽤于创建⼀个类的实例。
classname
可选项. 创建的类名称。使⽤Class语句定义类及其语句。
Nothing
可选项。断开objectvar与任何指定对象或类的关联。当没有其他变量引⽤前⾯的引⽤对象时,将objectvar赋值为Nothing以释放与前⾯的引⽤对象相关联的系统或内存资源。
object
必选项。与 event 相关联的对象名称。
event
必选项。函数作⽤域的事件名称。
procname
必选项。包含与event 相关联的Sub或Function 名称的字符串。
说明
为了使其有效,objectvar必须与赋值的对象类型相⼀致。
Dim、Private、Public或ReDim语句仅声明⼀个引⽤对象的变量。在使⽤. Set 语句为⼀个具体对象赋值之前,没有实际对象可以引⽤。
通常, 当您使⽤Set 语句将⼀个对象引⽤赋给⼀个变量之前,不会创建那个变量的对象的副本。实际上,只创建了⼀个对象的引⽤。多个引⽤对象变量可以引⽤相同的对象。因为这些变量都是对象的引⽤,⽽不是对对象副本的引⽤,因此对象中所作的任何变化都可以在引⽤该对象的所有变量中反映出来。
利⽤New关键字,您可以随时创建⼀个类的实例,并将⼀个对象引⽤变量赋值给它。赋给类的实例的变量⼀定利⽤Dim (或相似的语句)语句事先已经声明。
2. CreateObject 函数
创建并返回对 Automation 对象的引⽤。
pename [, location])
参数
servername
必选项。提供对象的应⽤程序名称。
typename
必选项。要创建的对象类型或类。
location
可选项。对象所在的⽹络服务器将被创建。
说明
Automation 服务器⾄少提供⼀种对象类型。例如,字处理应⽤程序可以提供应⽤程序对象、⽂档对象和⼯具条对象。
要创建 Automation 对象,将CreateObject函数返回的对象赋值给某对象变量
举例,创建Excel表格对象:
Dim ExcelSheet
Set ExcelSheet = CreateObject("Excel.Sheet")
' 上述代码启动创建对象(在此实例中,是 Microsoft Excel 电⼦表格)的应⽤程序。
' 对象创建后,就可以在代码中使⽤定义的对象变量引⽤此对象。
' 在下⾯的⽰例中,可使⽤对象变量、ExcelSheet 和其他 Excel 对象,包括 Application 对象和 Cells 集合访问新对象的属性和⽅法。
' 例如:
' 使 Excel 在整个 Application 对象中都可见。
ExcelSheet.Application.Visible = True
' 将⼀些⽂本放⼊⼯作表的第⼀个单元格中。
ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1"
' 保存⼯作表。
ExcelSheet.SaveAs "C:\DOCS\TEST.XLS"
' 关闭 Excel,使 Quit ⽅法处于 Application 对象中。
ExcelSheet.Application.Quit
' 释放对象变量。
Set ExcelSheet = Nothing
在远程服务器上创建⼀个对象,当 Internet 安全关闭时只能完成。通过传递计算机名到CreateObject
服务器名的参数,能在远程⽹络上创建对象。该名称如同共享部份的机器名。例如⽹络共享名命名为: "\\myserver\public", servername是 "myserver"。另外,只能指定servername使⽤ DNS 格式或 IP 地址。
3. GetObject 函数
返回对⽂件中 Automation 对象的引⽤。
GetObject([pathname] [, class])
参数
Pathname
可选项。字符串,包含待检索对象的⽂件的完整路径和名称。如果省略pathname则必须有class。
Class
可选项。字符串,对象的类。
class参数的语法格式为appname.objectype,其中包括以下部分:
参数
appname
必选项。字符串,提供对象的应⽤程序名称。
objectype
必选项。字符串,要创建的对象的类型或类。
说明
使⽤GetObject函数可以访问⽂件中的 Automation 对象,⽽且可以将该对象赋值给对象变量。使⽤Set语句将GetObject返回的对象赋值给对象变量。
常⽤的VBS调⽤对象
⽂件系统对象相关: ("scripting.filesystemobject")
字典相关: ("scripting.dictionary")
脚本外壳相关: ("wscript.shell")
windows外壳相关: ("shell.application")
正则表达式相关: ("p")
asp相关: ("mswc.adrotator") ("link") ("info")
公⽤对话框相关: ("mscomdlgmondialog")
编码与密码相关: ("scriptpw.password") ("der")
邮件发送的组件相关: ("ssage") ("wmail") ("figuration") ("eudora.euapplication.1") ("novellgroupwaresession")
⽔晶报表相关: ("crystalruntime.application")
ie浏览器相关: ("internetexplorer.application")
windows媒体播放相关: ("") ("7")
助⼿⾓⾊相关: ("l")
ado相关: ("tion") ("adodbmand") ("dset") ("d") ("adodb.stream") ("dao.dbengine.35") ("adox.catalog") ("adox.table")
sql相关: ("sqldmo.sqlserver") ("sqldmo.login") ("sqldmo.backup") ("sqldmo.user") ("sqldmo.backupdevice") ("sqldmo.database") ("store") ("sqldmo.application") office相关: ("word.application") ("excel.application") ("powerpoint.application") ("excel.sheet") ("frontpage.application") ("access.application") ("msgraph.application") ("outlook.application")
图像图形相关: ("aspimage.jpeg") ("persits.jpeg") ("activeimage.images.1")("jsdraw.ops") ("jsiptc.jpgedit") ("gflax.gflax") ("photoshop.application")
语⾳朗读相关: ("speech.voicetext") ("speech.voicetext.1") ("sapi.spvoice") ("sapi.spfilestream") ("speech") ("speech.1") ("activevoice.activevoice") ("activevoice.activevoice.1")
js脚本编程入门操作系统相关: ("jsdlgbox.browser") ("jsbin.binaryops") ("jsform.window") ("jslistvw.list") ("jssys3.ops") ("jssys3.iniedit") ("tli.tliapplication") ("l") ("windowsinstaller.installer") ("virtualserver.application") ("useraccountsmondialog") ("mosearch.gatherlog.1") ("mscomdlgmondialog")
wmi相关: ("wbemscripting.swbemdatetime") ("wbemscripting.swbemlocator") ("wbemscripting.swbemnamedvalueset") ("wbemscripting.swbemsink","sink_")("wbemscripting.swbemrefresher") ("wbemscripting.swbemlasterror") ("wbemscripting.swbemobjectpath")
web,net相关: ("winhttp.winhttprequest") ("winhttp.winhttprequest.5.1") ("msxml2.serverxmlhttp") ("lhttp") ("ldom") ("lhttp.4.0") ("wscriptwork") ("") ("inetctls.inet") ("post.clspost") ("webget.web") ("netcommocxcomm","com_")("mswinsock.winsock") ("rcbdyctl.setting")
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论