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