Funktioniert problemlos. Nur dass du beim ersten if aus Versehen KeyExists statt ValueExists drin hast und beim zweiten DigitalProductId64 statt DigitalProductId4...
Wenn ich beides korrigiere, klappt es auch.
// EDIT:
Übrigens geht in aktuellen Delphiversionen auch OpenKeyReadOnly, das war nur in deinem alten Delphi 7 noch ein bekannter Bug.