Aracılığıyla paylaş


Varolan bir ActiveX denetimi yükseltme

Varolan ActiveX denetimleri (eski adı ole denetimleri) değişiklik olmadan Internet üzerinde kullanılabilir. Ancak, kendi performansını artırmak için denetimleri değiştirmek isteyebilirsiniz. Denetimi bir Web sayfasında kullanırken dikkat edilecek diğer noktalar vardır. .Ocx dosyası ve tüm destekleyici dosyaları Internet üzerinden karşıdan yüklenmesi veya hedef makinede olması gerekir. Bu kod boyutu ve karşıdan yükleme süresi önemli bir etken hale getirir. Karşıdan yüklemeler imzalı .cab dosyasında paketlenebilir. Denetim komut dosyası oluşturma için güvenli olarak ve başlatma için güvenli olarak işaretleyebilirsiniz.

Bu makalede aşağıdaki konular açıklanır:

  • Ambalaj kodu karşıdan yüklemek için

  • Bir denetim için güvenli başlatma ve komut dosyası oluşturma için işaretleme

  • Lisans konuları

  • Kod imzalama

  • Palet yönetme

  • Internet Explorer tarayıcı güvenlik düzeylerini ve denetim davranışı

En iyi duruma getirme, açıklandığı gibi ekleyebilirsiniz ActiveX denetimleri: en iyi duruma getirme. Takma adlar özellikleri yüklemek için kullanılabilir ve zaman uyumsuz olarak açıklandığı gibi büyük BLOBs ActiveX denetimleri Internet'te.

Ambalaj kodu karşıdan yüklemek için

Bu konu hakkında daha fazla bilgi için bkz: Bilgi Bankası makalesi "Ambalaj mfc denetimleri için kullanım Internet üzerinden" (Q167158). MSDN Kitaplığı CD-ROM'unda veya https://support.microsoft.com/?ln=tr adresinde Bilgi Bankası makaleleri bulabilirsiniz.

941zhks9.collapse_all(tr-tr,VS.110).gifcodebase etiketi

ActiveX denetimlerini kullanan Web sayfalarına katıştırılmış <OBJECT> etiket. CODEBASE Parametresi <OBJECT> etiket denetiminin karşıdan yüklenmesini istediğiniz konumu belirtir. CODEBASEçok sayıda farklı dosya türleri başarılı bir şekilde gösterebilir.

941zhks9.collapse_all(tr-tr,VS.110).gifcodebase etiketi içeren bir ocx dosyası kullanma

CODEBASE="http://example.microsoft.com/mycontrol.ocx#version=4,70,0,1086"

Bu çözüm yalnızca denetimin .ocx dosyası yükler ve destekleyici DLL'leri istemci makinede yüklü olmasını gerektirir. Internet Explorer destek dll dosyaları için denetimleri Visual c++ ile birlikte gelir çünkü bu Visual c++ ile oluşturulan Internet Explorer ve mfc ActiveX denetimleri için çalışır. Bu denetimi görüntülemek için ActiveX denetimi yeteneğine sahip olan başka bir Internet tarayıcısı kullandıysanız, bu çözüm işe yaramaz.

941zhks9.collapse_all(tr-tr,VS.110).gifINF dosyasıyla codebase etiketi kullanılarak

CODEBASE="http://example.microsoft.com/trustme.inf"

Bir .inf dosyası bir .ocx ve destekleyen dosyaları kontrol edecek. Bu yöntem önerilmez, çünkü bir .inf dosyasını imzalamak mümkün değildir (bkz: Kod imzalama işaretçiler kod imzalama için).

941zhks9.collapse_all(tr-tr,VS.110).gifcodebase etiketi ile bir cab dosyası kullanma

CODEBASE="http://example.microsoft.com/acontrol.cab#version=1,2,0,0"

