如何在VBScript中使用GetObject

4 vbscript

我是VBScript的新手.所以这是我的代码,它创建一个文本文件并附加一个对象:

Set objExcel = CreateObject("Scripting.FileSystemObject")
objExcel.CreateTextFile("C:\mine.txt")
Run Code Online (Sandbox Code Playgroud)

现在任何人都可以告诉我我应该如何使用该getObject(Pathname,[class])功能,因为我尝试了很多,但没有什么效果好吗?感谢致敬

小智 7

可以在此处找到VBScript GetObject文档.这是一个VBScript示例:

Set objExcelFile = GetObject("C:\Scripts\Test.xls")
WScript.Echo objExcelFile.Name
objExcelFile.Close
Run Code Online (Sandbox Code Playgroud)

此代码将为您提供C:\ Scripts\Test.xls中包含的Excel Workbook对象.您可以使用TypeName()来确认:

Set objExcelFile = GetObject("C:\Scripts\Test.xls")
WScript.Echo objExcelFile.Name
WScript.Echo TypeName(objExcelFile)
objExcelFile.Close
Run Code Online (Sandbox Code Playgroud)

输出将是:

test.xls
Workbook
Run Code Online (Sandbox Code Playgroud)

如果指定的Excel工作簿不存在,脚本将返回错误.如果Excel的实例已在运行,您可以使用此代码获取对它的引用:

Set objExcel = GetObject( , "Excel.Application")

For Each objWorkbook In objExcel.Workbooks
    WScript.Echo objWorkbook.Name
Next

objExcel.Quit
Run Code Online (Sandbox Code Playgroud)

注意'Excel.Application'之前的逗号.该脚本获取对正在运行的Excel应用程序的引用,列出打开的工作簿名称并退出Excel.如果没有运行Excel实例,您将收到错误.这也是您无法使用GetObject()获取Scripting.FileSystemObject实例的原因 - 没有正在运行的实例.

如果存在已在内存中运行的实例og Scripting.FileSystemObject,则可以使用GetObject.试试这段代码:

Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFso1 = GetObject("", "Scripting.FileSystemObject")

WScript.Echo TypeName(objFso)
WScript.Echo TypeName(objFso1)
Run Code Online (Sandbox Code Playgroud)

你可以看到你首先需要使用CreateObject(),当FileSystemObject运行时,它可以获得对它的引用,但这没有多大意义,因为你已经有了它的引用(objFso).因此,使用CreateObject()创建FileSystemObject的实例.


ome*_*pes 5

请注意,该GetObject()参数在参数中还接受以下标记:

"iis:<metabasepath>"-允许程序员查看和更改物理连接到此计算机的任何Web服务器的主要IIS功能。

"java:<classname>"-使用Java虚拟机返回在%system root%\ java \ trustlib文件夹中找到的未注册Java对象的引用。

"script:<absolutepath>"-返回对未注册的Windows脚本组件或其他受支持的脚本类型的引用。

"clsid:<clsid>"-通过注册表中的类ID返回对对象的引用。

"WinMgmts:<string>"-允许使用WMI访问基本的Windows OS功能。

"OBJREF:<base64encodedstring>"-返回对正在运行的对象实例的访问。

"queue:<clsid/progid>"-用于通过MSMQ激活排队的COM +组件。

"new:<clsid/progid>" -允许实例化任何支持IClassFactory指针的COM组件(包括排队的组件)。

来源:http : //web.archive.org/web/20021001133221/http : //www.aspemporium.com/aspEmporium/tutorials/GetObject/index.asp