2012-04-08 12 views
5

Próbuję pracować z kluczem OpenWithProgids rozszerzenia za pomocą TRegistry. Nie widzę, że TRegistry może zapisać te wartości (które wymagają typu REG_NONE.) Wiem, że mógłbym po prostu użyć funkcji API RegSetValueEx, aby ustawić te, ale zastanawiam się, czy brakuje mi czegoś w TRegistry, które może Zrób to.Czy TRegistry mogą zapisywać wartości REG_NONE?

Odpowiedz

4

To prawda, że ​​TRegistry nie ma bezpośredniego wsparcia dla wartości REG_NONE. Jednak wraz z chronionym siekać, można oszukać go do tworzenia zerowej długości binarnych REG_NONE wartości:

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

Trzeba użyć chronionego siekać, aby uzyskać dostęp do PutData który jest członkiem chronione. Czyściejszym podejściem byłoby użycie klasy pomocnika lub prawdziwej klasy wywodzącej się z TRegistry, ale masz pomysł.

Powiązane problemy