Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.04.23;
Скачать: CL | DM;

Вниз

получить путь к Users...   Найти похожие ветки 

 
guest   (2015-08-24 15:35) [0]

как получить путь к папке Users (к примеру c:\Users\ или с:\Пользователи\ в вин7-8 и C:\Documents and Settings\ в винХР) из-под системной учетки (процесс под system)?

про SHGetFolderPath в курсе, но он пошлет меня в C:\ProgramData\ в случае с вин7+....


 
DVM ©   (2015-08-24 15:51) [1]


> про SHGetFolderPath в курсе

Теперь модно пользоваться SHGetKnownFolderPath()


> но он пошлет меня в C:\ProgramData\

С чего вдруг он тебя туда пошлет?


 
guest   (2015-08-24 16:09) [2]

послал в C:\Windows\system32\config\systemprofile\AppData\Roaming\ при параметрах CSIDL_APPDATA, SHGFP_TYPE_CURRENT


 
guest   (2015-08-24 16:14) [3]

послал в C:\ProgramData\ при CSIDL_COMMON_APPDATA, SHGFP_TYPE_CURRENT


 
guest   (2015-08-24 16:16) [4]

какой флаг указать, чтобы стабильно попадать в папку юзеров из-под любой учетки включая system?


 
DVM ©   (2015-08-24 16:21) [5]


> guest   (24.08.15 16:16) [4]

Через CSIDL_ туда не попасть.
SHGetKnownFolderPath() + FOLDERID_UserProfiles
https://msdn.microsoft.com/en-us/library/windows/desktop/dd378457(v=vs.85).aspx


 
DVM ©   (2015-08-24 16:30) [6]



uses
 Windows, ActiveX;

type
 TKnownFolderID = TGUID;
const

 FOLDERID_UserProfiles: TKnownFolderID = "{0762D272-C50A-4BB0-A382-697DCD729B80}";

function GetKnownFolderPath(const ID: TKnownFolderID): WideString;
type
 TSHGetKnownFolderPath = function(const rfid: TKnownFolderID; dwFlags: DWord;
   hToken: THandle; var ppSzPath: LPWSTR) : HResult; stdCall;
var
 hShell: HModule;
 SHGetKnownFolderPath: TSHGetKnownFolderPath;
 Buffer: LPWSTR;
begin
 Result := "";
 hShell := LoadLibrary("shell32.dll");
 if hShell > 0 then
   try
     @SHGetKnownFolderPath := GetProcAddress(hShell, "SHGetKnownFolderPath");
     if Assigned(SHGetKnownFolderPath) then
       if Succeeded(SHGetKnownFolderPath(ID, 0, 0, Buffer)) then
         try
           Result := Buffer;
         finally
           CoTaskMemFree(Buffer);
         end;
   finally
     FreeLibrary(hShell);
   end;
end;


 
guest   (2015-08-24 16:50) [7]

угу, спасибо, GetKnownFolderPath работает для vista+.. а для winxp папка c:\documents and settings\ постоянна для всех языков да?


 
guest   (2015-08-24 17:00) [8]

вернее %SYSTEMDRIVE%\documents and settings\ для ХР...


 
DVM ©   (2015-08-24 17:16) [9]


> а для winxp папка c:\documents and settings\ постоянна для
> всех языков да?

А зачем вообще нужен путь именно к documents and settings ? Там же вложенные папки обычно используются, но не она сама.


 
guest   (2015-08-24 22:21) [10]

мне нужна она сама, чтобы потом уже бегать по папкам всех юзеров и искать в них кое-что


 
DVM ©   (2015-08-25 11:30) [11]


> guest   (24.08.15 22:21) [10]

Папки юзеров могут быть перенесены из папки Users


 
ВладОшин ©   (2015-09-04 22:34) [12]

https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb762203(v=vs.85).aspx


 
Германн ©   (2015-09-05 01:15) [13]


> ВладОшин ©   (04.09.15 22:34) [12]
>
> https://msdn.microsoft.com/ru-ru/library/windows/desktop/bb762203(v=vs.
> 85).aspx
>

Влад, устарело это уже давно. Пока поддерживается, но зачем эту фукнцию рекомендовать?



Страницы: 1 вся ветка

Текущий архив: 2017.04.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.005 c
8-1240846731
Витя
2009-04-27 19:38
2017.04.23
Как сделать чтоб MediaPlayer воспроизвадил видео на panel


15-1460496602
Юрий
2016-04-13 00:30
2017.04.23
С днем рождения ! 13 апреля 2016 среда


2-1440419749
guest
2015-08-24 15:35
2017.04.23
получить путь к Users...


8-1240654783
ForumReader
2009-04-25 14:19
2017.04.23
Быстрый поиск паттерна в BMP изображении...


2-1441390617
guest
2015-09-04 21:16
2017.04.23
unicode to ansistring...