Bagikan melalui


Interaction.GetObject(String, String) Metode

Definisi

Mengembalikan referensi ke objek yang disediakan oleh komponen COM.

[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static object? GetObject (string? PathName = default, string? Class = default);
public static object GetObject (string PathName = default, string Class = default);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member GetObject : string * string -> obj
static member GetObject : string * string -> obj
Public Function GetObject (Optional PathName As String = Nothing, Optional Class As String = Nothing) As Object

Parameter

PathName
String

Pilihan. String. Jalur lengkap dan nama file yang berisi objek yang akan diambil. Jika PathName dihilangkan, Class diperlukan.

Class
String

Diperlukan jika PathName tidak disediakan. String. String yang mewakili kelas objek. Argumen Class memiliki sintaks dan bagian berikut:

appname.objecttype

[1|1] Parameter

[1|2] Deskripsi

[2|1] appname

[2|2] Diperlukan. String. Nama aplikasi yang menyediakan objek .

[3|1] objecttype

[3|2] Diperlukan. String. Jenis atau kelas objek yang akan dibuat.

Mengembalikan

Referensi ke objek yang disediakan oleh komponen COM.

Atribut

Pengecualian

Tidak ada objek dari jenis kelas yang ditentukan.

Tidak ada objek dengan jalur dan nama file yang ditentukan.

Contoh

Contoh berikut menggunakan GetObject fungsi untuk mendapatkan referensi ke lembar kerja Microsoft Excel tertentu (excelObj). Ini menggunakan properti lembar kerja Application untuk membuat Excel terlihat, menutupnya, dan untuk melakukan tindakan lain. Dengan menggunakan dua panggilan API, detectExcel prosedur mencari Excel, dan jika sedang berjalan, masukkan dalam tabel Objek Berjalan. Panggilan pertama untuk GetObject menyebabkan kesalahan jika Excel belum berjalan, yang dalam contoh ini menyebabkan excelWasNotRunning bendera diatur ke True. Panggilan kedua untuk GetObject menentukan file yang akan dibuka. Jika Excel belum berjalan, panggilan kedua memulainya dan mengembalikan referensi ke lembar kerja yang diwakili oleh file yang ditentukan, test.xls. File harus ada di lokasi yang ditentukan; jika tidak, Visual Basic melempar FileNotFoundException. Selanjutnya, contoh kode membuat Excel dan jendela yang berisi lembar kerja yang ditentukan terlihat.

Contoh ini diperlukan Option Strict Off karena menggunakan pengikatan terlambat, di mana objek ditetapkan ke variabel jenis Object. Anda bisa menentukan Option Strict On dan mendeklarasikan objek dari tipe objek tertentu jika Anda menambahkan referensi ke pustaka tipe Excel dari tab COM dari kotak dialog Tambahkan Referensi dari menu Proyek di Visual Studio.

' Add Option Strict Off to the top of your program.
Option Strict Off
' Test to see if a copy of Excel is already running.
Private Sub testExcelRunning()
    On Error Resume Next
    ' GetObject called without the first argument returns a
    ' reference to an instance of the application. If the
    ' application is not already running, an error occurs.
    Dim excelObj As Object = GetObject(, "Excel.Application")
    If Err.Number = 0 Then
        MsgBox("Excel is running")
    Else
        MsgBox("Excel is not running")
    End If
    Err.Clear()
    excelObj = Nothing
End Sub
Private Sub getExcel()
    Dim fileName As String = "c:\vb\test.xls"

    If Not My.Computer.FileSystem.FileExists(fileName) Then
        MsgBox(fileName & " does not exist")
        Exit Sub
    End If

    ' Set the object variable to refer to the file you want to use.
    Dim excelObj As Object = GetObject(fileName)
    ' Show Excel through its Application property. 
    excelObj.Application.Visible = True
    ' Show the window containing the file.
    Dim winCount As Integer = excelObj.Parent.Windows.Count()
    excelObj.Parent.Windows(winCount).Visible = True

    ' Insert additional code to manipulate the test.xls file here.
    ' ...

    excelObj = Nothing
End Sub

Saat Anda memanggil getExcel fungsi, pemeriksaan dilakukan untuk melihat apakah Excel sudah berjalan. Jika tidak, maka instans dibuat.

Penting

Untuk kesederhanaan, contoh sebelumnya mengasumsikan bahwa jendela apa pun yang disebut XLMAIN milik instans Microsoft Excel. Jika objek lain, mungkin diluncurkan dengan perubahan terlarang, membuat jendela dengan nama tersebut, objek tersebut akan menerima semua pesan yang Anda maksudkan untuk Excel. Dalam aplikasi yang akan digunakan untuk produksi, Anda harus menyertakan beberapa pengujian yang lebih ketat untuk memverifikasi bahwa benar-benar XLMAIN milik Excel.

Keterangan

GetObject Gunakan fungsi untuk memuat instans komponen COM dari file. Contoh berikut mengilustrasikan langkah-langkah ini:

Dim CADObject As Object  
CADObject = GetObject("C:\CAD\schema.cad")  

Ketika kode ini berjalan, aplikasi yang terkait dengan yang ditentukan PathName dimulai dan objek dalam file yang ditentukan diaktifkan.

Kasus Default

Jika PathName adalah string panjang nol (""), GetObject mengembalikan instans objek baru dari jenis kelas yang ditentukan. Jika argumen dihilangkan PathName , GetObject mengembalikan objek yang saat ini aktif dari jenis kelas yang ditentukan dalam Class. Jika tidak ada objek dari jenis yang ditentukan, kesalahan akan terjadi.

Mengakses Subobject

Beberapa aplikasi memungkinkan Anda mengaktifkan subobject yang terkait dengan file. Untuk melakukan ini, tambahkan tanda seru (!) ke akhir nama file dan ikuti dengan string yang mengidentifikasi bagian dari file yang ingin Anda aktifkan. Untuk informasi tentang cara membuat string ini, lihat dokumentasi untuk aplikasi yang membuat objek.

Misalnya, dalam aplikasi gambar Anda mungkin memiliki beberapa lapisan ke gambar yang disimpan dalam file. Anda dapat menggunakan kode berikut untuk mengaktifkan lapisan dalam gambar yang disebut schema.cad.

layerObject = GetObject("C:\CAD\schema.cad!Layer3")  

Menentukan Kelas

Jika Anda tidak menentukan objek Class, Automation menentukan aplikasi untuk memulai dan objek untuk diaktifkan, berdasarkan nama file yang Anda berikan. Namun, beberapa file dapat mendukung lebih dari satu kelas objek. Misalnya, gambar mungkin mendukung tiga jenis objek yang berbeda: Application objek, Drawing objek, dan Toolbar objek, yang semuanya merupakan bagian dari file yang sama. Untuk menentukan objek mana dalam file yang ingin Anda aktifkan, gunakan argumen opsional Class . Contoh berikut mengilustrasikan langkah-langkah ini:

Dim drawObj As Object  
drawObj = GetObject("C:\Drawings\sample.drw", "Figment.Drawing")  

Dalam contoh sebelumnya, Figment adalah nama aplikasi gambar dan Drawing merupakan salah satu jenis objek yang didukungnya.

Menggunakan Objek

Setelah objek diaktifkan, Anda merujuknya dalam kode menggunakan variabel objek yang Anda deklarasikan. Dalam contoh sebelumnya, Anda mengakses properti dan metode objek baru menggunakan variabel drawObjobjek . Contoh berikut mengilustrasikan langkah-langkah ini:

drawObj.Line(9, 90)  
drawObj.InsertText(9, 100, "Hello, world.")  
drawObj.SaveAs("C:\Drawings\sample.drw")  

Catatan

GetObject Gunakan fungsi ketika ada instans objek saat ini atau jika Anda ingin membuat objek dengan file yang dimuat. Jika tidak ada instans saat ini, dan Anda tidak ingin objek dimulai dengan file yang dimuat, gunakan CreateObject fungsi .

Jika objek telah mendaftarkan dirinya sebagai objek instans tunggal ActiveX, hanya satu instans objek yang dibuat, tidak peduli berapa kali CreateObject dipanggil. Dengan objek instans tunggal, GetObject selalu mengembalikan instans yang sama saat dipanggil dengan sintaks string panjang nol (""), dan menyebabkan kesalahan jika argumen dihilangkan PathName . Anda tidak dapat menggunakan GetObject untuk mendapatkan referensi ke kelas yang dibuat dengan Visual Basic.

Penting

Fungsi ini GetObject memerlukan izin kode yang tidak dikelola, yang mungkin memengaruhi eksekusinya dalam situasi kepercayaan parsial. Untuk informasi selengkapnya, lihat SecurityPermission dan Izin Akses Kode.

Berlaku untuk

Lihat juga