Ich habe die Funktion so umgeschrieben, wie es in meiner Registry aussieht.
Delphi-Quellcode:
function LookUpRegistry:string;
{Suchen, wo MS Office Word liegt}
var reg :TRegistry;
s :TStrings;
p,i :integer;
key,value:string;
wordpfad : string;
begin
reg := TRegistry.Create(KEY_READ);
s := TStringlist.Create;
reg.rootkey := HKEY_LOCAL_MACHINE;
key := '\Software\Microsoft\Office';
wordpfad := '';
if reg.OpenKeyReadOnly(key) then begin
reg.GetKeyNames(s);
if s.count>0 then key:=key +'\'+ s.Strings[0]+'\Word\InstallRoot';
// Ich habe zur Probe s.strings[0] genommen
// Du müsstest vorher die Stringlist durchsuchen, an welcher Stelle die höchste Versionsnummer steht
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;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.