Je sais que ça a déjà été fait sous forme de lib, mais bon... comme on dit : "Ca mange pas de pain..."

La procédure au début peut certainement être améliorée pour prendre en compte les différentes versions de Windows.
Chaque macro comporte un commentaire qui indique son utilité. C'est une libre interprétation de la doc Microsoft, la traduction risque d'être un peu approximative. Faut faire avec.
Certains commentaires sont suivis d'une astisque (*). Ca indique que la macro ne fonctionne pas chez moi (ou plutôt, elle fonctionne mais ne renvoit rien).
Code : Tout sélectionner
#CSIDL_PROFILES = 62
Procedure.s GetFolderLocation(Value.l)
If SHGetSpecialFolderLocation_(#Null, Value , @Ret) = #S_OK
Loc.s = Space(#MAX_PATH)
SHGetPathFromIDList_(Ret, @Loc)
ProcedureReturn Loc
Else
ProcedureReturn #Null$
EndIf
EndProcedure
Macro GetDesktop ; Dossier virtuel représentant le bureau Windows
GetFolderLocation(#CSIDL_DESKTOP)
EndMacro
Macro GetInternet ; Dossier virtuel représentant l'Internet *
GetFolderLocation(#CSIDL_INTERNET)
EndMacro
Macro GetPrograms ; Dossier systeme contenant le groupe de programmes de l'utilisateur
GetFolderLocation(#CSIDL_PROGRAMS)
EndMacro
Macro GetControls ; Dossier virtuel contenant les icônes du panneau de contrôle *
GetFolderLocation(#CSIDL_CONTROLS)
EndMacro
Macro GetPrinters ; Dossier virtuel contenant les imprimantes installées *
GetFolderLocation(#CSIDL_PRINTERS)
EndMacro
Macro GetMyDocuments ; Dossier virtuel représenté par l'icône "Mes Documents" sur le bureau
GetFolderLocation(#CSIDL_PERSONAL)
EndMacro
Macro GetFavorites ; Dossier système contenant les favoris (Internet Explorer) de l'utilisateur
GetFolderLocation(#CSIDL_FAVORITES)
EndMacro
Macro GetStartup ; Dossier système contenant les programmes lancés au démarrage de la session utilisateur
GetFolderLocation(#CSIDL_STARTUP)
EndMacro
Macro GetRecent ; Dossier système contenant les raccourcis vers les document récents
GetFolderLocation(#CSIDL_RECENT)
EndMacro
Macro GetSendTo ; Dossier système contenant les éléments du menu "Envoyer vers"
GetFolderLocation(#CSIDL_SENDTO)
EndMacro
Macro GetRecycle ; Dossier virtuel contenant les objets de la corbeille *
GetFolderLocation(#CSIDL_BITBUCKET)
EndMacro
Macro GetStartMenu ; Dossier système contenant les éléments du menu "Démarrer" de l'utilisateur
GetFolderLocation(#CSIDL_STARTMENU)
EndMacro
Macro GetMyDocuments_2 ; Dossier virtuel représenté par l'icône "Mes Documents" sur le bureau *
GetFolderLocation(#CSIDL_MYDOCUMENTS)
EndMacro
Macro GetMyMusic ; Dossier système contenant les musiques de l'utilisateur
GetFolderLocation(#CSIDL_MYMUSIC)
EndMacro
Macro GetMyVideo ; Dossier système contenant les vidéos de l'utilisateur
GetFolderLocation(#CSIDL_MYVIDEO)
EndMacro
Macro GetDesktopDir ; Dossier système contenant les éléments du bureau de l'utilisateur
GetFolderLocation(#CSIDL_DESKTOPDIRECTORY)
EndMacro
Macro GetDrives ; Dossier virtuel représenté par l'icône "Poste de Travail" *
GetFolderLocation(#CSIDL_DRIVES)
EndMacro
Macro GetNetwork ; Dossier virtuel représentant le "Voisinage Réseau" *
GetFolderLocation(#CSIDL_NETWORK)
EndMacro
Macro GetNetHood ; Dossier système contenant les liens vers les postes du "Voisinage Réseau"
GetFolderLocation(#CSIDL_NETHOOD)
EndMacro
Macro GetFonts ; Dossier système contenant les polices
GetFolderLocation(#CSIDL_FONTS)
EndMacro
Macro GetTemplates ; Dossier système contenant les modèles de documents
GetFolderLocation(#CSIDL_TEMPLATES)
EndMacro
Macro GetCommonStartMenu ; Dossier système contenant les éléments du menu "Démarrer" commun
GetFolderLocation(#CSIDL_COMMON_STARTMENU)
EndMacro
Macro GetCommonPrograms ; Dossier systeme contenant le groupe de programmes commun
GetFolderLocation(#CSIDL_COMMON_PROGRAMS)
EndMacro
Macro GetCommonStartup ; Dossier système contenant les programmes lancés au démarrage d'une session commune
GetFolderLocation(#CSIDL_COMMON_STARTUP)
EndMacro
Macro GetCommonDesktopDir ; Dossier système contenant les éléments du bureau commun
GetFolderLocation(#CSIDL_COMMON_DESKTOPDIRECTORY)
EndMacro
Macro GetAppData ; Dossier système contenant les données des applications de l'utilisateur
GetFolderLocation(#CSIDL_APPDATA)
EndMacro
Macro GetPrintHood ; Dossier système contenant les liens vers les objets du dossier virtuel "Imprimantes"
GetFolderLocation(#CSIDL_PRINTHOOD)
EndMacro
Macro GetLocalAppData ; Dossier système contenant les données des applications locales de l'utilisateur
GetFolderLocation(#CSIDL_LOCAL_APPDATA)
EndMacro
Macro GetAltStartup ; Dossier système contenant les programmes lancés au démarrage d'une session *
GetFolderLocation(#CSIDL_ALTSTARTUP)
EndMacro
Macro GetCommonAltStartup ; Dossier système contenant les programmes lancés au démarrage d'une session *
GetFolderLocation(#CSIDL_COMMON_ALTSTARTUP)
EndMacro
Macro GetCommonFavorites ; Dossier système contenant les favoris (Internet Explorer) communs
GetFolderLocation(#CSIDL_COMMON_FAVORITES)
EndMacro
Macro GetInternetCache ; Dossier système contenant le cache internet de l'utilisateur
GetFolderLocation(#CSIDL_INTERNET_CACHE)
EndMacro
Macro GetCookies ; Dossier système contenant les cookies de l'utilisateur
GetFolderLocation(#CSIDL_COOKIES)
EndMacro
Macro GetHistory ; Dossier système contenant l'historique de navigation de l'utilisateur
GetFolderLocation(#CSIDL_HISTORY)
EndMacro
Macro GetCommonAppDatas ; Dossier système contenant les données des applications communes
GetFolderLocation(#CSIDL_COMMON_APPDATA)
EndMacro
Macro GetWindows ; Dossier système Windows (Racine du système)
GetFolderLocation(#CSIDL_WINDOWS)
EndMacro
Macro GetSystem ; Dossier "System" ou "System32"
GetFolderLocation(#CSIDL_SYSTEM)
EndMacro
Macro GetProgramFiles ; Dossier "Program Files"
GetFolderLocation(#CSIDL_PROGRAM_FILES)
EndMacro
Macro GetMyPictures ; Dossier système contenant les images de l'utilisateur
GetFolderLocation(#CSIDL_MYPICTURES)
EndMacro
Macro GetProfile ; Dossier système contenant le profil de l'utilisateur
GetFolderLocation(#CSIDL_PROFILE)
EndMacro
Macro GetCommonProgramFile; Dossier système contenant les éléments partagé des programmes
GetFolderLocation(#CSIDL_PROGRAM_FILES_COMMON)
EndMacro
Macro GetCommonTemplates ; Dossier système contenant les modèles de documents communs
GetFolderLocation(#CSIDL_COMMON_TEMPLATES)
EndMacro
Macro GetDocuments ; Dossier système "Documents" commun
GetFolderLocation(#CSIDL_COMMON_DOCUMENTS)
EndMacro
Macro GetCommonAdminTools ; Dossier système contenant les outils d'administration communs
GetFolderLocation(#CSIDL_COMMON_ADMINTOOLS)
EndMacro
Macro GetAdminTools ; Dossier système contenant les outils d'administration de l'utilisateur *
GetFolderLocation(#CSIDL_ADMINTOOLS)
EndMacro
Macro GetCommonMusic ; Dossier système contenant les musiques communes
GetFolderLocation(#CSIDL_COMMON_MUSIC)
EndMacro
Macro GetCommonPictures ; Dossier système contenant les images communes
GetFolderLocation(#CSIDL_COMMON_PICTURES)
EndMacro
Macro GetCommonVideos ; Dossier système contenant les vidéos communes
GetFolderLocation(#CSIDL_COMMON_VIDEO)
EndMacro
Macro Get_CD_BurnArea ; Dossier système contenant les données à graver
GetFolderLocation(#CSIDL_CDBURN_AREA)
EndMacro
Macro GetProfiles ; Dossier contenant les profils de tous les utilisateurs *
GetFolderLocation(#CSIDL_PROFILES)
EndMacro
Debug GetProfiles