Retrouver les dossiers de Windows

o_GetPathWinFolders renvoie le chemin de certains dossiers utilisés par Windows.

Syntaxe

function o_GetPathWinFolders( _iddossier: integer ): string;

Paramètres

_iddossier: integer : peut avoir une des valeurs suivantes:


CSIDL_DESKTOP = 0 = Dossier Virtuel représentant le Bureau
CSIDL_INTERNET = 1 = Dossier Virtuel Internet
CSIDL_PROGRAMS = 2 = Dossier Programmes du Menu Démarrer
CSIDL_CONTROLS = 3 = Dossier Virtuel contenant les icônes des applications
du Panneau de Contrôle
CSIDL_PRINTERS = 4 = Dossier Virtuel contenant les Imprimantes Installées
CSIDL_PERSONAL = 5 = Dossier Mes Documents
CSIDL_FAVORITES = 6 = Dossier Favoris
CSIDL_STARTUP = 7 = Dossier Démarrage dans le dossier

Programmes du Menu Démarrer
CSIDL_RECENT = 8 = Dossier Récent
CSIDL_SENDTO = 9 = Dossier SendTo
CSIDL_BITBUCKET = 10 = Dossier Virtuel contenant les fichiers de la Corbeille
CSIDL_STARTMENU = 11 = Dossier Menu Démarrer
CSIDL_MYDOCUMENTS= 12 = Dossier Virtuel contenant les fichiers du dossier
Mes Documents
CSIDL_MYMUSIC = 13 = Dossier Mes Musiques
CSIDL_MYVIDEO = 14 = Dossier Mes Vidéos
CSIDL_DESKTOPDIRECTORY = 16 = Dossier physique contenant les objets du Bureau

CSIDL_DRIVES = 17 = Dossier Virtuel My Computer
CSIDL_NETWORK = 18 = Dossier Virtuel Voisinage réseau
CSIDL_NETHOOD = 19 = Dossier physique Nethood
CSIDL_FONTS = 20 = Dossier Fonts
CSIDL_TEMPLATES = 21 = Dossier ShellNew
CSIDL_COMMON_STARTMENU = 22 = Dossier Menu Démarrer pour All Users
CSIDL_COMMON_PROGRAMS = 23 = Dossier Programmes dans le menu Démarrer
pour All Users
CSIDL_COMMON_STARTUP = 24 = Dossier Démarrage dans le dossier
Programmes du Menu Démarrer pour All Users

CSIDL_COMMON_DESKTOPDIRECTORY = 25 = Dossier Physiques du Bureau pour All Users
CSIDL_APPDATA = 26 = Dossier Application Data
CSIDL_PRINTHOOD = 27 = Dossier PrintHood
CSIDL_LOCAL_APPDATA = 28 = Dossier Application Data dans Local Settings
pour le Current User
CSIDL_ALTSTARTUP = 29 = NT Only
CSIDL_COMMON_ALTSTARTUP = 30 = NT Only
CSIDL_COMMON_FAVORITES = 31 = Dossier Favoris pour All Users
CSIDL_INTERNET_CACHE = 32 = Dossier Temporary Internet Files

CSIDL_COOKIES = 33 = Dossier Cookies
CSIDL_HISTORY = 34 = Dossier Historiques
CSIDL_COMMON_APPDATA = 35 = Dossier Physique Application Data pour All users
CSIDL_WINDOWS = 36 = Répertoire windows
CSIDL_SYSTEM = 37 = Répertoire System 32 de Windows
CSIDL_PROGRAM_FILES = 38 = Dossier Program Files
CSIDL_MYPICTURES = 39 = Dossier physique de My Pictures pour Current Users
CSIDL_PROFILE = 40 = Dossier Physique du Current Users
CSIDL_SYSTEMX86 = 41 = x86 system directory on RISC systems

CSIDL_PROGRAM_FILESX86 = 42 = x86 Program Files folder on RISC systems
CSIDL_PROGRAM_FILES_COMMON = 43 = Dossier Common files de Program Files
CSIDL_PROGRAM_FILES_COMMONX86 = 44 = x86 Program Files Common folder on RISC systems
CSIDL_COMMON_TEMPLATES = 45 = Dossier Physique ShellNew pour AllUsers
CSIDL_COMMON_DOCUMENTS = 46 = Dossier Physique Documents pour AllUsers
CSIDL_COMMON_ADMINTOOLS = 47 = Dossier Physique pour l'administrative tools
CSIDL_ADMINTOOLS = 48 = Dossier Start MenuPrograms
Administrative Tools
CSIDL_CONNECTIONS = 49 = Dossier Virtuel contenant les connections réseaux
et dial-up
CSIDL_COMMON_MUSIC = 53 = Dossier physique My Music pour AllUsers
CSIDL_COMMON_PICTURES = 54 = Dossier physique My Pictures pour AllUsers
CSIDL_COMMON_VIDEO = 55 = Dossier physique My Video pour AllUsers
CSIDL_RESOURCES = 56 = Dossier physique Ressources de Windows
CSIDL_RESOURCES_LOCALIZED= 57 = Dossier physique Ressources Localisées de Windows
CSIDL_COMMON_OEM_LINKS = 58 =
CSIDL_CDBURN_AREA = 59 = Dossier CD Burning de Windows
CSIDL_COMPUTERSNEARME = 60 = Dossier Virtuel Work Group NetWork



Retour

Renvoie une chaîne contenant le chemin du dossier demandé.
Renvoie une chaîne vide '' en cas de dossier introuvable.

Remarque

o_GetPathWinFolders exploite l'API SHGetFolderPath contenue dans SHFolder.dll

Les const antes CSIDL_ sont présentes suivant la version de SHFolder.dll et donnent un
résultat en fonction du système d'exploitation.

Exemple

o_GetPathWinFolders( CSIDL_FONTS ) : 'C:WINDOWSFONTS'

Code

function o_GetPathWinFolders( _iddossier: integer ): string;

type // API non déclarées dans SHFolder.dll
TSHGetFolderPath = function (hwnd: HWND; csidl: Integer; hToken: THandle; dwFlags: DWord;
pszPath: PAnsiChar): HRESULT; stdcall;

var
f_NomDossier: array[ 0..MAX_PATH ] of char;
SHGetFolderPath: TSHGetFolderPath;
PIDL : PItemIDList;
f_LibHdl: THandle;

begin

Result:='';

// Juste pour éviter un warning à la compilation
@SHGetFolderPath:= nil;

// Charger SHFolder.dll
f_LibHdl := LoadLibrary( PChar( 'SHFolder.dll' ) ) ;

if f_LibHdl <> 0 then
@SHGetFolderPath:= GetProcAddress( f_LibHdl , 'SHGetFolderPathA' );

// Adresse API trouvée ??
if @SHGetFolderPath <> nil then begin
SHGetFolderPath (0 , _iddossier , 0 , 0 , f_NomDossier );
Result:= f_NomDossier;
end;

// Libérer SHFolder.dll
FreeLibrary(f_LibHdl);

// Libérer mémoire
@SHGetFolderPath := nil ;

end;
( extrait de o_fonctions :
http://www.fobec.com/protec/grenier2/encadre.php3?cat=VUnité&id_log=35 )
Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour14/03/2009
VisualisationVu 1792 fois
PublicInternaute zz
CategorieDelphi - Trucs et astuces - Systeme
Auteur de l'article
olibul olibul
connecté le 23/11/2011
Belgique
14 articles dans la section
Contacter l'auteur