Kayıt Defteri Betik Oluşturma Örnekleri

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 Anahtar Ekleme

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ını MyVeryOwnKeyöğesine HKEY_CURRENT_USERekler. 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 öğesine bir alt anahtar HasASubkeyMyVeryOwnKeyekler. Bu alt anahtara hem alt anahtarı (varsayılan DWORD değeri 55 olan) hem de PrettyCool ANameValue adlandırılmış değeri (dize değeri WithANamedValueile) ekler.

Kayıt Şirketi COM Sunucusunu Kaydetme

Aşağıdaki betik Kayıt Şirketi COM sunucusunun kendisini kaydeder.

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ı anahtarını öğesine HKEY_CLASSES_ROOTeklerATL.Registrar. Bu yeni anahtar için:

  • ATL Registrar Class Anahtarın varsayılan dize değeri olarak belirtir.

  • Alt anahtar olarak ekler CLSID .

  • için CLSIDbelirtir{44EC053A-400F-11D0-9DCD-00A0C90391D3}. (Bu değer, kayıt şirketinin ile CoCreateInstancekullanılmak üzere CLSID değeridir.)

Paylaşıldığı için CLSID Kaydı Kaldır modunda kaldırılmamalıdır. deyimi bunu Kayıt NoRemove CLSIDmodunda açılması ve Kaydı Kaldır modunda yoksayılması gerektiğini belirterek CLSID yapar.

deyimi, ForceRemove anahtarı yeniden oluşturmadan önce bir anahtarı ve tüm alt anahtarlarını kaldırarak bir temizlik işlevi sağlar. Alt anahtarların adları değiştiyse bu yararlı olabilir. Bu betik örneğinde, ForceRemove zaten var 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} .

  • öğesini yeniden oluşturur {44EC053A-400F-11D0-9DCD-00A0C90391D3}.

  • için {44EC053A-400F-11D0-9DCD-00A0C90391D3}varsayılan dize değeri olarak eklerATL Registrar Class.

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 InprocServer32olan , bu makalenin Değiştirilebilir Parametreleri Kullanma (Kayıt Şirketinin Önişlemcisi) bölümünde açıklanan bir önişlemci değeri olan varsayılan dize değerini %MODULE%alır. InprocServer32 ayrıca, ThreadingModeldize değeri ile adlandırılmış bir değer Apartmentalı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 hem hem de HKEY_CLASSES_ROOT HKEY_CURRENT_USERiçin ayrıştırma ağaçlarına anahtarını MyVeryOwnKeyekler:

HKCR
{
    'MyVeryOwnKey' = s 'HowGoesIt'
}
HKEY_CURRENT_USER
{
    'MyVeryOwnKey' = s 'HowGoesIt'
}

Not

Kayıt Şirketi betiğinde en büyük belirteç boyutu 4K'dır. (Belirteç, söz dizimindeki tanınabilir herhangi bir öğedir.) Önceki betik örneğinde, HKCR, HKEY_CURRENT_USER, 'MyVeryOwnKey've 'HowGoesIt' tüm belirteçlerdir.

Ayrıca bkz.

Kaydedici Betikleri Oluşturma