Interaction.CreateObject(String, String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt und gibt einen Verweis auf ein COM-Objekt zurück. CreateObject
kann in Visual Basic nur dann zur Erstellung von Klasseninstanzen verwendet werden, wenn diese explizit als COM-Komponenten verfügbar gemacht werden.
public static object CreateObject (string ProgId, string? ServerName = "");
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object CreateObject (string ProgId, string? ServerName = "");
public static object CreateObject (string ProgId, string ServerName = "");
static member CreateObject : string * string -> obj
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member CreateObject : string * string -> obj
Public Function CreateObject (ProgId As String, Optional ServerName As String = "") As Object
Parameter
- ProgId
- String
Erforderlich. String
. Die Programm-ID des zu erstellenden Objekts.
- ServerName
- String
Dies ist optional. String
. Der Name des Netzwerkservers, auf dem das Objekt erstellt wird. Wenn ServerName
eine leere Zeichenfolge ("") ist, wird der lokale Computer verwendet.
Gibt zurück
Erstellt und gibt einen Verweis auf ein COM-Objekt zurück. CreateObject
kann in Visual Basic nur dann zur Erstellung von Klasseninstanzen verwendet werden, wenn diese explizit als COM-Komponenten verfügbar gemacht werden.
- Attribute
Ausnahmen
Server ist nicht verfügbar
Es ist kein Objekt des angegebenen Typs vorhanden.
Beispiele
Im folgenden Beispiel wird die CreateObject
Funktion verwendet, um ein Microsoft Excel-Arbeitsblatt zu erstellen und das Arbeitsblatt in einer Datei zu speichern. Um dieses Beispiel zu verwenden, muss Excel auf dem Computer installiert sein, auf dem dieses Programm ausgeführt wird. Außerdem müssen Sie über die Registerkarte COM des Dialogfelds Verweis hinzufügen im Menü Projekt einen Verweis auf die Typbibliothek hinzufügen. Der Name der Typbibliothek hängt von der auf Ihrem Computer installierten Excel-Version ab. Die Typbibliothek für Microsoft Excel 2002 heißt beispielsweise Microsoft Excel 10.0-Objektbibliothek.
Sub TestExcel()
Dim xlApp As Microsoft.Office.Interop.Excel.Application
Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet
xlApp = CType(CreateObject("Excel.Application"),
Microsoft.Office.Interop.Excel.Application)
xlBook = CType(xlApp.Workbooks.Add,
Microsoft.Office.Interop.Excel.Workbook)
xlSheet = CType(xlBook.Worksheets(1),
Microsoft.Office.Interop.Excel.Worksheet)
' The following statement puts text in the second row of the sheet.
xlSheet.Cells(2, 2) = "This is column B row 2"
' The following statement shows the sheet.
xlSheet.Application.Visible = True
' The following statement saves the sheet to the C:\Test.xls directory.
xlSheet.SaveAs("C:\Test.xls")
' Optionally, you can call xlApp.Quit to close the workbook.
End Sub
Hinweise
Um eine instance einer COM-Komponente zu erstellen, weisen Sie das von CreateObject
zurückgegebene Objekt einer Objektvariablen zu:
Sub CreateADODB()
Dim adoApp As Object
adoApp = CreateObject("ADODB.Connection")
End Sub
Der Typ der Objektvariable, die Sie zum Speichern des zurückgegebenen Objekts verwenden, kann sich auf die Leistung Ihrer Anwendung auswirken. Wenn Sie eine Objektvariable mit der As Object
-Klausel deklarieren, wird eine Variable erstellt, die einen Verweis auf einen beliebigen Objekttyp enthalten kann. Der Zugriff auf das Objekt über diese Variable ist jedoch spät gebunden, d. h. die Bindung erfolgt, wenn Das Programm ausgeführt wird. Es gibt viele Gründe, warum Sie eine späte Bindung vermeiden sollten, einschließlich einer langsameren Anwendungsleistung.
Sie können eine Objektvariable erstellen, die zu einer frühen Bindung führt, d. h. bindung, wenn das Programm kompiliert wird. Fügen Sie dazu auf der Registerkarte COM des Dialogfelds Verweis hinzufügen im Menü Projekt einen Verweis auf die Typbibliothek für Ihr Objekt hinzu. Deklarieren Sie dann die Objektvariable des spezifischen Typs Ihres Objekts. In den meisten Fällen ist es effizienter, die Dim
-Anweisung und eine primäre Interopassembly zum Erstellen von Objekten zu verwenden, als die CreateObject
Funktion zu verwenden.
Interagieren mit nicht verwaltetem Code
Ein weiteres Problem besteht darin, dass COM-Objekte nicht verwalteten Code verwenden– Code ohne den Vorteil der Common Language Runtime. Bei der Mischung des verwalteten Codes von Visual Basic mit nicht verwaltetem Code aus COM ist ein gewisses Maß an Komplexität verbunden. Wenn Sie einen Verweis auf ein COM-Objekt hinzufügen, sucht Visual Basic nach einer primären Interopassembly (PIA) für diese Bibliothek. wenn es einen findet, wird es verwendet. Wenn keine PIA gefunden wird, wird eine Interoperabilitätsassembly erstellt, die lokale Interoperabilitätsklassen für jede Klasse in der COM-Bibliothek enthält. Weitere Informationen finden Sie unter COM-Interoperabilität in .NET Framework-Anwendungen.
Sie sollten im Allgemeinen nach Möglichkeit stark gebundene Objekte und primäre Interopassemblys verwenden. In den folgenden Beispielen wird die CreateObject
Funktion mit Microsoft Office-Objekten nur zu Demonstrationszwecken verwendet. Diese Objekte sind jedoch einfacher zu verwenden und zuverlässiger, wenn sie mit der entsprechenden primären Interopassembly verwendet werden.
Erstellen eines Objekts auf einem Remotecomputer
Sie können ein Objekt auf einem Remotenetzwerkcomputer erstellen, indem Sie den Namen des Computers an das ServerName
Argument der CreateObject
Funktion übergeben. Dieser Name ist identisch mit dem Computernamenteil eines Freigabenamens: Für eine Freigabe mit dem Namen "\\MyServer\Public" ServerName
lautet "MyServer".
Hinweis
Weitere Informationen zum Zugänglichmachen einer Anwendung auf einem Remotenetzwerkcomputer finden Sie in der COM-Dokumentation (siehe Microsoft Developer Network). Möglicherweise müssen Sie einen Registrierungsschlüssel für Ihre Anwendung hinzufügen.
Der folgende Code gibt die Versionsnummer einer instance von Excel zurück, die auf einem Remotecomputer namens MyServer
ausgeführt wird:
Sub CreateRemoteExcelObj()
Dim xlApp As Object
' Replace string "\\MyServer" with name of the remote computer.
xlApp = CreateObject("Excel.Application", "\\MyServer")
MsgBox(xlApp.Version)
End Sub
Wenn der Name des Remoteservers falsch ist oder nicht verfügbar ist, tritt ein Laufzeitfehler auf.
Hinweis
Verwenden SieCreateObject
, wenn keine aktuelle instance des Objekts vorhanden ist. Wenn ein instance des Objekts bereits ausgeführt wird, wird eine neue instance gestartet, und ein Objekt des angegebenen Typs wird erstellt. Verwenden GetObject
Sie die -Funktion, um die aktuelle instance zu verwenden oder die Anwendung zu starten und eine Datei zu laden. Wenn sich ein Objekt als Einzelobjekt instance registriert hat, wird nur eine instance des Objekts erstellt, unabhängig davon, wie oft CreateObject
ausgeführt wird.
Erstellen von Frameworkobjekten
Sie können die CreateObject
Funktion nur verwenden, um ein COM-Objekt zu erstellen. Es gibt zwar keinen genauen gleichwertigen Mechanismus zum Erstellen eines .NET Framework-Objekts, aber der ActivatorSystem im Namespace enthält Methoden zum Erstellen von lokalen oder Remoteobjekten. Insbesondere kann die CreateInstance -Methode oder - CreateInstanceFrom Methode nützlich sein.
Wichtig
Die CreateObject
Funktion erfordert die Berechtigung für nicht verwalteten Code, was sich auf die Ausführung in teilweise vertrauenswürdigen Situationen auswirken kann. Weitere Informationen finden Sie unter SecurityPermission und Codezugriffsberechtigungen.
Gilt für:
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für