Funktionsreferenz


ObjGet

Ruft eine Referenz zu einem COM-Objekt ab, von einem vorhandenem Prozess oder Dateinamen.

ObjGet ( "filename" [, "classname"] )

Parameter

filename Vollständiger Pfad und Name der Datei die das Objekt enthält (Siehe Bemerkungen)
classname [optional] Die Klasse des Objekts in folgendem Format:
"appname.objectype"

Rückgabewert

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

Bemerkungen

Der Dateiname ist optional wenn man nur den Klassennamen nutzen möchte, aber der Parameter
darf nicht ausgelassen werden. Es ist ein leerer String zu setzen wenn nur der Klassenname genutzt werden soll.
Wie hier: $Object = ObjGet("","Excel.Application")

Wenn ein Dateiname benutzt werden soll, ist der Klassenname optional. Er wird nur benötigt wenn
mehrere Klassen im selben Dateityp definiert sind und man auf eine bestimmte Klasse zugreifen möchte.

Es ist stets zu beachten, dass nicht alle Computer den gleichen Satz an Objekten hat. Also immer auf Fehler prüfen, nach einem Aufruf von ObjGet().

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

Verwandte Funktionen

GUICtrlCreateObj, IsObj, ObjCreate, ObjEvent, ObjName

Beispiel


; Beispiel wie man eine Objektreferenz über den Klassennamen erhält
;
; Excel muss gestartet sein, damit das Beispiel funktioniert

Local $oExcel = ObjGet("", "Excel.Application") ; Existierendes Excel Objekt referenzieren

If @error Then
    MsgBox(0, "ExcelTest", "Fehler beim Referenzieren eines bestehenden Excel Objekts. Fehlernummer: " & Hex(@error, 8))
    Exit
EndIf

$oExcel.Visible = 1 ; Das Objekt anzeigen
$oExcel.workbooks.add ; Eine neue Arbeitsmappe hinzufügen
Exit



; Beispiel wie man eine Objektreferenz über den Dateinamen erhält
;
; Eine Excel Datei mit dem Namen Worksheet.xls muss im Hauptverzeichnis C:\
; Vorhanden sein, damit das Beispiel funktioniert.

Local $FileName = "C:\Worksheet.xls"

If Not FileExists($FileName) Then
    MsgBox(0, "Excel Datei Test", "Test kann nicht ausgeführt werden, weil diese Exeldatei nicht existiert: " & $FileName)
    Exit
EndIf

Local $oExcelDoc = ObjGet($FileName) ; Die Excel Objektreferenz mit dem Dateinamen erzeugen

If IsObj($oExcelDoc) Then

    ; Tipp: Folgende Zeilen entkommentieren um Excel sichtbar zu machen (credit: DaleHohm)
    ; $oExcelDoc.Windows(1).Visible = 1 ; Das erste Arbeitsblatt in der Arbeitsmappe sichtbar machen
    ; $oExcelDoc.Application.Visible = 1    ; Die Anwendung anzeigen (ohne dies wird Excel beendet)

    Local $String = "" ; String für Anzeigezwecke

    ; Einige Dokumenteneigenschaften geben keinen Wert zurück, das werden wir ignorieren
    Local $OEvent = ObjEvent("AutoIt.Error", "nothing"); Vergleichbar mit On Error Resume Next in VBscript

    For $Property In $oExcelDoc.BuiltinDocumentProperties
        $String = $String & $Property.Name & ":" & $Property.Value & @CRLF
    Next

    MsgBox(0, "Excel Datei Test", "Die Dokumenteneigenschaften von " & $FileName & " sind:" & @CRLF & @CRLF & $String)

    $oExcelDoc.Close ; Exceldokument schließen

Else
    MsgBox(0, "Excel Datei Test", "Fehler: Die Datei " & $FileName & " konnte nicht als Excelobjekt geöffnet werden.")
EndIf