Aus Neugierde hab ich mal mit der Registry gespielt.
Bie diesem code bekomme ich eine ERegistryException aufgetreten. Meldung: 'Ungültiger Datentyp für 'DigitalProductId'' um die Ohren gehauen
Delphi-Quellcode:
case reg.GetDataType(dmylist[i]) of
rdUnknown : begin end;
rdString : begin
dmystring:=reg.ReadString(dmylist[i]);
Label1.Caption:=Label1.Caption+#13#10+dmylist[i]+'::'+dmystring;
end;
rdExpandString : begin
dmystring:=reg.ReadString(dmylist[i]);
Label1.Caption:=Label1.Caption+#13#10+dmylist[i]+'::'+dmystring;
end;
rdInteger : begin
dmyinteger:=reg.ReadInteger(dmylist[i]);
Label1.Caption:=Label1.Caption+#13#10+dmylist[i]+'::'+inttostr(dmyinteger);
end;
rdBinary : begin
dmyinteger:=reg.GetDataSize(dmylist[i]);
setlength(buffer,dmyinteger+1+1023);
fillchar(buffer[0],sizeof(buffer),#0);
reg.ReadBinaryData(dmylist[i],buffer[0],length(buffer));
dmystring:='';
for j:=0 to dmyinteger do
dmyString:=dmystring+inttohex(buffer[j],2)+' ';
Label1.Caption:=Label1.Caption+#13#10+dmyList[i]+'::'+dmystring;
end;
else
Label1.Caption:=Label1.Caption+#13#10+dmylist[i]+'<> Fehler im Datenformat';
end;{case-----------------------------}
das
setlength(buffer,dmyinteger+1+1023);
war der Versuch einen evtl. zu kleinen Puffer zu vergrößern.
Was mach ich da falsch?
( ach ja D7 und XP, GetDataSize liefert übrigens 164)
Gruß
K-H