TRegistry可以写REG_NONE值吗?

时间:2012-04-08 13:46:01

标签: delphi delphi-xe2

我正在尝试使用TRegistry处理扩展的OpenWithProgids键。我没有看到TRegistry可以编写这些值(需要一种REG_NONE类型。)我知道我可以使用API​​ RegSetValueEx函数来设置这些,但我想知道我是否遗漏了TRegistry中的某些内容做到这一点。

1 个答案:

答案 0 :(得分:4)

TRegistry确实没有对REG_NONE值的直接支持。但是,使用受保护的hack,您可以欺骗它创建零长度二进制REG_NONE值:

type
  TRegistryHack = class(TRegistry);
....
TRegistryHack(Registry).PutData(ValueName, nil, 0, rdUnknown);

您需要使用受保护的黑客来访问受保护成员PutData。更简洁的方法是使用从TRegistry派生的类助手或真正的类,但你明白了。