Retrieves an existing object with the specified ProgID, or creates a new one from a file.
object.GetObject(strPathname [,strProgID], [strPrefix]) |
Arguments
- object
-
WScript object.
- strPathname
-
The fully qualified path name of the file that contains the object persisted to disk.
- strProgID
-
Optional. The object's program identifier (ProgID).
- strPrefix
-
Optional. Used when you want to sync the object's events. If you supply the strPrefix argument, WSH connects the object's outgoing interface to the script file after creating the object.
Remarks
Use the GetObject method when an instance of the object exists in memory, or when you want to create the object from a file. If no current instance exists and you do not want the object created from a file, use the CreateObject method. The GetObject method can be used with all COM classes, independent of the language used to create the object. If you supply the strPrefix argument, WSH connects the object's outgoing interface to the script file after creating the object. When the object fires an event, WSH calls a subroutine with strPrefix attached to the beginning of the event name. For example, if strPrefix is MYOBJ_
and the object fires an event named OnBegin
, WSH calls the MYOBJ_OnBegin
subroutine located in the script.
If an object is registered as a single-instance object, only one instance of the object is created (regardless of how many times GetObject is executed). The GetObject method always returns the same instance when called with the zero-length string syntax (""), and it causes an error if you do not supply the path parameter. You cannot use the GetObject method to obtain a reference to a Microsoft Visual Basic class created with Visual Basic 4.0 or earlier.
Example
The following VBScript code starts the application associated with the specified file (strPathname):
Copy Code | |
---|---|
Dim MyObject As Object Set MyObject = GetObject("C:\CAD\SCHEMA.CAD") MyApp = MyObject.Application |
Some applications allow you to activate part of a file. To do this, add an exclamation mark (!) to the end of the file name, and follow it with a string that identifies the part of the file you want to activate. For example, in a drawing application, a drawing stored in a file might have multiple layers. The following code activates a layer within a drawing file called SCHEMA.CAD
:
Copy Code | |
---|---|
Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3") |
If you do not specify the object's class (strProgID), COM determines the application to start from the file name. Some files can support more than one class of object. For example, a drawing might support three different types of objects: an application object, a drawing object, and a toolbar object. All may be part of the same file.
In the following VBScript code, the drawing application FIGMENT
starts and opens the object DRAWING
from within the file SAMPLE.DRW
.
Copy Code | |
---|---|
Dim MyObject As Object Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING") |