Dolap dosyaları mfc kullanan bir paketi ActiveX denetimleri için önerilen yoldur. Bir mfc ActiveX denetimini bir dolap dosyasında ambalaj denetim ActiveX denetimi ve herhangi bir bağımlı DLL'lerin (mfc DLL gibi) yüklenmesi için dahil edilecek bir .inf dosyası sağlar. Daha hızlı karşıdan yükleme kodu bir cab dosyası kullanılarak otomatik olarak sıkıştırır. Bileşen karşıdan yüklenmek üzere bir .cab dosyası kullanıyorsanız, tek tek her bileşen daha tüm .cab dosyasını imzalamak için hızlıdır.

941zhks9.collapse_all(tr-tr,VS.110).gifcab dosyaları oluşturma

Bilgi Bankası makalesinden dolap Geliştirme Seti karşıdan yükleyebileceğiniz 310618: Microsoft dolap Software Development Kit. Bu kit, dolap dosyaları oluşturmak için gerekli araçları bulacaksınız.

Tarafından için dolap dosyasını işaret CODEBASE .ocx dosyası, ActiveX denetimi için ve kendi yükleme işlemini denetlemek üzere bir .inf dosyasını içermelidir. Denetim dosyasının adını belirterek dolap dosyası ve bir .inf dosyası yarat Bu dolap dosya sisteminde zaten varolabilir bağımlı DLL'lerin eklemeyin. Örneğin, mfc DLL'leri dolap ayrı bir dosya olarak paketlenmiş ve kontrol eden .inf dosyası tarafından başvurulan.

cab dosyasının nasıl oluşturulacağı hakkında daha fazla bilgi için bkz: bir cab dosyası oluşturma.

941zhks9.collapse_all(tr-tr,VS.110).gifINF dosyası

Aşağıdaki örnek, spindial.inf, listeleri mfc Spindial için destekleyici dosyalar ve sürüm bilgilerini kontrol. mfc DLL'leri için konum bir Microsoft Web sitesi olduğuna dikkat edin. Mfc42.cab sağlanan ve Microsoft tarafından imzalanmış.

Contents of spindial.inf:
[mfc42installer] 
file-win32-x86=http://activex.microsoft.com/controls/vc/mfc42.cab 
[Olepro32.dll] - FileVersion=5,0,4261,0
[Mfc42.dll] - FileVersion=6,0,8168,0
[Msvcrt.dll] - FileVersion=6,0,8168,0

941zhks9.collapse_all(tr-tr,VS.110).gif<OBJECT> Etiket

Kullanarak, aşağıdaki örnekte gösterilmektedir <OBJECT> mfc Spindial örnek denetim paketlemek için etiket.

<OBJECT ID="Spindial1" WIDTH=100 HEIGHT=51
  CLASSID="CLSID:06889605-B8D0-101A-91F1-00608CEAD5B3"
  CODEBASE="http://example.microsoft.com/spindial.cab#Version=1,0,0,001">
    <PARAM NAME="_Version" VALUE="65536">
    <PARAM NAME="_ExtentX" VALUE="2646">
    <PARAM NAME="_ExtentY" VALUE="1323">
    <PARAM NAME="_StockProps" VALUE="0">
    <PARAM NAME="NeedlePosition" VALUE="2">
</OBJECT>

Bu durumda, iki dosya, spindial.ocx ve spindial.inf spindial.cab içerir. Aşağıdaki komut, dolap dosyası oluşturacaksınız:

C:\CabDevKit\cabarc.exe -s 6144 N spindial.cab spindial.ocx spindial.inf 

–s 6144 Parametresi için kod imzalama dolap alanı ayırır.

941zhks9.collapse_all(tr-tr,VS.110).gifSürüm etiketi

Buraya dikkat edin #Version tarafından belirtilen denetime uygulandığı bir cab dosyası ile belirtilen bilgileri CLASSID parametresi <OBJECT> etiket.

Belirtilen sürümüne bağlı olarak, karşıdan yükleme denetiminizin zorlayabilirsiniz. Tam tarifleri için OBJECT etiketi de dahil olmak üzere CODEBASE parametresi, W3C bkz: başvuru.

