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?
5
A
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ł.