sciezka z rejestru

0

jak wydobyć ścieżkę do pliku excel.exe z rejestru, a dokładniej z wpisów Excela
posługując się rejestrem (HKEY_CLASSES_ROOT\Excel.Addin\shell\Open\command) a konkretniej jak to przypisac do stringa.

mam:
reg := TRegistry.Create;
reg.RootKey:=HKEY_CLASSES_ROOT;
reg.OpenKey('Scalc.Addin/shell/Open/command',false);

and now what? czy poczatek tez bez sensu?

0

No przeciez masz tam wartosc cos w stylu: "C:\Program Files\Microsoft Office\OFFICE11\EXCEL.EXE" /e. Uzyj funkcji copy, pos i po sprawie.

0

nie rozumieć :/

0

znać funkcje COPY i POS ale nie umieć odczytac domyslnej wartosci z rejestru :/

0

Nie pamietam w tej chwili, ale chyba trzeba w nazwie klucza uzyc pustego ciagu ''. Zerknij tutaj: Rozdział 6

0
uses Registry;

function LokalizacjaExcela: string;
var
 s: string;
 Reg: TRegistry;
begin
 Reg := TRegistry.Create;
 Reg.RootKey := HKEY_CLASSES_ROOT;
 if Reg.KeyExists('\Excel.Addin\shell\Open\command') then
   begin
    Reg.OpenKey('\Excel.Addin\shell\Open\command',False);
    s := Reg.ReadString('');
    while Pos('"',s) <> 0 do Delete(s,Pos('"',s),1);
    Result := Copy(s,1,Pos('/',s)-2);
   end
 else Result := ''; //Klucz nie istnieje = Excel nie zainstalowany.
 Reg.CloseKey;
 Reg.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Label1.Caption := LokalizacjaExcela;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1