Bir denetim için güvenli başlatma ve komut dosyası oluşturma için işaretleme

Web sayfalarında kullanılan ActiveX denetimlerini komut dizilerinde kullanmak ve aslında güvenli olmaları durumunda başlatma için güvenli olarak işaretlenmelidir. Güvenli bir denetim değil disk g/ç gerçekleştirmek veya doğrudan erişim belleği veya makinenin kayıtları.

Denetimlerini komut dizilerinde kullanmak ve kayıt defterinden başlatma için güvenli olarak işaretlenebilir. Değiştirmek DllRegisterServer denetiminin komut dizilerinde kullanmak ve kalıcı kayıt defterinde güvenli olarak işaretlemek için aşağıdakine benzer bir girdi eklemek için. Uygulamak için alternatif bir yöntem olan IObjectSafety.

Kalıcılık ve komut dosyası oluşturma için güvenli olarak işaretlemek denetlemek için GUID (genel benzersiz tanımlayıcı) tanımlayacaktır. Aşağıdakine benzer bir kayıt defteri girdisi güvenle vermeyecekleri denetimleri içerir:

HKEY_CLASSES_ROOT\Component Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}

Kalıcı verileri güvenli bir şekilde başlatılabilir denetimleri benzer bir kayıt defteri girdisi güncelleştime için güvenli işaretlenir:

HKEY_CLASSES_ROOT\Component Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}

Aşağıdakine benzer girdiler ekleyin (sınıf kimliği yerine denetiminizin değiştirme {06889605-B8D0-101A-91F1-00608CEAD5B3}) anahtarlarınızı aşağıdaki sınıf kimliği ile ilişkilendirmek için:

HKEY_CLASSES_ROOT\CLSID\{06889605-B8D0-101A-91F1-00608CEAD5B3}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4} 
HKEY_CLASSES_ROOT\CLSID\{06889605-B8D0-101A-91F1-00608CEAD5B3}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4} 

Lisans konuları

Lisanslı bir denetimi bir Web sayfasında kullanmak istiyorsanız, Lisans Sözleşmesi'ni Internet üzerinde kullanılmasını sağlar ve bir lisans paket dosyasındaki (lpk) oluşturmak doğrulamanız gerekir.

Lisanslı ActiveX denetimi Internet Explorer'ı çalıştıran bilgisayarın denetimini kullanmak için lisanslı değil, düzgün bir html sayfasında yüklemez. Örneğin, lisanslı denetim Visual c++ kullanarak yerleşik, denetimi kullanarak html sayfası düzgün nerede denetim oluşturuldu, ancak lisans bilgilerini dahil edilmediği sürece başka bir bilgisayarda yüklemez bilgisayarda yükleyin.

Lisanslı ActiveX denetimi Internet Explorer'da kullanmak için lisans denetimi için izin veren doğrulamak için satıcının Lisans Sözleşmesi'ni denetlemelisiniz:

  • Yeniden dağıtım

  • Internet üzerindeki denetiminin kullanımı

  • Codebase parametresi

Lisanslı denetim nonlicensed bir makinede bulunan bir html sayfasını kullanmak için bir lisans paket dosyasındaki (lpk) oluşturmanız gerekir. lpk dosya html sayfasındaki lisanslı denetimler için çalışma zamanı lisansı içerir. Bu dosya lpk_tool oluşturulur.ActiveX sdk ile birlikte gelen exe. Daha fazla bilgi için bkz: msdn Web sitesinde https://msdn.microsoft.com.

Bir LPK dosyası oluşturmak için

  1. lpk_tool çalıştırın.Denetimi kullanmak için lisanslı bir bilgisayarda exe dosyasını Çalıştırın.

  2. İçinde Lisans Paketi Yazma Aracı iletişim kutusunda kullanılabilirdenetimleri liste kutusunda seçin her lisanslı tıklatın ve html sayfasında kullanılan ActiveX denetimi Ekle.

  3. ' I tıklatın Kaydet & Çıkış ve lpk dosyası için bir ad yazın. lpk dosyası oluşturun ve uygulamayı kapatın.

