VBScript Scripting Techniques > Object Browsers
Though simple text editors have served me well both in building my
web pages and writing my batch files, I have completely switched to
dedicated editors/IDEs for writing VBScript and PowerShell scripts.
Syntax highlighting does help eliminate a lot of debugging time,
but what I like even better is
"IntelliSense" ™
and built-in debuggers and object browsers!
The picture at the right shows VBSEdit's Object Browser window after "instantiating" an Internet Explorer object with this one-liner:
Set objIE = WScript.CreateObject( "InternetExplorer.Application" )
It looks a lot like the Object Browser from Visual Studio 2005 (Express).
Object browsers don't replace the objects' documentation, but they make finding the right keywords a lot easier, and they can serve as a reminder for the exact syntax.
VBSEdit also comes with its own built-in debugger.
You'll find functionality like that in other editors/IDEs too.
Admin
Script Editor,
SystemScripter
and
PrimalScript
have similar functionality (and more) for VBScript.
PrimalScript also supports PowerShell, SystemScripter has announced
PowerShell support.
PowerShell scripters should certainly try PowerShell IDE (IntelliSense, debugger) and PowerShell Analyzer (no debugger, but it seems to better understand constructs).
But of course, instead of using a single integrated environment, you can choose to use separate a editor, debugger and object browser.
Just for fun, copy and paste the following code into your editor with integrated object browser (or IDE), and look what happens to the object browser window:
Set objEmail = CreateObject( "CDO.Message" )
Set objIE = CreateObject( "InternetExplorer.Application" )
Set objInet = CreateObject( "InetCtls.Inet.1" )
Set objHTTP = CreateObject( "WinHttp.WinHttpRequest.5.1" )
Set objExcel = CreateObject( "Excel.Application" )
Set objOutlook = CreateObject( "Outlook.Application" )
Set objPpt = CreateObject( "PowerPoint.Application" )
Set objWord = CreateObject( "Word.Application" )
Set objCal = CreateObject( "MSCAL.Calendar" )
Set objQPro = CreateObject( "QuattroPro.PerfectScript" )
Set objWP = CreateObject( "WordPerfect.PerfectScript" )
Set objConn = CreateObject( "ADODB.Connection" )
Set objRecSet = CreateObject( "ADODB.Recordset" )
Set objDic = CreateObject( "Scripting.Dictionary" )
Set objFSO = CreateObject( "Scripting.FileSystemObject" )
Set wshNetwork = CreateObject( "WScript.Network" )
Set wshShell = CreateObject( "WScript.Shell" )
Set objRandom = CreateObject( "System.Random" )
Set objArrList = CreateObject( "System.Collections.ArrayList" )
Set objSortList = CreateObject( "System.Collections.SortedList" )
Set xmlDoc = CreateObject( "Microsoft.XmlDom" )
Set xml2Doc = CreateObject( "Msxml2.DOMDocument.5.0" )
Set objiTunes = CreateObject( "iTunes.Application" )
Set objPlayer = CreateObject( "WMPlayer.OCX" )
Set objWMPlayer = CreateObject( "WMPlayer.OCX.7" )
Set objReal = CreateObject( "rmocx.RealPlayer G2 Control.1" )
Set objFSDialog = CreateObject( "SAFRCFileDlg.FileSave" )
Set objFODialog = CreateObject( "SAFRCFileDlg.FileOpen" )
Set objDialog = CreateObject( "UserAccounts.CommonDialog" )
Set SOAPClient = CreateObject( "MSSOAP.SOAPClient" )
Set objWOL = CreateObject( "UltraWOL.ctlUltraWOL" )
Set objSearcher = CreateObject( "Microsoft.Update.Searcher" )
Set objShell = CreateObject( "Shell.Application" )
| Note: | I added some tooltips to show the minimum requirements for each object,
as far as I'm aware. Just hover over any of the "ProgIDs" to display the tooltip. |
The following VBScript code can be used to list all available ProgIDs:
Option Explicit
Const HKEY_CLASSES_ROOT = &H80000000
Dim arrProgID, lstProgID, objReg, strMsg, strProgID, strSubKey, subKey, subKeys()
Set lstProgID = CreateObject( "System.Collections.ArrayList" )
Set objReg = GetObject( "winmgmts://./root/default:StdRegProv" )
' List all subkeys of HKEY_CLASSES_ROOT\CLSID
objReg.EnumKey HKEY_CLASSES_ROOT, "CLSID", subKeys
' Loop through the list of subkeys
For Each subKey In subKeys
' Check each subkey for the existence of a ProgID
strSubKey = "CLSID\" & subKey & "\ProgID"
objReg.GetStringValue HKEY_CLASSES_ROOT, strSubKey, "", strProgID
' If a ProgID exists, add it to the list
If Not IsNull( strProgID ) Then lstProgID.Add strProgID
Next
' Sort the list of ProgIDs
lstProgID.Sort
' Copy the list to an array (this makes displaying it much easier)
arrProgID = lstProgID.ToArray
' Display the entire array
WScript.Echo Join( arrProgID, vbCrLf )
| Notes: | Download
the complete code in ZIPped format. Or even better: use ActiveX Helper by Nir Sofer. |
![]() |
|
| Not all of these ProgIDs can be used in VBScript. | |
| Don't try to load these objects all at once, it might crash your computer. |