Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2017.04.23;
Скачать: [xml.tar.bz2];

Вниз

получить путь к 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.001 c
2-1441390617
guest
2015-09-04 21:16
2017.04.23
unicode to ansistring...


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


2-1441249805
Андрей_1
2015-09-03 06:10
2017.04.23
Преобразование xls в html


6-1283241621
RGV
2010-08-31 12:00
2017.04.23
Socks5


15-1460100846
Rouse_
2016-04-08 10:34
2017.04.23
Есть у нас спецы по гуглевскому Blogger?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский