Okay.
Hier ist mal der bisherige Quellcode der Leider überhaupt nicht läuft. Müsste ich auch für jedes Office-Programm (Word, Excel, Outlook, ...) eine neue Prozedur schreiben oder kann man das auch in einer lösen.
Delphi-Quellcode:
procedure LookUpRegistry;
{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 := '';
if reg.OpenKeyReadOnly('\Software\Microsoft\Office') then begin
key:='';
reg.CloseKey;
end else if reg.OpenKeyReadOnly('\Software') then begin
reg.GetKeyNames(s);
p:=-1;
for i:=0 to s.Count-1 do if pos('Microsoft',s.Strings[i])>0 then p:=i;
if p>=0 then key:='\Software\'+ s.Strings[p];
reg.CloseKey;
end;
if (length(key) > 0) and (reg.OpenKeyReadOnly(key)) then begin
reg.GetKeyNames(s);
if s.count>0 then key:='\Software\Microsoft\' + s.Strings[s.count-1];
reg.CloseKey;
if reg.OpenKeyReadOnly(key) then begin
value:=reg.ReadString('');
reg.CloseKey;
if pos(';',value)>0 then value:=copy(value,1,pos(';',value)-1);
value:=extractfiledir(value)+'\winword.exe';
if fileexists(value) then wordpfad:=value;
end;
end;
end;