Lisanslı denetim üzerindeki bir html sayfasına katıştırmak için

  1. html sayfanızı düzenleyin. <OBJECT> html sayfasına Ekle herhangi bir diğer <OBJECT> önce Lisans Yöneticisi nesnesi için etiket etiketler. Lisans Yöneticisi'ni Internet Explorer ile yüklenen bir ActiveX denetimidir. Sınıf Kimliğini aşağıda gösterilmiştir. lpk dosyasının adını ve yolunu için Lisans Yöneticisi nesnesinin LPKPath özelliğini ayarlayın. html sayfa başına yalnızca bir lpk dosyası olabilir.

    <OBJECT CLASSID = "clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
        <PARAM NAME="LPKPath" VALUE="relative URL to .LPK file">
    </OBJECT>
    
  2. <OBJECT> Ekle Lisans Yöneticisi etiketinden sonra lisanslı denetlemek için etiket.

    Örneğin, Microsoft maskelenmiş düzenleme denetimi görüntüleyen bir html sayfası aşağıda gösterilmiştir. İçin Lisans Yöneticisi Denetim Kimliği: birinci sınıf, ikinci sınıf kimliği: maskelenmiş düzenleme denetimi için. Daha önce oluşturduğunuz .lpk dosyanın göreli yolunu gösterecek şekilde etiketleri değiştirmek ve denetlemek için sınıf kimliği de dahil olmak üzere bir nesne etiketi ekleyin.

  3. <EMBED> Ekle NCompass ActiveX eklentisi kullanıyorsanız, lpk dosyası özniteliği.

    Denetiminizin diğeri üzerinde görüntülenebilir, tarayıcı etkin etkin — Örneğin, NCompass ActiveX eklenti kullanarak Netscape — <EMBED> eklemeniz gerekir Sözdizimi aşağıda gösterildiği gibi.

    <OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
        <PARAM NAME="LPKPath" VALUE="maskedit.lpk">
    
        <EMBED SRC = "maskedit.LPK">
    
    </OBJECT>
    <OBJECT CLASSID="clsid:C932BA85-4374-101B-A56C-00AA003668DC" WIDTH=100 HEIGHT=25>
    </OBJECT>
    

Lisans denetleme hakkında daha fazla bilgi için bkz: ActiveX denetimleri: ActiveX denetimi lisans.

Kod imzalama

Kod, bu yana değişmediğini garanti imzalandı ve kod imzalama kod kaynağını tanımlamak için tasarlanmıştır. Kod indirilmeden önce kullanıcıların tarayıcı güvenlik ayarlarına bağlı olarak, uyarı. Kullanıcıların belirli sertifika sahipleri veya uyarı olmadan yüklenir, büyük/küçük harf kodu olanlar tarafından imzalanmış güvenilir şirketler, güvenmeyi seçebilirsiniz. Kod müdahale edilmesini önlemek için dijital olarak imzalanmış.

Denetiminizin güven uyarı iletilerini görüntülemeden otomatik olarak yüklenebilir son kodunuzu imzalandığı emin olun. Kod imzalama hakkında ayrıntılı bilgi, Authenticode ActiveX SDK belgelerine bakın ve görmek cab dosyasını imzalamak.

Güven ve tarayıcı güvenlik düzeyi ayarlarına bağlı olarak, imzalayan kişi veya şirket tanımlamak için bir sertifika görüntülenebilir. Güvenlik düzeyi none ise veya denetimin imzalı sertifika sahibi güvenilirse sertifika görüntülenmez. Bkz: Internet Explorer tarayıcı güvenlik düzeylerini ve denetim davranışlarını Ayrıntılar tarayıcı güvenlik ayarları denetimi karşıdan yüklenir ve görüntülenen bir sertifikayı nasıl belirleyecektir.

