![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить адрес папки "Temporary Internet Files" ? [D7]
Интер © (2005-07-26 01:40:00)Она для разных Виндос в разных местах находится . Поэтому нужна стандартная функция получения папки. Кто знает её ?
begin...end (2005-07-26 09:24:00) [1]> 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.
(2005-07-26 02:57:00) [2]Удалено модератором
(2005-07-26 02:23:00) [3]Удалено модератором
KilkennyCat (2005-07-26 02:20:00) [4]
> Причём тут "Мой компьютер" ?
Мда...
На днях один чел ругал меня за неправильный совет по использованию автомобильного аккумулятора.
Однако, совет был правильный, только он его использовал ТУПО.
Интер (2005-07-26 02:14:00) [5]
> KilkennyCat © (26.07.05 01:42) [1]
> http://www.delphimaster.ru/cgi-bin/forum.pl?id=1122192428&n=5&web=1
Причём тут "Мой компьютер" ?
> GanibalLector © (26.07.05 01:55) [2]
Сейчас как попробую !
GanibalLector (2005-07-26 01:55:00) [6]Что-то типа :
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;
KilkennyCat (2005-07-26 01:42:00) [7]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1122192428&n=5&web=1