Interaction.GetObject(String, String) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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 drawObj
objek . 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.