Delphi-Quellcode:
function LookUpRegistryForWord : string;
var reg : TRegistry;
s : TStrings;
p,i : integer;
help : integer;
v1, v2 : real;
key,value : string;
wordpfad : string;
begin
reg := TRegistry.Create(KEY_READ);
s := TStringlist.Create;
reg.rootkey := HKEY_LOCAL_MACHINE;
key := '\Software\Microsoft\Office';
wordpfad := '';
help := 0;
if reg.OpenKeyReadOnly(key) then begin
reg.GetKeyNames(s);
for i := 0 to s.Count-2 do
begin
TRY
v1 := StrToFloat(s.Strings[i]);
v2 := StrToFloat(s.Strings[i+1]);
if (v1 < v2) then help := i+1;
if (v1 > v2) then help := i;
EXCEPT
showMessage('Es ist leider ein Fehler aufgetreten');
end;
end;
key := key +'\'+ s.Strings[help]+'\Word\InstallRoot';
reg.CloseKey;
if reg.OpenKeyReadOnly(key) then begin
value:=reg.ReadString('Path');
reg.CloseKey;
value := value + 'winword.exe';
if fileexists(value) then wordpfad := value;
end;
result:=wordpfad;
end;
s.free;
reg.free;
end;
Leider funktioniert das so nicht. Ich erhalte eine
Exception, dass 10.0 keine gültige Gleitkommazahl ist... wieso?