Dijital imza garanti kod imzalı bu yana değişmemiştir. Karma kodu alınır ve sertifikaya gömülü. Bu daha sonra kodun kod karşıdan yüklendikten sonra ancak çalışmadan önce geçen bir karma ile karşılaştırılır. Verisign gibi şirketler kodu imzalamak için gereken özel hem de ortak anahtarlar sağlayabilir. ActiveX sdk MakeCert, sınama sertifikaları oluşturmak için bir yardımcı programı ile birlikte gelir.

Palet yönetme

Kapsayıcılar paleti belirlemek ve ambient bir özellik olarak kullanılabilir hale DISPID_AMBIENT_PALETTE. Bir sayfadaki tüm ActiveX denetimleri tarafından kendi paleti belirlemek için kullanılan bir paleti bir kap (örneğin, Internet Explorer) seçer. Bu görüntü titremeyi engeller ve tutarlı bir görünüm sunar.

Bir denetim geçersiz kılabilirsiniz OnAmbientPropertyChange palette yapılan değişikliklerin bildirimini işlemek için.

Bir denetim geçersiz kılabilirsiniz OnGetColorSet bir renk paleti çizmek için kümesini döndürmek için. Kapsayıcılar dönüş değeri bir denetim paleti ile uyumlu olup olmadığını belirlemek için kullanın.

ocx 96 yönergeleri altında bir denetim her zaman arka planda paletini varırsınız gerekir.

Palet ambient özelliği kullanmayan eski kapsayıcıları gönderir WM_QUERYNEWPALETTE ve WM_PALETTECHANGED ileti. Bir denetim geçersiz kılabilirsiniz OnQueryNewPalette ve OnPaletteChanged bu iletileri işlemek için.

Internet Explorer tarayıcı güvenlik düzeylerini ve denetim davranışı

Bir tarayıcı için güvenlik düzeyi, kullanıcı tarafından yapılandırılabilen seçenekleri vardır. Bir kullanıcının bilgisayarına zarar etkin içerik Web sayfaları içerebileceği için tarayıcılar kullanıcının güvenlik düzeyi ile ilgili seçenekleri seçin izin verir. Tarayıcı güvenlik düzeylerini uygulayan şekilde, bağlı bir denetim hiç yüklenmemiş veya bir sertifika veya çalışma zamanında denetiminin karşıdan yüklenmesini isteyip istemediğinizi seçin yapmalarına izin vermek için bir uyarı iletisi görüntülenir. Yüksek, Orta ve düşük güvenlik düzeyleri altında Internet Explorer ActiveX denetimlerinin davranışını aşağıda listelenmiştir.

941zhks9.collapse_all(tr-tr,VS.110).gifYüksek güvenlik modu

  • İmzalanmamış denetimleri karşıdan yüklenmez.

  • İmzalanmış denetimler, güvenilmeyen bir sertifika görüntülenir (kullanıcı kodu bu sertifika sahibinden andan itibaren her zaman güvenme seçeneği seçebilirsiniz).

  • Yalnızca güvenli olarak işaretlenmiş denetimleri kalıcı veri varsa ve/veya komut dosyası.

941zhks9.collapse_all(tr-tr,VS.110).gifOrta güvenlik modu

  • İmzalanmamış denetimleri yüklemeden önce bir uyarı görüntüler.

  • İmzalanmış denetimler güvenilmeyen bir sertifika görüntülenir.

  • Güvenli olarak işaretlenmemiş denetimlerini bir uyarı görüntüler.

941zhks9.collapse_all(tr-tr,VS.110).gifDüşük güvenlik modu

  • Herhangi bir uyarı yapılmadan denetimleri karşıdan yüklenir.

  • Komut dosyası çalıştırma ve kalıcı uyarı olmadan oluşur.

Ayrıca bkz.

Başvuru

mfc ActiveX denetimleri: bir ActiveX denetimi lisans

Kavramlar

mfc Internet programlama görevleri

mfc Internet programlama temelleri