我正在尝试使用TRegistry处理扩展的OpenWithProgids键。我没有看到TRegistry可以编写这些值(需要一种REG_NONE类型。)我知道我可以使用API RegSetValueEx函数来设置这些,但我想知道我是否遗漏了TRegistry中的某些内容做到这一点。
答案 0 :(得分:4)
TRegistry
确实没有对REG_NONE
值的直接支持。但是,使用受保护的hack,您可以欺骗它创建零长度二进制REG_NONE
值:
type
TRegistryHack = class(TRegistry);
....
TRegistryHack(Registry).PutData(ValueName, nil, 0, rdUnknown);
您需要使用受保护的黑客来访问受保护成员PutData
。更简洁的方法是使用从TRegistry
派生的类助手或真正的类,但你明白了。