Ścieżki do folderów Osobistych oraz Systemowych
DRProject
Zdecydowałem się napisać ten artykuł, ponieważ problem który przedstawię jest błahy, a wydaje się trudny.
W jaki sposób można pobrać z systemu ścieżkę do folderu np. "Moje dokumenty" czy "Wyślij do ..."?
Wystarczy odczytać odpowiedni klucz w rejestrze i to wszystko !
Na początek zalecam otwarcie edytora rejestru(regedit.exe). Dzięki temu przyglądniemy się bliżej jego budowie.
<font color="red">Uwaga!
Przed eksperymentowaniem w rejestrze koniecznie trzeba zrobić jego kopię zapasową.
(Można to zrobić w bardzo prosty sposób kopiując do bezpiecznego miejsca plik System.dat )</span>
Przechodzimy do klucza:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Widzimy tam listę ciągów wartości. Nie trudno się do myśleć co przedstawia co. Ale na wszelki wypadek podaję
ich znaczenia(wartości opisywać będę od góry do dołu :):
(Domyślna) - wartość nieustalona (lepiej zostawić w spokoju)
Administrative Tools - ścieżka do narzędzi administratorskich
AppData - ścieżka do danych aplikacji
Cache - ścieżka do pamięci podręcznej przeglądarek
CD Burning - ścieżka do folderu Nagrywanie Dysków CD
Cookies - ścieżka do folderu w którym znajdują się "nieświeże ;)" ciasteczka
Desktop - ścieżka do pulpitu
Favories - ścieżka do folderu ulubione
Fonts - ścieżka do folderu w którym są przechowywane zainstalowane w systemie czcionki(wartość ta jest identyczna dla każdego użytkownika chyba, że sobie ktoś zmienił)
History - ścieżka do folderu historia
Local AppData - ścieżka do lokalnych danych programów
Local Settings - ścieka do ustawień lokalnch
My Music - ścieżka do folderu Moja muzyka
My Pictures - ścieżka do folderu Moje obrazy
My Video - ścieżka do folderu Moje wideo
NetHood - ścieżka do otoczenia sieciowego plików
Personal - ścieżka do folderu Moje dokumenty
PrintHood - ścieżka do otoczenia sieciowego drukarek
Programs - ścieżka do menu start programy
Recent - ścieżka do folderu w którym znajdziemy kolejne "śmiecie", czyli Niedawno używane dokumenty
SendTo - ścieżka do folderu "Wyślij do ..." (zawartość tego folderu widzimy klikając prawym klawiszem na dowolny plik i wybierając Wyślij do ...) w którym znajdują się skróty do programów czy lokalizacji
StartMenu - ścieżka do folderu zawierającego elementy menu Start
Startup - ścieżka do folderu autostart ( jeśli umieścimy w nim skrót do naszego programu zostanie on uruchomiony wraz z systemem)
Templates - ścieżka do folderu Szablony
Przedstawiam banalną funkcję dzięki której będziemy mogli pobrać wybrane przez nas adresy folderów:
(Nie będę omawiać tutaj obsługi rejestru, ponieważ jest już o tym artykuł i mnóstwo wątków na naszym Forum)
uses Registry;
function PobierzAdres(sNazwa: string): string;
var
Rejestr : TRegistry;
begin
Rejestr := TRegistry.Create;
Rejestr.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders', False);
Result := Rejestr.ReadString(sNazwa);
Rejestr.Free;
end;
Prawda, że proste! Wywołując funkcję jako zmienną sNazwa podajemy żądaną wartość, np. Pesonal
I już funkcja zwróci nam np: d:</i> <= tak jest w moim przypadku :)
Myślę, że to już wszystko. Jeśli zdarzyły się jakieś błędy - proszę o korektę.
Pozdrawiam całe ZSŁ w Krakowie i użytkowników 4programmers.net
BoskiRoman ;)
wiem że postawię kleksa tym pytaniem ale jak sę dostać do folderu z danymi tymczasowymi tzw TEMP ?
dobre proste rozwiązanie :|
Osobiście uważam, że bardziej pro jest użycie do tego dedykowanej funkcji: Jak odczytać ścieżki folderów specjalnych.