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_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 öğesine bir alt anahtar HasASubkey
MyVeryOwnKey
ekler. 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 WithANamedValue
ile) 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_ROOT
eklerATL.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
CLSID
belirtir{44EC053A-400F-11D0-9DCD-00A0C90391D3}
. (Bu değer, kayıt şirketinin ileCoCreateInstance
kullanılmak üzere CLSID değeridir.)
Paylaşıldığı için CLSID
Kaydı Kaldır modunda kaldırılmamalıdır. deyimi bunu Kayıt NoRemove CLSID
modunda 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 InprocServer32
olan , 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, ThreadingModel
dize değeri ile adlandırılmış bir değer Apartment
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 hem hem de HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
için ayrıştırma ağaçlarına anahtarını MyVeryOwnKey
ekler:
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.