Конференция "WinAPI" » Как программно получить путь до папки Application Data для пользо [D7, WinXP]
 
  • bzzz © (23.09.09 06:36) [0]
    Есть задача, программно получить путь до папки Application Data для пользователя LocalService?

    Для текущего пользователя это можно сделать вот так:


     PItemID : PItemIDList;
     ansiSbuf : array[0..MAX_PATH] of char;
     AppData : String;
     
     SHGetSpecialFolderLocation( Handle, CSIDL_APPDATA, PItemID );
     SHGetPathFromIDList( PItemID, @ansiSbuf[0] );
     AppData := ansiSbuf;



    А как сделать тоже самое для пользователя LocalService?
  • clickmaker © (23.09.09 13:04) [1]
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
  • __Алексей__ (23.09.09 17:56) [2]
    Вот так:

    function GetSpecialFolderPath(FolderID: Cardinal): string;
    (*  CSIDL_PERSONAL, { My Documents }
     CSIDL_APPDATA, { Application Data, new for NT4 }
     CSIDL_LOCAL_APPDATA, { non roaming, user\Local Settings\Application Data }
     CSIDL_INTERNET_CACHE,
     CSIDL_COOKIES,
     CSIDL_HISTORY,
     CSIDL_COMMON_APPDATA, { All Users\Application Data }
     CSIDL_WINDOWS, { GetWindowsDirectory() }
     CSIDL_SYSTEM, { GetSystemDirectory() }
     CSIDL_PROGRAM_FILES, { C:\Program Files }
     CSIDL_MYPICTURES, { My Pictures, new for Win2K }
     CSIDL_PROGRAM_FILES_COMMON, { C:\Program Files\Common }
     CSIDL_COMMON_DOCUMENTS, { All Users\Documents }
     CSIDL_FLAG_CREATE, { new for Win2K, or this in to force creation of folder }
     CSIDL_COMMON_ADMINTOOLS, { All Users\Start Menu\Programs\Administrative Tools }
     CSIDL_ADMINTOOLS); { <user name>\Start Menu\Programs\Administrative Tools }
     *)

    var S: PChar;
     T, F: Cardinal;
    begin
     T := 0; F := 0;
     GetMem(S, Max_Path);
     try
       SHFolder.SHGetFolderPath(0, FolderID, T, F, S);
       result := s;
     finally
       FreeMem(S, Max_Path);
     end;
    end;



    Использую для обмена настройками сервиса и консоли. Общая папка для всех пользователей. Ваш случай с LocalService и есть такой случай.
 
Конференция "WinAPI" » Как программно получить путь до папки Application Data для пользо [D7, WinXP]
Есть новые Нет новых   [134434   +26][b:0][p:0.001]