Programowanie w języku Delphi » Artykuły

Ścieżki do folderów Osobistych oraz Systemowych

  • 2009-02-16 12:16
  • 3 komentarze
  • 2138 odsłon
  • Oceń ten tekst jako pierwszy
  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.
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 )



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:\ <= 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 ;)

3 komentarze

niedobry 2013-09-01 10:25

wiem że postawię kleksa tym pytaniem ale jak sę dostać do folderu z danymi tymczasowymi tzw TEMP ?

DelphiX 2012-05-27 20:45

dobre proste rozwiązanie :|

maxi 2010-04-14 13:07

Osobiście uważam, że bardziej pro jest użycie do tego dedykowanej funkcji: Jak odczytać ścieżki folderów specjalnych.