Makale numarası: 326651 - Son Gözden Geçirme: 06 Aralık 2006 Çarşamba - Gözden geçirme: 3.3

Dinamik çalışma zamanı lisansları Visual Basic 2005 veya Visual Basic. NET'te gereken ActiveX denetimi ekleme

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu adım adım makalede, el ile çalıştırma lisans Visual Basic 2005 veya Visual Basic. NET'te dinamik olarak oluşturulmuş bir ActiveX denetiminin nasıl ekleneceği açıklanır. Visual Basic sürüm 6'da, el ile lisanslarının lisans derlemesine Licenses.Add() yöntemini kullanarak ekleyebilirsiniz. Visual Basic 6 License.Add() yaptıklarını hakkında daha fazla bilgi için bu makalenin "Başvurular" bölümüne bakın.

Visual Basic .NET veya Visual Basic 2005'te, lisans tahsilat artık yok. Lisans bilgisi denetimi katıştırma gerekir.

Bu makalede, çalıştırma lisansı gerektiren bir denetim içinde MyProject.OCX ve MyLicensedControl adlı varsayar. MyProject.OCX C:\Windows\System32 bulunur.

Bir yeni Visual Basic .NET veya Visual Basic 2005 projesi oluşturma

  1. Başlat ' ı tıklatın, Programlar ' ın üzerine gelin, Visual Studio.NET veya Visual Studio 2005 ' in üzerine gelin ve sonra Visual Studio.NET veya Visual Studio 2005 ' i tıklatın.
  2. Dosya menüsünde Yeni ' nin üzerine gelin ve sonra Project ' i tıklatın.
  3. Yeni proje) iletişim kutusunda, Project Types altında Visual Basic Projeleri tıklatın, şablonları altında Windows uygulaması ' ı tıklatın ve sonra Tamam ' ı tıklatın.

    NotVisual Basic, Visual Studio 2005'te Project Types altında tıklatın.

ActiveX ınterop Assemblies oluşturma

  1. Başlat ' ı tıklatın, Programlar ' ın üzerine gelin, Visual Studio.NET veya Visual Studio 2005 ' in üzerine gelin, Visual Studio.NET Tools veya Visual Studio 2005 Araçlar ' ın üzerine gelin ve sonra Visual Studio .NET komut istemi ' ni veya Visual Studio 2005 komut istemi ' ni tıklatın.
  2. Gereken iki birlikte çalışma derlemeleri oluşturmak için <a0></a0>, aşağıdaki komutu yazın:
    "C:\Windows\System32\MyProject.ocx" Aximp /out:C:\temp\AxMyProject.dll
    AxMyProject.dll AxHost birlikte çalışma için ' dir. COM birlikte çalışma için MyProject.dll var.

Dinamik olarak denetimi oluşturmak

  1. Proje) menüsünde Add Reference ' ı tıklatın.
  2. Gözat ' ı tıklatın ve sonra yeni oluşturduğunuz ActiveX denetimi ile birlikte çalışma derlemeleri seçin (C:\Temp içinde olmalıdır).
  3. AxMyProject.dll hem MyProject.dll ekleyin; bu dosyalar ekleyerek bunları yerel olarak kopyalar.
  4. Bir Düğme) denetimi, forma ekleyin.
  5. Düğme olayı tıklatın yöntemi için kod bulmak için düğmeyi çift tıklatın.
  6. Düğme olayı tıklatın yönteminde, aşağıdaki kodu yapıştırın:
      Dim myControl As New AxMyProject.AxMyLicensedControl()
    						
    bu denetim aracılığıyla AxHost yeni bir örneğini oluşturur.

    Not: denetimin <a1>COM</a1> (yeni MyProject.MyLicensedControl) aracılığıyla yeni bir örneğini formda çalışmaz ve lisans kolayca ekleyemiyor çünkü oluşturmamayı.

