Trouver les dossier spéciaux de windows
Trouver les dossier spéciaux de windows
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| //ShlObj
CSIDL_DESKTOP = $0000;
CSIDL_INTERNET = $0001;
CSIDL_PROGRAMS = $0002;
CSIDL_CONTROLS = $0003;
CSIDL_PRINTERS = $0004;
CSIDL_PERSONAL = $0005;
CSIDL_FAVORITES = $0006;
CSIDL_STARTUP = $0007;
CSIDL_RECENT = $0008;
CSIDL_SENDTO = $0009;
CSIDL_BITBUCKET = $000a;
CSIDL_STARTMENU = $000b;
CSIDL_DESKTOPDIRECTORY = $0010;
CSIDL_DRIVES = $0011;
CSIDL_NETWORK = $0012;
CSIDL_NETHOOD = $0013;
CSIDL_FONTS = $0014;
CSIDL_TEMPLATES = $0015;
CSIDL_COMMON_STARTMENU = $0016;
CSIDL_COMMON_PROGRAMS = $0017;
CSIDL_COMMON_STARTUP = $0018;
CSIDL_COMMON_DESKTOPDIRECTORY = $0019;
CSIDL_APPDATA = $001a;
CSIDL_PRINTHOOD = $001b;
CSIDL_ALTSTARTUP = $001d;
CSIDL_COMMON_ALTSTARTUP = $001e;
CSIDL_COMMON_FAVORITES = $001f;
CSIDL_INTERNET_CACHE = $0020;
CSIDL_COOKIES = $0021;
CSIDL_HISTORY = $0022;
// a ajouter
CSIDL_COMMON_APPDATA = $0023;
CSIDL_WINDOWS = $0024;
CSIDL_SYSTEM = $0025;
CSIDL_PROGRAM_FILES = $0026;
CSIDL_MYPICTURES = $0027;
CSIDL_PROFILE = $0028;
CSIDL_SYSTEMX86 = $0029;
CSIDL_PROGRAM_FILESX86 = $002A;
CSIDL_PROGRAM_FILES_COMMON = $002B;
CSIDL_PROGRAM_FILES_COMMONX86 = $002C;
CSIDL_COMMON_TEMPLATES = $002D;
CSIDL_COMMON_DOCUMENTS = $002E;
CSIDL_COMMON_ADMINTOOLS = $002F;
CSIDL_ADMINTOOLS = $0030;
CSIDL_FLAG_CREATE = $8000;
CSIDL_FLAG_DONT_VERIFY = $4000;
CSIDL_FLAG_MASK = $FF00; |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| uses ShlObj
function GetWinFolder_V1(FolderConst: Integer):string;
var
RC : Integer;
IDL : TSHItemID;
begin
result := '';
RC := SHGetSpecialFolderLocation(0, FolderConst, PItemIDList(IDL));
If RC = 0 Then
begin
Setlength(result,MAX_PATH);
ZeroMemory(PChar(result),MAX_PATH);
SHGetPathFromIDList(PItemIDList(IDL), PChar(result));
result:=Trim(result);
end;
end;
function GetWinFolder_V2(FolderConst: Integer):string;
begin
Setlength(result,MAX_PATH);
ZeroMemory(PChar(result),MAX_PATH);
SHGetSpecialFolderPath(0,PChar(result),FolderConst,Longbool(false));
result:=Trim(result);
end; |