本主题使用 BNF 语法来描述 ATL 注册器使用的脚本,将使用下表中所示的表示法。
| 约定/符号 | 含义 |
|---|---|
| ::= | 等效 |
| | | 或者 |
| +X | 一个或多个 X。 |
| [X] | X 是可选的。 可选的分隔符由 [] 表示。 |
| 任何粗体文本 | 字符串文本。 |
| 任何斜体文本 | 如何构造字符串文本。 |
如上表所示,注册器脚本使用字符串文本。 这些值是必须出现在脚本中的实际文本。 下表介绍了在 ATL 注册器脚本中使用的字符串文本。
| 字符串文本 | Action |
|---|---|
| ForceRemove | 完全删除下一个项(如果存在),然后重新创建它。 |
| NoRemove | 取消注册期间不会删除下一个项。 |
| val | 指定 <Key Name> 实际上是命名值。 |
| Delete | 注册期间删除下一个项。 |
| s | 指定下一个值是字符串 (REG_SZ)。 |
| d | 指定下一个值是 DWORD (REG_DWORD)。 |
| m | 指定下一个值是多字符串 (REG_MULTI_SZ)。 |
| b | 指定下一个值是二进制值 (REG_BINARY)。 |
BNF 语法示例
以下是一些语法示例,有助于了解表示法和字符串文本在 ATL 注册器脚本中的工作原理。
语法示例 1
<registry expression> ::= <添加键>
指定 registry expression 等效于 Add Key。
语法示例 2
<registry expression> ::= <添加键> | <删除键>
指定 registry expression 等效于 Add Key 或 Delete Key。
语法示例 3
<键名> ::= '<AlphaNumeric>+'
指定 Key Name 等效于一个或多个 AlphaNumeric 值。
语法示例 4
<添加键> ::= [ForceRemove | NoRemove | val]<键名>
指定 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 组成的多字符串值。
语法示例 7
val 'testhex' = d '&H55'
指定项名称 testhex 是设置为十六进制的 55(十进制为 85)的 DWORD 值。 请注意,此格式符合 Visual Basic 规范中找到的 &H 表示法。