本主題中的腳本範例示範如何將機碼新增至系統登錄、註冊登錄器 COM 伺服器,以及指定多個剖析樹狀結構。
將金鑰新增至HKEY_CURRENT_USER
下列剖析樹狀結構說明將單一索引鍵新增至系統登錄的簡單腳本。 特別是,文稿會將索引鍵、 MyVeryOwnKey新增至 HKEY_CURRENT_USER。 它也會將預設字串值 HowGoesIt 指派給新的索引鍵:
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
此腳本可以輕鬆地擴充,以定義多個子機碼,如下所示:
HKCU
{
'MyVeryOwnKey' = s 'HowGoesIt'
{
'HasASubkey'
{
'PrettyCool' = d '55'
val 'ANameValue' = s 'WithANamedValue'
}
}
}
現在,文稿會將子機碼 HasASubkey、 新增至 MyVeryOwnKey。 在這個子機碼中 PrettyCool ,它會新增子機碼( DWORD 預設值為55)和 ANameValue 具名值(字串值為 WithANamedValue)。
註冊註冊器 COM 伺服器
下列腳本會註冊註冊器 COM 伺服器本身。
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'
}
}
}
}
在執行時間,這個剖析樹狀結構會將 ATL.Registrar 索引鍵新增至 HKEY_CLASSES_ROOT。 在這裡新金鑰中,它接著:
指定
ATL Registrar Class為索引鍵的預設字串值。新增
CLSID為子機碼。指定
{44EC053A-400F-11D0-9DCD-00A0C90391D3}。CLSID(此值是註冊機構的CLSID,可與搭配CoCreateInstance使用。
由於 CLSID 已共用,因此不應在 [取消註冊] 模式中移除。 語句 NoRemove CLSID會藉由指出 CLSID 應該在 [註冊] 模式中開啟,並在 [取消註冊] 模式中忽略 。
ForceRemove語句會先移除索引鍵及其所有子機碼,再重新建立密鑰,以提供管家功能。 如果子機碼的名稱已變更,這非常有用。 在此文稿範例中, ForceRemove 檢查是否 {44EC053A-400F-11D0-9DCD-00A0C90391D3} 已經存在。 如果這樣做,則 ForceRemove為 :
遞歸刪除
{44EC053A-400F-11D0-9DCD-00A0C90391D3}及其所有子機碼。重新建立
{44EC053A-400F-11D0-9DCD-00A0C90391D3}。將 新增
ATL Registrar Class為的預設{44EC053A-400F-11D0-9DCD-00A0C90391D3}字串值。
剖析樹狀結構現在會將兩個新的子機碼新增至 {44EC053A-400F-11D0-9DCD-00A0C90391D3}。 第一個索引鍵 ProgID會取得 ProgID 的預設字串值。 第二個索引鍵InprocServer32會取得預設字串值 ,%MODULE%這是本文使用可取代參數(註冊器預處理器)一節中所述的預處理器值。
InprocServer32 也會取得具名值, ThreadingModel其字串值為 Apartment。
指定多個剖析樹狀結構
若要在腳本中指定多個剖析樹狀結構,只要將一個樹狀結構放在另一個樹狀結構結尾即可。 例如,下列文本會將 索引鍵 MyVeryOwnKey、 新增至 和 HKEY_CLASSES_ROOT的剖析樹狀結構HKEY_CURRENT_USER:
HKCR
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
注意
在註冊機構腳本中,4K 是令牌大小上限。 (令牌是語法中的任何可辨識專案。在先前的腳本範例中,HKCR、 HKEY_CURRENT_USER'MyVeryOwnKey'、 和 'HowGoesIt' 都是標記。