Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить путь к папке Documents and Settings ??? [D7, WinXP]


rolex ©   (2005-06-02 11:09:00) 

Как получить путь к папке Documents and Settings ???


Ученик   (2005-06-05 22:15:00) [1]

>Ученик   (05.06.05 22:08) [17]

Пример на Delphi



function GetProfilesDirectory(
 lpProfilesDir: PChar;   // profile path buffer
 var lpcchSize: DWord    // size of profile path buffer
): Bool; stdcall; external 'userenv.dll' name 'GetProfilesDirectoryA';

procedure TForm1.Button1Click(Sender: TObject);
var
 szBuffer: array[0..MAX_PATH] of Char;
 dwSize: DWord;
begin
 dwSize := MAX_PATH;
 if GetProfilesDirectory(szBuffer, dwSize) then
   ShowMessage(szBuffer)
end;


Ученик   (2005-06-05 22:08:00) [2]

>rolex   (05.06.05 19:54) [16]



The GetProfilesDirectory function retrieves the path to the root directory where all user profiles are stored.

BOOL GetProfilesDirectory(
 LPTSTR lpProfilesDir,  // profile path buffer
 LPDWORD lpcchSize      // size of profile path buffer
);

The following is an example of the path returned by the GetProfilesDirectory function:

C:\Documents and Settings

Userenv.dll


rolex   (2005-06-05 19:54:00) [3]

GetProfilesDirectory- а можно по подробнее?


Ученик   (2005-06-05 15:57:00) [4]

>rOOse ©   (05.06.05 15:42) [14]
Это будет работать для текущего пользователя

P.S. >rolex   (02.06.05 11:09)
Еще можно использовать GetProfilesDirectory


rOOse   (2005-06-05 15:42:00) [5]

GetTempPath


Ученик   (2005-06-05 14:50:00) [6]

>Ученик   (05.06.05 14:34) [12]
Похоже, там, не все пользователи :-(


Ученик   (2005-06-05 14:34:00) [7]

>rolex   (05.06.05 14:01) [11]

Может быть через обработку HKEY_USERS,
HKEY_USERS\????\Environment


rolex   (2005-06-05 14:01:00) [8]

Нужно вывести список папок с временными файлами для всех пользователей.


Anatoly Podgoretsky   (2005-06-05 13:12:00) [9]

А какой вопрос?


rolex   (2005-06-05 13:09:00) [10]

Ну и как тогда решить вопрос?


Anatoly Podgoretsky   (2005-06-05 12:40:00) [11]

Gero ©   (02.06.05 15:41) [5]
А тогда о чем говорить.

rolex   (05.06.05 12:27) [7]
Ересь, папка TEMP конкретного пользователя может быть где угодно. Это определяется не папкой, а переменной пользователя.


rolex   (2005-06-05 12:27:00) [12]

Я почему спрашиваю, передомной следующая задача:
Нужно вывести список папок с временными файлами для всех пользователей.

Я это думаю сделать так:
Получаю диск, на котором установлена винда.
К этому диску приписываю +'Documents and Settings'.
Далее из папки Documents and Settings для каждой подпапки (а подпапки - это пользователи) приписываю '\Local Settings\Temp'.
Как думаете, могут ли быть исключения?
К примеру, папка Documents and Settings будет называться по другому или находиться в другом месте, или может ещё что-нибудь?


wal   (2005-06-02 16:22:00) [13]

\\ads\dfs\profiles\wal\MyDocuments

Так у меня выглядит путь к "Моим документам", какую часть этого считать "Documents and Settings"?
Если ее просто считать папкой, то поиском FindFirst(Next), если же придавать этой папке какой-то специфический смысл, то сначала его (этот смысл) определить нужно. Сама папка "С:\Documents and Settings", создаваемая при установке, никакого специфического смысла не имеет.

С уважением.


Gero   (2005-06-02 15:41:00) [14]


> 1. Берем для текущего юзера и для All Users.
> 2. Выделяем общую часть - это и будет Documents and Settings.

Путь может быть различен для разных пользователей.


Юрий Зотов   (2005-06-02 15:23:00) [15]

> rolex   (02.06.05 11:17) [3]
> SHGetSpecialFolderPath там нету пути на конкретно Documents
> and Settings!
> Есть только Documents and Settings\пользователь\спец. папки

Естественно. Его и не должно быть - это же не конечная, а промежуточная папка. Но почему бы не сделать, например, так:
1. Берем для текущего юзера и для All Users.
2. Выделяем общую часть - это и будет Documents and Settings.


rolex   (2005-06-02 11:17:00) [16]

SHGetSpecialFolderPath там нету пути на конкретно Documents and Settings!
Есть только Documents and Settings\пользователь\спец. папки


Cosinus   (2005-06-02 11:16:00) [17]

А не это разве SHGetSpecialFolderLocation + SHGetPathFromIDList?


Юрий Зотов   (2005-06-02 11:13:00) [18]

См. SHGetSpecialFolderPath


Наверх

Титульная страница Поиск, карта сайта Написать письмо