Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Not
Etkin Şablon Kitaplığı (ATL) desteklenmeye devam eder. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.
Bu konudaki betik örnekleri, sistem kayıt defterine anahtar eklemeyi, Kayıt Şirketi COM sunucusunu kaydetmeyi ve birden çok ayrıştırma ağacı belirtmeyi gösterir.
HKEY_CURRENT_USER'e Anahtar Ekle
Aşağıdaki ayrıştırma ağacı, sistem kayıt defterine tek bir anahtar ekleyen basit bir betiği gösterir. Betik özellikle anahtarı MyVeryOwnKey öğesine HKEY_CURRENT_USER ekler. Ayrıca varsayılan dize değerini HowGoesIt yeni anahtara atar:
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
Bu betik, aşağıdaki gibi birden çok alt anahtar tanımlamak için kolayca genişletilebilir:
HKCU
{
'MyVeryOwnKey' = s 'HowGoesIt'
{
'HasASubkey'
{
'PrettyCool' = d '55'
val 'ANameValue' = s 'WithANamedValue'
}
}
}
Betik şimdi HasASubkey adlı alt anahtarı MyVeryOwnKey öğesine ekler. Bu alt anahtara, hem PrettyCool alt anahtarını (varsayılan değeri 55 olan) hem de DWORD adında bir değeri (dize değeri olarak ANameValue) ekler.
Registrar COM Sunucusunu Kaydet
Aşağıdaki betik Kayıt Defteri COM sunucusunun kendi kaydını yapar.
HKCR
{
ATL.Registrar = s 'ATL Registrar Class'
{
CLSID = s '{44EC053A-400F-11D0-9DCD-00A0C90391D3}'
}
NoRemove CLSID
{
ForceRemove {44EC053A-400F-11D0-9DCD-00A0C90391D3} = s 'ATL Registrar Class'
{
ProgID = s 'ATL.Registrar'
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Apartment'
}
}
}
}
Çalışma zamanında, bu ayrıştırma ağacı ATL.Registrar anahtarını HKEY_CLASSES_ROOT öğesine ekler. Bu yeni anahtar için:
ATL Registrar ClassAnahtarın varsayılan dize değeri olarak belirtir.Alt anahtar olarak ekler
CLSID.için
{44EC053A-400F-11D0-9DCD-00A0C90391D3}belirtirCLSID. (Bu değer,CoCreateInstanceile kullanılmak üzere kayıt defterinin CLSID değeridir.)
Paylaşıldığı için CLSID, Kayıt Kaldırma modunda kaldırılmamalıdır. deyimi, NoRemove CLSID'nin Kayıt CLSID modunda açılması gerektiğini ve Kaydı Kaldır modunda yoksayılması gerektiğini belirterek bunu yapar.
ForceRemove deyimi, bir anahtarı yeniden oluşturmadan önce anahtarı ve tüm alt anahtarlarını kaldırarak bir bakım işlevi sağlar. Alt anahtarların adları değiştiyse bu yararlı olabilir. Bu betik örneğinde, ForceRemove'in zaten mevcut olup olmadığını {44EC053A-400F-11D0-9DCD-00A0C90391D3} denetler. Varsa, ForceRemove:
Yinelemeli olarak ve tüm alt anahtarlarını siler
{44EC053A-400F-11D0-9DCD-00A0C90391D3}.öğeyi yeniden oluşturur
{44EC053A-400F-11D0-9DCD-00A0C90391D3}.ATL Registrar Class,{44EC053A-400F-11D0-9DCD-00A0C90391D3}için varsayılan dize değeri olarak ekler.
Ayrıştırma ağacı artık öğesine {44EC053A-400F-11D0-9DCD-00A0C90391D3}iki yeni alt anahtar ekler. İlk anahtar olan ProgID, ProgID olan varsayılan dize değerini alır. İkinci anahtar InprocServer32 için, bu makalenin %MODULE% bölümünde açıklanan bir önişlemci değeri olan varsayılan dize değeri atanır.
InprocServer32 ayrıca, ThreadingModel dize değeri olan Apartment isimli bir değer alır.
Birden Çok Ayrıştırma Ağacı Belirtme
Betikte birden fazla ayrıştırma ağacı belirtmek için, bir ağacı diğerinin sonuna yerleştirmeniz yeterlidir. Örneğin, aşağıdaki betik, MyVeryOwnKey anahtarını hem HKEY_CLASSES_ROOT hem de HKEY_CURRENT_USER için ayrıştırma ağaçlarına ekler.
HKCR
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
Not
Bir Registrar betiğinde, 4K en yüksek token boyutudur. (Belirteç, söz dizimindeki tanınabilir herhangi bir öğedir.) Önceki betik örneğinde, HKCR, HKEY_CURRENT_USER, 'MyVeryOwnKey've 'HowGoesIt' tüm belirteçlerdir.