Funktionsreferenz


ObjCreate

Erzeugt eine Referenz auf ein COM-Object von dem angegebenen Klassennamen.

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

Parameter

classname Die Objekt-Klasse im folgenden Format:
"appname.objectype"
servername [optional] Name eines Remote-Computers, von welchem das
Objekt erhalten werden soll.
username [optional] Name eines UserCode auf dem Remote-Computer
Es muss in diesem Format eingegeben werden: "computer\usercode" oder
"domain\usercode".
password [optional] Passwort für den UserCode auf dem Remote-Computer.

Rückgabewert

Erfolg: Gibt ein Objekt zurück.
Fehler: Gibt 0 zurück und setzt @error auf 1.

Bemerkungen

Es wird ObjCreate() verwendet, um eine neue Instanz zu der verweisenden Applikation zu erhalten.
Möchte man die Instanz mit einem bereits existierenden Prozess verbinden, ist stattdessen ObjGet()zu benutzen.

Behalten sie im Sinn, dass nicht alle Computer den gleichen Satz an Objekten haben. Es sollte nach einem Aufruf von ObjCreate() immer auf Fehler geprüft werden.

Folgende Voraussetzungen gelten, wenn man auf Objekte von Remote-Computern zugreifen möchte:
-Der ausführende Benutzer des Skripts muss die entsprechenden Rechte besitzen.
-Das Objekt auf dem Remote-Computer muss DCOM (Distributed COM) unterstützen.
-Auf dem Remote-Computer müssen die Dienste für 'Remote Registry Service' und 'File and Printer sharing' aktiviert sein.

Siehe die Obj/COM Referenz für mehr Informationen über Objekte.

Verwandte Funktionen

GUICtrlCreateObj, IsObj, ObjEvent, ObjGet, ObjName

Beispiel


; Beispiel 1
;
; Zählen der offenen Explorerfenster

Local $oShell = ObjCreate("shell.application") ; Anlegen des Windows Shell Objekts
Local $oShellWindows = $oShell.windows ; Auslesen der Collection offener Explorerfenster

If IsObj($oShellWindows) Then

    Local $string = "" ; String für die Anzeige

    For $Window In $oShellWindows ; Zählen aller existierenden Explorerfenster
        $string = $string & $Window.LocationName & @CRLF
    Next

    MsgBox(0, "Explorerfenster", "Es existieren folgende Explorerfenster:" & @CRLF & @CRLF & $string);

EndIf
Exit


; Beispiel 2
;
; Öffnen des MediaPlayers auf einem REMOTE Computer
Local $oRemoteMedia = ObjCreate("MediaPlayer.MediaPlayer.1", "Name_des_Remote-PC")

If Not @error Then
    MsgBox(0, "Remote ObjCreate Test", "ObjCreate() für ein Remote-Mediaplayer Objekt erfolgreich !")
    $oRemoteMedia.Open(@WindowsDir & "\media\Windows XP Startup.wav") ; Den Ton abspielen falls die Datei existiert
Else
    MsgBox(0, "Remote ObjCreate Test", "Fehler beim Öffnen des Remote-Objekts. Fehlercode: " & Hex(@error, 8))
EndIf