Interaction.CreateObject(String, String) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří a vrátí odkaz na objekt COM.
CreateObject
nelze použít k vytváření instancí tříd v jazyce Visual Basic, pokud tyto třídy nejsou explicitně vystaveny jako komponenty modelu 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
Povinná hodnota.
String
. ID programu objektu, který se má vytvořit.
- ServerName
- String
Nepovinný parametr.
String
. Název síťového serveru, na kterém bude objekt vytvořen. Pokud ServerName
je prázdný řetězec (""), použije se místní počítač.
Návraty
Vytvoří a vrátí odkaz na objekt COM.
CreateObject
nelze použít k vytváření instancí tříd v jazyce Visual Basic, pokud tyto třídy nejsou explicitně vystaveny jako komponenty modelu COM.
- Atributy
Výjimky
Server není k dispozici
Neexistuje žádný objekt zadaného typu.
Příklady
Následující příklad používá CreateObject
funkci k vytvoření listu aplikace Microsoft Excel a uloží list do souboru. Chcete-li použít tento příklad, musí být aplikace Excel nainstalována v počítači, kde je tato aplikace spuštěna. Je také nutné přidat odkaz na knihovnu typů z karty COM dialogového okna Přidat odkaz v nabídce Projekt . Název knihovny typů se liší v závislosti na verzi Excelu nainstalované v počítači. Například knihovna typů pro Microsoft Excel 2002 má název Microsoft Excel 10.0 Object Library.
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
Poznámky
Pokud chcete vytvořit instanci komponenty MODELU COM, přiřaďte objekt vrácený CreateObject
objektem do proměnné objektu:
Sub CreateADODB()
Dim adoApp As Object
adoApp = CreateObject("ADODB.Connection")
End Sub
Typ proměnné objektu, kterou použijete k uložení vráceného objektu, může ovlivnit výkon aplikace. Deklarování proměnné objektu As Object
pomocí klauzule vytvoří proměnnou, která může obsahovat odkaz na jakýkoli typ objektu. Přístup k objektu prostřednictvím této proměnné je však pozdně vázán, to znamená, že vazba nastane při spuštění programu. Existuje mnoho důvodů, proč byste se měli vyhnout pozdním vazbám, včetně pomalejšího výkonu aplikace.
Můžete vytvořit proměnnou objektu, která má za následek počáteční vazbu – tedy vazbu při kompilaci programu. Uděláte to tak, že přidáte odkaz na knihovnu typů pro váš objekt z karty COM v dialogovém okně Přidat odkaz v nabídce Projekt . Potom deklarujte proměnnou objektu konkrétního typu objektu. Ve většině případů je efektivnější použít Dim
příkaz a primární sestavení interoperability k vytváření objektů než použít CreateObject
funkci.
Interakce s nespravovaným kódem
Dalším problémem je, že objekty MODELU COM používají nespravovaný kód – kód bez výhody modulu CLR (Common Language Runtime). Kombinování spravovaného kódu jazyka Visual Basic s nespravovaným kódem z modelu COM je poměrně složité. Když přidáte odkaz na objekt COM, Visual Basic vyhledá primární interop sestavení (PIA) pro tuto knihovnu; pokud ho najde, použije ho. Pokud nenajde PIA, vytvoří sestavení interoperability, které obsahuje místní třídy interoperability pro každou třídu v knihovně COM. Další informace najdete v tématu Interoperabilita modelu COM v aplikacích rozhraní .NET Framework.
Obecně byste měli používat silně vázané objekty a primární sestavení zprostředkovatele, kdykoli je to možné. Následující příklady používají CreateObject
funkci s objekty Microsoft Office pouze pro demonstrační účely. Tyto objekty se však snadněji používají a jsou spolehlivější při použití s příslušným primárním sestavením zprostředkovatele.
Vytváření objektu ve vzdáleném počítači
Na vzdáleném počítači v síti můžete vytvořit objekt předáním názvu počítače do ServerName
argumentu CreateObject
funkce. Tento název je stejný jako část Názvu počítače v názvu sdílené složky: pro sdílenou složku s názvem \\MyServer\Public je "MyServer" ServerName
.
Poznámka
Další informace o zpřístupnění aplikace na vzdáleném počítači v síti najdete v dokumentaci modelu COM (viz Microsoft Developer Network). Možná budete muset přidat klíč registru pro vaši aplikaci.
Následující kód vrátí číslo verze instance Excelu spuštěné na vzdáleném počítači s názvem 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
Pokud je název vzdáleného serveru nesprávný nebo není dostupný, dojde k chybě za běhu.
Poznámka
Použijte CreateObject
, pokud neexistuje žádná aktuální instance objektu. Pokud je již spuštěna instance objektu, spustí se nová instance a vytvoří se objekt zadaného typu. Pokud chcete použít aktuální instanci nebo spustit aplikaci a nechat ji načíst soubor, použijte GetObject
funkci . Pokud se objekt zaregistroval jako objekt s jednou instancí, vytvoří se pouze jedna instance objektu bez ohledu na to, kolikrát CreateObject
se spustí.
Vytváření objektů rozhraní
Funkci můžete použít CreateObject
pouze k vytvoření objektu COM. I když neexistuje žádný přesný ekvivalentní mechanismus pro vytvoření objektu rozhraní .NET Framework, ActivatorSystem v oboru názvů obsahuje metody pro vytvoření místních nebo vzdálených objektů.
CreateInstance Konkrétně může být užitečná metoda nebo CreateInstanceFrom metoda.
Důležité
Funkce CreateObject
vyžaduje oprávnění nespravovaného kódu, což může mít vliv na její provádění v situacích s částečnou důvěryhodností. Další informace najdete v tématech SecurityPermission a Přístupová oprávnění ke kódu.