Trouver les dossier spéciaux de windows
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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;