了解巴格斯格式 (BNF) 語法
本主題將使用 BNF 語法來說明 ATL 登錄器所使用的指令碼,其使用下表所示的標記法。
慣例/符號 | 意義 |
---|---|
::= | 對等 |
| | OR |
+X | 一或多個 X。 |
[X] | X 是選擇性的。 選擇性分隔符由 [] 表示。 |
任何粗體文字 | 字串常值。 |
任何「斜體」文字 | 如何建構字串常值。 |
如上表所示,登錄器指令碼會使用字串常值。 這些值是必須出現在您的指令碼中的實際文字。 下表說明 ATL 登錄器指令碼中所使用的字串常值。
字串常值 | 動作 |
---|---|
ForceRemove | 完全移除下一個機碼 (若有的話),然後重新建立它。 |
NoRemove | 不要在取消登錄期間移除下一個機碼。 |
val | 指定 <Key Name> 實際上是具名的值。 |
刪除 | 在登錄期間刪除下一個機碼。 |
s | 指定下一個值為字串 (REG_SZ)。 |
d | 指定下一個值為 DWORD (REG_DWORD)。 |
m | 指定下一個值為 multistring (REG_MULTI_SZ)。 |
b | 指定下一個值為二進位值 (REG_BINARY)。 |
BNF 語法範例
以下數個語法範例可協助您了解標記法和字串常值如何在 ATL 登錄器指令碼中運作。
語法範例 1
<登錄表達式> ::= <新增機碼>
指定 registry expression
相當於 Add Key
。
語法範例 2
<登入運算式> ::= <新增機碼> | <刪除索引鍵>
指定 registry expression
相當於 Add Key
或 Delete Key
。
語法範例 3
<機碼名稱> ::= '<AlphaNumeric>+'
指定相當於 Key Name
一或多個 AlphaNumeric
值。
語法範例 4
<新增密鑰> ::= [ForceRemove NoRemove | | val]<Key Name>
指定 Add Key
相當於Key Name
,而且字串常值 ForceRemove
、NoRemove
和 val
均為選擇性。
語法範例 5
<AlphaNumeric> ::= 任何不是 NULL 的字元,也就是 ASCII 0
指定 AlphaNumeric
相等於任何非 NULL 字元。
語法範例 6
val 'testmulti' = m 'String 1\0String 2\0'
指定機碼名稱 testmulti
為 String 1
和 String 2
所組成的 multistring 值。
語法範例 7
val 'testhex' = d '&H55'
指定機碼名稱 testhex
是設定為十六進位 55 (十進位 85) 的 DWORD 值。 請注意,此格式遵守如同可在 Visual Basic 規格中找到的 &H 標記法。