Lisans denetimi ekleme

  1. Denetim için çalışma zamanı lisans anahtarı unutmayın ve belirler. MyLicensedControl için lisans anahtarı "gnvlslnjskvlmlgnnimh" dir.
  2. Düğme olayı tıklatın yönteminde, a?a??daki Yeni AxMyProject.AxMyLicensedControl() farklı Dim myControl kodu yapıştırın:
            Dim f As System.Reflection.FieldInfo
            f = GetType(AxHost).GetField("licenseKey", _ 
                Reflection.BindingFlags.NonPublic _ 
                Or Reflection.BindingFlags.Instance)
            f.SetValue(myControl, "gnvlslnjskvlmlgnnimh")
    					
    bu kod, çalıştırma lisans denetime ekler. Özellik Çantası OCXState bir parçası olan Fieldınfo, bir örneğini oluşturur. Bu özellik Çantası belirli ActiveX denetimi bilgilerinin dolu. Bu durumda, alanda licenseKey alma ve myControl için ayarlamak. Bir ActiveX denetimini çalıştırma lisans gerektiren her örneği için bunu yapmanız gerekir.

Forma denetim ekleme

  1. Formun denetimler koleksiyonuna denetimi ekleyin ve sonra denetimi göster. Bunu yapmak için <a0></a0>, aşağıdaki kodu kullanabilirsiniz:
            Controls.Add(myControl)
            myControl.Show()
    						
    "f.SetValue (myControl,"gnvlslnjskvlmlgnnimh")" ve "End Sub" satırından önce bu kod Düğme olayı tıklatın yöntemini Yapıştır.

    Not: Lisans denetime eklenmez ve lisansı gereklidir, Controls.Add başarısız olur. Controls.Add bu lisans doğrulama içeren kod çalışır. Deneyin ve Controls.Add çalıştırmak, aşağıdaki hata hata ayıklama modunda bakın:
    Işlenmeyen bir özel durum türü 'System.ComponentModel.LicenseException' system.windows.forms.dll ek bilgileri oluştu: Bu ActiveX denetimini kullanmak için bir lisans yok.
    Veya, çalıştırma sırasında aşağıdaki benzer bir hata iletisi görebilirsiniz:
    Uygulamanızda, işlenmeyen özel durum oluştu. Bu ActiveX denetimini kullanmak için lisans gerekmez.
  2. F5 tuşuna basarak projeyi çalıştırın.
  3. Bilgisayarınıza ActiveX denetimi, forma eklemek için bu düğmeyi tıklatın.

SORUN GİDERME

ÖNEMLI: Bu işlem hakkında aşağıdakilere dikkat edin:
  • Her ActiveX her kopyası için lisans eklemek denetimi çalıştırma lisans gerektirir. Örneğin, MyLicensedControl ikinci bir kopyasını oluşturursanız, o örneğe lisans da eklemeniz gerekir.
  • Denetimi için doğru lisans anahtarı olduğundan emin olun. Doğru lisans anahtarı belirleme için Denetim özgüdür: Anahtar belirleme hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
    151771  (http://support.microsoft.com/kb/151771/EN-US/ ) LICREQST.EXE bir nesnesinden bir lisans anahtarı isteme
    Alternatif olarak, Visual Basic 6 denetiminin kayıt defterindeki lisansı olan bir bilgisayarda Licenses.Add kullanabilirsiniz. Licenses.Add dize olarak eklediğiniz çalıştırma lisans verir; Debug.Print sonra lisans anahtarı elde etmek için kullanabilirsiniz.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
241126  (http://support.microsoft.com/kb/241126/EN-US/ ) BILGI: dinamik çalışma zamanı lisansı gerektiren UserControls Ekle
188577  (http://support.microsoft.com/kb/188577/EN-US/ ) Nasıl YAPıLıR: Lisansları koleksiyonu kullanım için ne olur?
190670  (http://support.microsoft.com/kb/190670/EN-US/ ) Nasıl YAPıLıR: Visual Basic 6.0 form denetimleri dinamik olarak ekleme

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB326651 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:326651  (http://support.microsoft.com/kb/326651/en-us/ )