如何在VBScript中使用GetObject

时间:2009-07-28 13:03:59

标签: vbscript

我对VBScript很陌生。所以这是我的代码,它创建一个文本文件并附加一个对象:

Set objExcel = CreateObject("Scripting.FileSystemObject")
objExcel.CreateTextFile("C:\mine.txt")

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

2 个答案:

答案 0 :(得分:6)

可以找到VBScript GetObject文档here。这是一个VBScript示例:

Set objExcelFile = GetObject("C:\Scripts\Test.xls")
WScript.Echo objExcelFile.Name
objExcelFile.Close

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

Set objExcelFile = GetObject("C:\Scripts\Test.xls")
WScript.Echo objExcelFile.Name
WScript.Echo TypeName(objExcelFile)
objExcelFile.Close

输出将是:

test.xls
Workbook

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

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

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

objExcel.Quit

注意'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)

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

答案 1 :(得分:4)

注意,同样GetObject()接受以下参与者的参数:

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

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

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

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

"WinMgmts:<string>" - 允许使用WMI访问基本Windows操作系统功能。

"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