不错的一篇VBS-JSCRIPT GETOBJECT理解


2年前,当时自己在写ASPSHELL的时候 一直不理解为什么
GetObject("WinNT://.") 可以获得本地系统 的一些重要信息
当时MSDN是这样一个解析的
-----------
Windows 脚本宿主   
GetObject 方法
请参阅
WScript 对象 | CreateObject 方法 | DisconnectObject 方法
用指定的 ProgID 检索现有的对象或从文件中创建新对象 。
object.GetObject(strPathname [,strProgID], [strPrefix]) 
参数
object 
WScript 对象 。 
strPathname 
包含保留到磁盘中的对象的文件的完全限定路径名 。 
strProgID 
可选 。对象的程序标识符 (ProgID) 。 
strPrefix 
可选 。在要同步对象的事件时使用 。如果您提供 strPrefix 参数,则 WSH 会在创建对象后将该对象的输出接口连接到脚本文件 。 
说明
如果对象的实例存储在内存中,或者您要从文件创建对象,则使用 GetObject 方法 。如果内存中没有当前的实例,并且您不希望从文件创建对象,则请使用 CreateObject 方法 。GetObject 方法可用于所有的 COM 类,而与用于创建对象的语言无关 。如果您提供 strPrefix 参数,则 WSH 会在创建对象后将该对象的输出接口连接到脚本文件 。当对象引发事件时,WSH 将调用在事件名称开头附加 strPrefix 的子例程 。例如,如果 strPrefix 是 MYOBJ_,对象引发的事件名为 OnBegin,则 WSH 调用脚本中的 MYOBJ_OnBegin 子例程 。
如果某个对象被注册为单实例对象,则只创建该对象的一个实例(无论您执行了多少次 GetObject,都是如此) 。GetObject 方法返回的实例总是与用零长度字符串语法 ("") 调用的实例相同,如果未提供路径参数,则会发生错误 。GetObject 方法不能用于获得对用 Visual Basic 4.0 或更低版本创建的 Microsoft Visual Basic 类的引用 。
示例
下面的 VBScript 代码启动与指定的文件 (strPathname) 相关联的应用程序:
Dim MyObject As Object
Set MyObject = GetObject("C:\CAD\SCHEMA.CAD")
MyApp = MyObject.Application
某些应用程序允许您激活文件的一部分 。为此,在文件名的结尾处添加一个感叹号 (!),并在其后附加一个标识文件中要激活部分的字符串 。例如,在绘图应用程序中,文件中存储的绘图可能有多层 。下面的代码激活名为 SCHEMA.CAD 的绘图文件中的某一层:
Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")
如果未指定对象的类 (strProgID),则 COM 确定要从该文件名启动的应用程序 。某些文件可支持多个对象类 。例如,某个绘图可能支持三个不同类型的对象:应用程序对象、绘图对象和工具栏对象 。所有这些都可能在同一个文件中 。
在下面的 VBScript 代码中,绘图应用程序 FIGMENT 从 SAMPLE.DRW 文件启动,并打开其中的 DRAWING 对象 。
Dim MyObject As Object
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")
请参阅
WScript 对象 | CreateObject 方法 | DisconnectObject 方法
---------------
但是看完之后还没有理解''
N年之后的今天''  突然看了一篇文章'''终于理解了
其实 GetObject 就是  从一个文件 或者 对象中取得信息 取得其操作
例如
GetObject("WinNT://.") 这个就是系统对象了'
而假如你系统装了OFFICE的  EXCEL 那我们就可以这样获得对象
Set xls = GetObject("d:\1.xls","Excel.Application")   第一参数是 xls的文件路径   第2个参数是对象的类型
也可以让他自动识别
 Set xls = GetObject("d:\1.xls")