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

Вниз

Как получить адрес папки "Temporary Internet Files" ?   Найти похожие ветки 

 
Интер   (2005-07-26 01:40) [0]

Она для разных Виндос в разных местах находится . Поэтому нужна стандартная функция получения папки. Кто знает её ?


 
KilkennyCat ©   (2005-07-26 01:42) [1]

http://delphimaster.net/view/4-1122192428/&web=1


 
GanibalLector ©   (2005-07-26 01:55) [2]

Что-то типа :

var IE_CACHE_LIST: PItemIDList; IECachePath: array[0..255] of Char;
    SHIE: TSHFileOpStruct;
begin
FillChar(IE_CACHE_LIST, SizeOf(IE_CACHE_LIST), 0);
FillChar(SHIE, SizeOf(SHIE), 0);
SHGetSpecialFolderLocation(0, CSIDL_INTERNET_CACHE, IE_CACHE_LIST);
SHGetPathFromIDList(IE_CACHE_LIST, IECachePath);
Caption:= PChar(PChar(@IECachePath));
end;


 
Интер   (2005-07-26 02:14) [3]


> KilkennyCat ©   (26.07.05 01:42) [1]
> http://delphimaster.net/view/4-1122192428/&web=1


Причём тут "Мой компьютер" ?


> GanibalLector ©   (26.07.05 01:55) [2]


Сейчас как попробую !


 
KilkennyCat ©   (2005-07-26 02:20) [4]


> Причём тут "Мой компьютер" ?


Мда...
На днях один чел ругал меня за неправильный совет по использованию автомобильного аккумулятора.
Однако, совет был правильный, только он его использовал ТУПО.


 
имя   (2005-07-26 02:23) [5]

Удалено модератором


 
имя   (2005-07-26 02:57) [6]

Удалено модератором


 
begin...end ©   (2005-07-26 09:24) [7]

> GanibalLector ©   (26.07.05 1:55) [2]

> FillChar(IE_CACHE_LIST, SizeOf(IE_CACHE_LIST), 0)

Это так указатель (PItemIDList) обнуляется? Во-первых, зачем ТАК, а во-вторых, зачем его вообще обнулять?

> FillChar(SHIE, SizeOf(SHIE), 0)

А причём здесь TSHFileOpStruct?

> Caption:= PChar(PChar(@IECachePath))

Потрясающе!

И плюс к этому, не освобождается память, выделенная под ItemIDList. Читаем MSDN (по SHGetSpecialFolderLocation):

ppidl
[out] A pointer to an item identifier list (PIDL) specifying the folder"s location relative to the root of the namespace (the desktop). The calling application is responsible for freeing this pointer with the Shell"s IMalloc interface (see SHGetMalloc).

Далее смотрим SHGetMalloc, и видим, что освобождать память надо с помощью CoTaskMemFree.

Рабочий код:

procedure TForm1.Button1Click(Sender: TObject);
var
 Path: array [0..MAX_PATH] of Char;
begin
 if SHGetSpecialFolderPath(Handle, Path, CSIDL_INTERNET_CACHE, False) then
   Caption := Path
end.



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

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

Наверх




Память: 0.48 MB
Время: 0.05 c
4-1119447130
alkmas
2005-06-22 17:32
2005.08.14
Установка переменной окружения в родительском процессе


3-1120674484
Unavaible
2005-07-06 22:28
2005.08.14
Unavaible database


6-1115291143
Андрей Пономарев
2005-05-05 15:05
2005.08.14
IdHTTP: содержимое страницы


4-1118513956
Unknown user
2005-06-11 22:19
2005.08.14
hDIB для TBitmap


3-1120744395
RayRom
2005-07-07 17:53
2005.08.14
Последняя запись в связке один ко многим, нужна помощь!!!