ID Artikel: 326651 - Kajian Terakhir: 03 Oktober 2011 - Revisi: 3.0

Bagaimana untuk secara dinamis menambahkan kontrol ActiveX yang membutuhkan run-time lisensi dalam Visual Basic.BERSIH atau pada Visual Basic 2005

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

Artikel ini selangkah demi selangkah menjelaskan cara menambahkan secara manual run-time lisensi untuk kontrol ActiveX yang secara dinamis dibuat dalam Visual Dasar.BERSIH atau pada Visual Basic 2005. Dalam Visual Basic versi 6, Anda dapat secara manual menambahkan lisensi untuk lisensi koleksi dengan menggunakan Licenses.Add() metode. Untuk informasi lebih lanjut tentang apa License.Add() Apakah dalam Visual Basic 6, lihat bagian "Referensi" ini artikel.

Dalam Visual Basic.NET atau pada Visual Basic 2005, lisensi koleksi tidak lagi ada. Anda harus embed informasi lisensi di kontrol.

Ini Artikel ini mengasumsikan bahwa kontrol yang memerlukan lisensi run-time di MyProject.OCX dan diberi nama MyLicensedControl. MyProject.OCX terletak di C:\Windows\System32.

Buat baru Visual Basic.NET atau Visual Basic 2005 proyek

  1. Klik Mulai, arahkan ke Semua program, arahkan ke Microsoft Visual Studio.NET atau Microsoft Visual Studio 2005, lalu klik Microsoft Visual Studio.NET atau Microsoft Visual Studio 2005.
  2. Pada File menu, titik Baru, lalu klik Proyek.
  3. Dalam Proyek baru kotak dialog, klik Proyek-proyek Visual Basic di bawah Jenis proyek, klik Aplikasi Windows di bawah Template, lalu klik Oke.

    Catatan Pada Visual Studio 2005, klik Visual Basic di bawah Jenis proyek.

Membuat ActiveX Interop Majelis

  1. Klik Mulai, arahkan ke Semua program, arahkan ke Microsoft Visual Studio.NET atau Microsoft Visual Studio 2005, arahkan ke Visual Studio.Alat-alat yang bersih atau Visual Studio 2005 Tools, lalu klik Visual Studio.Prompt Perintah NET atau Visual Studio 2005 Command Prompt.
  2. Untuk membuat dua Majelis interop yang harus Anda miliki, ketik perintah berikut:
    aximp /out:C:\temp\AxMyProject.dll "C:\Windows\System32\MyProject.ocx"
    AxMyProject.dll adalah untuk AxHost Interop. MyProject.dll adalah untuk COM Interop.

Secara dinamis membuat kontrol

  1. Pada Proyek menu, klik Menambahkan referensi.
  2. Klik People, kemudian pilih Majelis Interop kontrol ActiveX yang Anda saja membuat (mereka harus di C:\Temp).
  3. Tambahkan AxMyProject.dll dan MyProject.dll; menambahkan ini file salinan mereka secara lokal.
  4. Tambahkan Tombol mengendalikan ke bentuk.
  5. Klik dua kali tombol untuk menemukan kode untuk Kegiatan klik tombol metode.
  6. Dalam Kegiatan klik tombol metode, paste kode berikut:
      Dim myControl As New AxMyProject.AxMyLicensedControl()
    						
    Ini menciptakan sebuah contoh baru kontrol melalui AxHost.

    CATATAN: Tidak membuat contoh baru kontrol melalui COM (baru MyProject.MyLicensedControl), karena ini tidak akan bekerja pada bentuk, dan Anda tidak dapat dengan mudah menambahkan lisensi.

