写入一个值到注册表中。
RegWrite, ValueType, RootKey, SubKey [, ValueName, Value]
ValueType | 只能是 REG_SZ ,REG_EXPAND_SZ ,REG_MULTI_SZ ,REG_DWORD 或者 REG_BINARY 。 |
RootKey | 只能是 HKEY_LOCAL_MACHINE 、HKEY_USERS 、HKEY_CURRENT_USER 、HKEY_CLASSES_ROOT 、HKEY_CURRENT_CONFIG 其中之一(或者它们的缩写,例如 HKLM )。要访问远程注册表,在前面加上电脑名和一个冒号,例如:\\workstation01:HKEY_LOCAL_MACHINE |
SubKey | 子键的名字(例如 Software\SomeApplication)。如果 SubKey 不存在,将会自动创建(在它的父类之下,如果有的话)。如果 SubKey 留空,将把值直接写入到 RootKey 中(某些系统会拒绝将值直接写入 HKEY_CURRENT_USER 根键之下)。 |
ValueName | 需要写入值的项的名称。如果留空或省略,默认修改的是 Subkey 的默认值,也就是在 RegEdit 中显示为“(Default)/默认”的值 |
Value | 需要写入的值。如果省略,默认是一个空字符串,或 0 ,这个取决于 ValueType 。如果写入的文本过长,可以使用 continuation section/字符串分段 的方法将它分为几个短小的段落,这样可以增加代码的可读性和可维护性。 |
如果遇到问题,ErrorLevel/错误级别 被设置为 1 ,否则为 0 。
如果 ValueType 是 REG_DWORD ,Value 的取值范围是 -2147483648 到 4294967295(0xFFFFFFFF)。
REG_BINARY/二进制 和 REG_MULTI_SZ/多字符串 类型的值最多只能写入 64KB ,其它类型的值则没有限制。但是在 Windows 95/98/ME 下,所有类型的值最多只能写入 64KB 。如果超过 64KB ,则超过范围之后的数据将不会被写入。也就是说,在一个比较大的字符串中,只有最开始的 64KB 数据会被写入注册表。
当写入一个 REG_BINARY/二进制 类型的值的时候,使用一个16进制的字符串。例如,REG_BINARY/二进制 值为 01,a9,ff,77 ,写入的字符串为 01A9FF77 。
当写入一个 REG_MULTI_SZ/多字符串 类型的值的时候,你必须使用换行符(`n)来分隔各个部分,最后一个部分的结尾可以不使用换行符。任何一个部分都不能为空。也就是说,不要在一行中连着使用两个换行符(`n`n),因为这样会写入一个 shorter-than-expected/比预期短 的值。注意:Windows 95 不支持 REG_MULTI_SZ/多字符串 类型的值。
要返回多个注册表值或对多个注册表值进行操作,推荐使用 registry-loop 。
要获取访问远程注册表的详细资料,可以查看 registry-loop 中的注释。
RegDelete, RegRead, Registry-loop, IniWrite
RegWrite, REG_SZ, HKEY_LOCAL_MACHINE, SOFTWARE\TestKey, MyValueName, Test Value RegWrite, REG_BINARY, HKEY_CURRENT_USER, Software\TEST_APP, TEST_NAME, 01A9FF77 RegWrite, REG_MULTI_SZ, HKEY_CURRENT_USER, Software\TEST_APP, TEST_NAME, Line1`nLine2