Interaction.CreateObject(String, String) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Tworzy i zwraca odwołanie do obiektu COM.
CreateObject
nie można używać do tworzenia wystąpień klas w Visual Basic, chyba że te klasy są jawnie uwidocznione jako składniki COM.
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
Parametry
- ProgId
- String
Wymagane.
String
. Identyfikator programu obiektu do utworzenia.
- ServerName
- String
Opcjonalny.
String
. Nazwa serwera sieciowego, na którym zostanie utworzony obiekt. Jeśli ServerName
jest pusty ciąg (""), używany jest komputer lokalny.
Zwraca
Tworzy i zwraca odwołanie do obiektu COM.
CreateObject
nie można używać do tworzenia wystąpień klas w Visual Basic, chyba że te klasy są jawnie uwidocznione jako składniki COM.
- Atrybuty
Wyjątki
Serwer jest niedostępny
Nie istnieje żaden obiekt określonego typu.
Przykłady
W poniższym przykładzie użyto CreateObject
funkcji do utworzenia arkusza programu Microsoft Excel i zapisania arkusza w pliku. Aby użyć tego przykładu, program Excel musi być zainstalowany na komputerze, na którym działa ten program. Ponadto należy dodać odwołanie do biblioteki typów z karty COM okna dialogowego Dodawanie odwołania w menu Projekt . Nazwa biblioteki typów różni się w zależności od wersji programu Excel zainstalowanej na komputerze. Na przykład biblioteka typów programu Microsoft Excel 2002 nosi nazwę Biblioteka obiektów programu Microsoft Excel 10.0.
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
Uwagi
Aby utworzyć wystąpienie składnika COM, przypisz obiekt zwrócony przez CreateObject
do zmiennej obiektu:
Sub CreateADODB()
Dim adoApp As Object
adoApp = CreateObject("ADODB.Connection")
End Sub
Typ zmiennej obiektu używanej do przechowywania zwróconego obiektu może mieć wpływ na wydajność aplikacji. Deklarowanie zmiennej obiektu za pomocą klauzuli As Object
tworzy zmienną, która może zawierać odwołanie do dowolnego typu obiektu. Jednak dostęp do obiektu za pośrednictwem tej zmiennej jest opóźniony, czyli powiązanie występuje po uruchomieniu programu. Istnieje wiele powodów, dla których należy unikać późnego powiązania, w tym wolniejszej wydajności aplikacji.
Możesz utworzyć zmienną obiektu, która powoduje wczesne powiązanie — czyli powiązanie podczas kompilowania programu. W tym celu dodaj odwołanie do biblioteki typów dla obiektu z karty COM okna dialogowego Dodawanie odwołania w menu Projekt . Następnie zadeklaruj zmienną obiektu określonego typu. W większości przypadków bardziej wydajne jest użycie instrukcji Dim
i podstawowego zestawu międzyoperacyjnego w celu utworzenia obiektów niż użycie CreateObject
funkcji.
Interakcja z niezarządzanym kodem
Innym problemem jest to, że obiekty COM używają niezarządzanego kodu — kodu bez korzyści ze środowiska uruchomieniowego języka wspólnego. Istnieje pewien stopień złożoności związany z mieszaniem zarządzanego kodu języka Visual Basic z niezarządzanym kodem z modelu COM. Po dodaniu odwołania do obiektu COM program Visual Basic wyszukuje podstawowy zestaw międzyoperacyjnej (PIA) dla tej biblioteki; jeśli go znajdzie, używa go. Jeśli nie znajdzie ona danych pia, tworzy zestaw współdziałania zawierający lokalne klasy współdziałania dla każdej klasy w bibliotece COM. Aby uzyskać więcej informacji, zobacz Współdziałanie modelu COM w aplikacjach .NET Framework.
Zawsze, gdy to możliwe, należy używać silnie powiązanych obiektów i podstawowych zestawów międzyoperacyjnych. W poniższych przykładach użyto CreateObject
funkcji z obiektami pakietu Microsoft Office tylko do celów demonstracyjnych. Jednak te obiekty są łatwiejsze do użycia i bardziej niezawodne w przypadku użycia z odpowiednim podstawowym zestawem międzyoperacyjności.
Tworzenie obiektu na komputerze zdalnym
Obiekt można utworzyć na komputerze sieci zdalnej, przekazując nazwę komputera do ServerName
argumentu CreateObject
funkcji. Ta nazwa jest taka sama jak część Nazwa maszyny nazwy udziału: dla udziału o nazwie "\MyServer\Public" ServerName
to "MyServer"."
Uwaga
Zapoznaj się z dokumentacją modelu COM (zobacz Microsoft Developer Network), aby uzyskać dodatkowe informacje na temat udostępniania aplikacji na komputerze sieci zdalnej. Może być konieczne dodanie klucza rejestru dla aplikacji.
Poniższy kod zwraca numer wersji wystąpienia programu Excel uruchomionego na komputerze zdalnym o nazwie MyServer
:
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
Jeśli nazwa serwera zdalnego jest nieprawidłowa lub jeśli jest niedostępna, wystąpi błąd czasu wykonywania.
Uwaga
Użyj CreateObject
polecenia , jeśli nie ma bieżącego wystąpienia obiektu. Jeśli wystąpienie obiektu jest już uruchomione, zostanie uruchomione nowe wystąpienie i zostanie utworzony obiekt określonego typu. Aby użyć bieżącego wystąpienia lub uruchomić aplikację i załadować plik, użyj GetObject
funkcji . Jeśli obiekt zarejestrował się jako obiekt pojedynczego wystąpienia, tworzone jest tylko jedno wystąpienie obiektu, bez względu na to, ile razy CreateObject
jest wykonywane.
Tworzenie obiektów szablonu
Funkcji można użyć CreateObject
tylko do utworzenia obiektu COM. Chociaż nie ma dokładnego mechanizmu równoważnego do tworzenia obiektu .NET Framework, Activator w System przestrzeni nazw znajdują się metody tworzenia obiektów lokalnych lub zdalnych. W szczególności CreateInstance metoda lub metoda może być przydatna CreateInstanceFrom .
Ważne
Funkcja CreateObject
wymaga niezarządzanego uprawnienia kodu, co może mieć wpływ na jego wykonywanie w sytuacjach częściowych zaufania. Aby uzyskać więcej informacji, zobacz SecurityPermission i Uprawnienia dostępu do kodu.