![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск временного каталога.
Grant © (2005-12-20 13:59:00)Всем привет. Мне необходимо получить строку с временным каталогом Windows. Есть функция - GetTempPath, которая собственно его и возвращает. Но есто одно неудобство. Она возвращает путь к примеру - С:\DOCUME~1\LOCAL~1\Temp.
Этот путь я вывожу например с помощью ShowMessage.
И некоторым пользователям непонятно что такое DOCUME~1. Подскажите есть ли возможность получать полный путь к каталогу. Спасибо.
begin...end (2005-12-20 18:37:00) [1]> umbra © (20.12.05 18:33) [7]
Она тоже возвращает короткий путь.
umbra (2005-12-20 18:33:00) [2]в модуле
SysUtilsесть функцияGetEnvironmentVariable(Name: string): string;
Grant (2005-12-20 15:47:00) [3]Спасибо большое. Я просто протупил. Забыл как дергаются функции из dll.:) Всё работает. Ещё раз спасибо.
Rouse_ (2005-12-20 15:37:00) [4]Я же тебе показал как его обьявить...
type
function GetLongPathNameA(lpszShortPath, lpszLongPath: PChar;
cchBuffer: DWORD): DWORD; stdcall external kernel32;
Grant (2005-12-20 15:25:00) [5]Ну и где мне взять GetLongPathNameA? Что-то не могу её я найти.
Rouse_ (2005-12-20 14:20:00) [6]
type
function GetLongPathNameA(lpszShortPath, lpszLongPath: PChar;
cchBuffer: DWORD): DWORD; stdcall external kernel32;
...
procedure TForm1.Button2Click(Sender: TObject);
var
ShortPath, LongPath: array[0..MAX_PATH - 1] of Char;
begin
if GetTempPath(MAX_PATH, @ShortPath[0]) > 0 then
if GetLongPathNameA(ShortPath, @LongPath[0], MAX_PATH) > 0 then
ShowMessage(String(LongPath));
end;
kami (2005-12-20 14:19:00) [7]Упс... прошу прощения, нет такого CSIDL для получения temp папки.
kami (2005-12-20 14:08:00) [8]Использовать SHGetSpecialFolderLocation=>SHGetPathFromIDList