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

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

Поиск временного каталога.


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


Наверх

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