登錄指令碼範例
本主題中的腳本範例示範如何將機碼新增至系統登錄、註冊登錄器 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_CURRENT_USER
的剖析樹狀結構HKEY_CLASSES_ROOT
:
HKCR
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
HKEY_CURRENT_USER
{
'MyVeryOwnKey' = s 'HowGoesIt'
}
注意
在註冊機構腳本中,4K 是令牌大小上限。 (令牌是語法中的任何可辨識專案。在先前的腳本範例中,HKCR
、 HKEY_CURRENT_USER
'MyVeryOwnKey'
、 和 'HowGoesIt'
都是標記。