Function Reference


Creates a reference to a COM object from the given classname.

ObjCreate ( "classname" [, "servername" [, "username" [, "password"]]] )


classname The class of the object in the following format: "appname.objectype"
It can also be a string representation of the CLSID.
servername [optional] name of a remote computer from which the object must be obtained.
username [optional] name of a usercode on the remote computer.
You have to enter this in the format "computer\usercode" or "domain\usercode".
password [optional] password for the usercode on the remote computer.

Return Value

Success: an object.
Failure: sets the @error flag to non-zero.


Use ObjCreate() if you want to have a new instance of the referring application.
If you want to connect to an existing process, use ObjGet() instead.

Keep in mind that not all computers have the same set of Objects. So always check for errors after calling ObjCreate(). To check errors use ObjEvent().

The following requirements apply if you want to access objects on remote computers:

See the Obj/COM Reference for more information about Objects.


GUICtrlCreateObj, IsObj, ObjEvent, ObjGet, ObjName


Example 1

#include <MsgBoxConstants.au3>

; Counting the number of open shell windows

Local $oShell = ObjCreate("shell.application") ; Get the Windows Shell Object
Local $oShellWindows = $oShell.Windows() ; Get the collection of open shell Windows

If IsObj($oShellWindows) Then
    Local $sString = "" ; String for displaying purposes

    For $oWnd In $oShellWindows ; Count all existing shell windows
        $sString &= $oWnd.LocationName & @CRLF

    MsgBox($MB_SYSTEMMODAL, "", "Shell Windows:" & @CRLF & "You have the following shell windows:" & @CRLF & @CRLF & $sString)

Example 2

#include <MsgBoxConstants.au3>

; Open the MediaPlayer on a REMOTE computer

Local $oRemoteMedia = ObjCreate("MediaPlayer.MediaPlayer.1", "name-of-remote-computer")

If Not @error Then
    MsgBox($MB_SYSTEMMODAL, "Remote ObjCreate Test", "ObjCreate() of a remote Mediaplayer Object successful !")
    $oRemoteMedia.Open(@WindowsDir & "\media\tada.wav") ; Play sound if file is present
    MsgBox($MB_SYSTEMMODAL, "Remote ObjCreate Test", "Failed to open remote Object. Error code: " & Hex(@error, 8))