[Delphi] eMule i jego katalogi

0

Jak pobrać katalog tymczasowy oraz katalog na już pobrane pliki? Katalogi dotyczą oczywiście Emule i mogą one być zmieniane przez urzytkownika - mnie chodzi o aktualne katalogi jakie są ustawione w programie [!!!] Może jakiś kodzik źródłowy by ktoś zapodał :?:
Z góry wielkie dzięki

0

Ustawienia programu są zawarte w pliku "preferences.ini" w "<katalog programu="programu">\config". W sekcji [eMule] folder tymczasowy możemy znaleźć "IncomingDir=<jakiś katalog>" i "TempDir=<jakiś katalog>".
Jeśli chodzi o Delphi to dane te możemy uzyskać wpisująć najpierw w sekcji
uses IniFiles.

var
    katalogIncomming : String;
    katalogTemp : String;
    plik : TINIFiles;
begin
    try
       plik := TINIFile.Create('C:\Program files\eMule\config\preferences.ini');
       katalogIncomming := plik.ReadString('eMule', 'IncomingDir', '');
       katalogTemp := plik.ReadString('eMule', 'TempDir','');
    finally
       plik.Free;
    end;
end;
0

Aby w pełni zautomatyzować sobie działanie możemy wydobyć z rejestru ścieżkę do programu.
Czyli pełny kod wyglądałby tak:

uses IniFiles, Registry;
var
    katalogIncomming : string;
    katalogTemp : string;
    plik : TINIFiles;
    reg : TRegistry;
begin
    reg := TRegistry.Create;
    try
        reg.OpenKey('Software\eMule', false);
        plik := TINIFile.Create(reg.ReadString('Install Path', '')+'\config\preferences.ini');
        try
           katalogIncomming := plik.ReadString('eMule', 'IncomingDir', '');
           katalogTemp := plik.ReadString('eMule', 'TempDir','');
        finally
           plik.Free;
        end;
    finally
        reg.Free;
    end;
end;

Oczywiście możesz tu dodać coś,żeby sprawdzało, czy ten klucz w rejestrze istnieje.
Nie sprawdzałem ale powinno działać. :)

0

Dzięki. Kod jest OK.

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