5

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

4

1 回答 1

4

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

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

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

于 2012-04-08T13:51:47.533 回答