User ( posted:

Using MS Agent as the example, in the registry, you search the
HKEY_CLASSES_ROOT hive for a top level key like Agent, MSAgent or
Microsoft.Agent (conventions vary).

In this case, you will find several keys such as "Agent.Control",
"Agent.Control.1", "Agent.Control.2", "Agent.Character", etc. The data
value for "Agent.Control" is "Microsoft Agent Control 2.0" - this is the
object for which we are looking. This has sub-key called "CurVer", for
which the default data value is "Agent.Control.2". As you would expect,
the numeral at the end indicates the current version of the control.

You could, at this point, simply try this value in your Robot script. If
you can instantiate the object, that is well. However, not all keys like
this represent objects.

Examine the key in the hive for the current version, i.e.
"Agent.Control.2". Expand this entry, and examine the "CLSID" sub-key
entry. Copy the data value, something like
"{D45FD31B-5C6E-11D1-9EC1-00C04FD7081F}", and search the registry for this
as a key.

If this key has a sub-key called "InProcServer32", (whose default data
value is the name of the program file), this is a COM object you may
invoke. The data value for the sub-key called "ProgID" is the object
classname you would use.

Cheers . . . Paul