Menambah lisensi untuk kontrol

  1. Menentukan dan perhatikan kunci lisensi run-time untuk kontrol. Untuk MyLicensedControl, kunci lisensi adalah "gnvlslnjskvlmlgnnimh".
  2. Dalam Kegiatan klik tombol metode, paste kode berikut di bawah ini MyControl redup sebagai Baru AxMyProject.AxMyLicensedControl():
            Dim f As System.Reflection.FieldInfo
            f = GetType(AxHost).GetField("licenseKey", _ 
                Reflection.BindingFlags.NonPublic _ 
                Or Reflection.BindingFlags.Instance)
            f.SetValue(myControl, "gnvlslnjskvlmlgnnimh")
    					
    Kode ini menyisipkan lisensi run-time ke kontrol. Ini menciptakan contoh FieldInfo, yang merupakan bagian dari tas properti OCXState. Tas properti ini penuh kontrol ActiveX tertentu informasi. Dalam kasus ini, Anda mendapatkan lapangan licenseKey dan pengaturan untuk myControl. Anda harus melakukannya untuk setiap contoh dari setiap kontrol ActiveX yang memerlukan lisensi run-time.

Tambahkan kontrol ke bentuk

  1. Tambahkan kontrol ke bentuk kontrol koleksi, dan kemudian Tampilkan kontrol. Untuk melakukan ini, Anda dapat menggunakan kode berikut:
            Controls.Add(myControl)
            myControl.Show()
    						
    Sisipkan kode ini di Kegiatan klik tombol metode, setelah "f.SetValue (myControl,"gnvlslnjskvlmlgnnimh")", dan sebelum "End Sub" baris.

    CATATAN: Jika lisensi tidak ditambahkan ke kontrol dan lisensi diperlukan, Controls.Add akan gagal. Controls.Add menjalankan kode yang berisi validasi lisensi. Ketika Anda mencoba dan menjalankan Controls.Add, Anda melihat kesalahan berikut dalam debug mode:
    Unhandled pengecualian jenis 'System.ComponentModel.LicenseException' terjadi di system.windows.forms.dll Informasi tambahan: Anda tidak memiliki lisensi untuk menggunakan kontrol ActiveX ini.
    Atau, pada jangka waktu, Anda mungkin melihat galat berikut yang sama pesan:
    Unhandled pengecualian telah terjadi pada Anda aplikasi. Anda tidak memiliki lisensi untuk menggunakan kontrol ActiveX ini.
  2. Tekan F5 untuk menjalankan projek.
  3. Klik tombol untuk menambahkan kontrol ActiveX untuk bentuk.

Pemecahan Masalah

PENTING: Catatan berikut tentang operasi ini:
  • Anda harus menambahkan lisensi untuk setiap contoh setiap ActiveX kontrol yang memerlukan lisensi run-time. Sebagai contoh, jika Anda membuat kedua contoh MyLicensedControl, Anda harus menambahkan lisensi untuk contoh juga.
  • Pastikan bahwa Anda memiliki kunci lisensi yang benar untuk Anda kontrol. Menentukan kunci lisensi yang benar khusus untuk kontrol:Untuk informasi tambahan tentang menentukan kunci, klik nomor artikel di bawah ini untuk melihat artikel di Microsoft Basis Pengetahuan:
    151771  (http://support.microsoft.com/kb/151771/EN-US/ ) LICREQST.EXE meminta kunci lisensi dari suatu objek
    Atau, Anda dapat menggunakan Licenses.Add untuk kontrol dalam Visual Basic 6 pada komputer yang telah lisensi dalam registri. Licenses.Add kembali lisensi run-time yang ditambahkan sebagai string; Kamu bisa kemudian gunakan Debug.Print untuk mendapatkan kunci lisensi.

REFERENSI

Untuk informasi tambahan, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
241126  (http://support.microsoft.com/kb/241126/EN-US/ ) INFO: secara dinamis menambahkan UserControls yang memerlukan lisensi Run-Time
188577  (http://support.microsoft.com/kb/188577/EN-US/ ) HOWTO: Apakah lisensi koleksi digunakan untuk?
190670  (http://support.microsoft.com/kb/190670/EN-US/ ) HOWTO: Secara dinamis menambahkan kontrol untuk membentuk dengan Visual Basic 6.0

Berlaku bagi:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Kata kunci: 
kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB326651 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:326651  (http://support.microsoft.com/kb/326651/en-us/ )