共用方式為


登錄指令碼範例

本主題中的腳本範例示範如何將機碼新增至系統登錄、註冊登錄器 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 是權杖大小上限。 (權杖是語法中的任何可辨識專案。在先前的腳本範例中, HKCRHKEY_CURRENT_USER 'MyVeryOwnKey' 、 和 'HowGoesIt' 都是標記。

另請參閱

建立登錄器指令碼