Odczyt ścieżki dostępu do katalogów specjalnych (pulpit, kosz, moje dokumenty, ...)
Aby po kliknięciu przycisku Button1 na etykiecie Label1 wyświetlić ścieżkę dostępu do jednego z katalogów specjalnych należy skorzystać z funkcji Windows API SHGetSpecialFolderLocation i SHGetPathFromIDList (należy dołączyć plik nagłówkowy shlobj.h), poniższy przykład pokazuje sposób odczytu ścieżki dostępu do kosza:
Unit1.cpp |
#include <shlobj.h> if (SUCCEEDED(SHGetMalloc(&pShellMalloc))) |
Zamiast CSIDL_BITBUCKET można użyć:
(w nawiasach podane są najczęściej spotykane ścieżki dostępu)
CSIDL_CONTROLS | Panel sterowania (?) |
CSIDL_DESKTOP | Pulpit (c:\windows\pulpit) |
CSIDL_DESKTOPDIRECTORY | Katalog pulpitu (c:\windows\pulpit) |
CSIDL_DRIVES | Mój komputer (?) |
CSIDL_FONTS | Czcionki (c:\windows\fonts) |
CSIDL_NETHOOD | Otoczenie sieciowe (c:\windows\nethood) |
CSIDL_NETWORK | Wirtualny folder otoczenia sieciowego (?) |
CSIDL_PERSONAL | Moje dokumenty (c:\moje dokumenty) |
CSIDL_PRINTERS | Drukarki (?) |
CSIDL_PROGRAMS | Programy z Menu Start (c:\windows\menu start\programy) |
CSIDL_RECENT | Ostatnio używane (c:\recent) |
CSIDL_SENDTO | Wyślij do (c:\windows\sendto) |
CSIDL_STARTMENU | Menu Start (c:\windows\menu start) |
CSIDL_STARTUP | Autostart (c:\windows\menu start\programy\autostart) |
CSIDL_TEMPLATES | Szablony dokumentów (c:\windows\shellnew) |
Wywołanie funkcji SHGetSpecialFolderLocation z jednym z powyższych parametrów czasami może nie wyświetlić ścieżki dostępu, ponieważ nie istnieje w systemie folder dla wybranego elementu.