[WD7.5] API pour effacer le dossier "Temporary Internet Files"
12 réponses
Vincent Barré
Bonjour
Qqu connaît-il le moyen "Propre" d'effacer le fichier index.dat des dossiers
"Temporary Internet Files", "History" et autres répertoires de
"surveillance" de Windows.
Car évidement les fonction fSupprime et fSupprimeRep ne marche pas sur ces
répertoire (Fichier bloqué par Windows).
Et le Ré-écriture dans ces fichier n'est pas très propre.
FILETIME est une structure dwLowDateTime est un entier dwHighDateTime est un entier FIN
INTERNET_CACHE_ENTRY_INFO est une structure dwStructSize est un entier lpszSourceUrlName est un entier lpszLocalFileName est un entier CacheEntryType est un entier dwUseCount est un entier dwHitRate est un entier dwSizeLow est un entier dwSizeHigh est un entier LastModifiedTime est un FILETIME ExpireTime est un FILETIME LastAccessTime est un FILETIME LastSyncTime est un FILETIME lpHeaderInfo est un entier dwHeaderInfoSize est un entier lpszFileExtension est un entier dwExemptDelta est un entier FIN
_ICEI est un INTERNET_CACHE_ENTRY_INFO
T_ICEI est une structure dwStructSize est un entier szRestOfData est un tableau fixe de 1024 entier FIN ICEI est une T_ICEI
hFile est un entier cachefile est une chaîne ASCIIZ sur 260 // MAX_PATH dwBuffer est un entier sans signe sur 4 octets pntrICE est un entier
ListeSupprimeTout(Liste)
ChargeDLL("wininet.dll")
ICEI:dwStructSize = 80 dwBuffer = 2048 hFile = AppelDLL32("wininet","FindFirstUrlCacheEntryA", Null, &ICEI, &dwBuffer) SI hFile <= 0 ALORS RETOUR
BOUCLE
Transfert(&_ICEI,&ICEI,Dimension(_ICEI))
SI ETBinaire(_ICEI:CacheEntryType,NORMAL_CACHE_ENTRY) NORMAL_CACHE_ENTRY ALORS AppelDLL32("kernel32","lstrcpyA", &cachefile, _ICEI:lpszSourceUrlName) ListeAjoute(Liste, cachefile) FIN
dwBuffer = 2048 SI PAS AppelDLL32("wininet","FindNextUrlCacheEntryA", hFile, &ICEI, &dwBuffer) ALORS SORTIR
SI ErreurInfo(errCodeSystème) = 259 ALORS SORTIR // NO_MORE_ITEM
FILETIME est une structure
dwLowDateTime est un entier
dwHighDateTime est un entier
FIN
INTERNET_CACHE_ENTRY_INFO est une structure
dwStructSize est un entier
lpszSourceUrlName est un entier
lpszLocalFileName est un entier
CacheEntryType est un entier
dwUseCount est un entier
dwHitRate est un entier
dwSizeLow est un entier
dwSizeHigh est un entier
LastModifiedTime est un FILETIME
ExpireTime est un FILETIME
LastAccessTime est un FILETIME
LastSyncTime est un FILETIME
lpHeaderInfo est un entier
dwHeaderInfoSize est un entier
lpszFileExtension est un entier
dwExemptDelta est un entier
FIN
_ICEI est un INTERNET_CACHE_ENTRY_INFO
T_ICEI est une structure
dwStructSize est un entier
szRestOfData est un tableau fixe de 1024 entier
FIN
ICEI est une T_ICEI
hFile est un entier
cachefile est une chaîne ASCIIZ sur 260 // MAX_PATH
dwBuffer est un entier sans signe sur 4 octets
pntrICE est un entier
ListeSupprimeTout(Liste)
ChargeDLL("wininet.dll")
ICEI:dwStructSize = 80
dwBuffer = 2048
hFile = AppelDLL32("wininet","FindFirstUrlCacheEntryA", Null, &ICEI,
&dwBuffer)
SI hFile <= 0 ALORS RETOUR
BOUCLE
Transfert(&_ICEI,&ICEI,Dimension(_ICEI))
SI ETBinaire(_ICEI:CacheEntryType,NORMAL_CACHE_ENTRY) NORMAL_CACHE_ENTRY ALORS
AppelDLL32("kernel32","lstrcpyA", &cachefile, _ICEI:lpszSourceUrlName)
ListeAjoute(Liste, cachefile)
FIN
dwBuffer = 2048
SI PAS AppelDLL32("wininet","FindNextUrlCacheEntryA", hFile, &ICEI,
&dwBuffer) ALORS SORTIR
SI ErreurInfo(errCodeSystème) = 259 ALORS SORTIR // NO_MORE_ITEM
FILETIME est une structure dwLowDateTime est un entier dwHighDateTime est un entier FIN
INTERNET_CACHE_ENTRY_INFO est une structure dwStructSize est un entier lpszSourceUrlName est un entier lpszLocalFileName est un entier CacheEntryType est un entier dwUseCount est un entier dwHitRate est un entier dwSizeLow est un entier dwSizeHigh est un entier LastModifiedTime est un FILETIME ExpireTime est un FILETIME LastAccessTime est un FILETIME LastSyncTime est un FILETIME lpHeaderInfo est un entier dwHeaderInfoSize est un entier lpszFileExtension est un entier dwExemptDelta est un entier FIN
_ICEI est un INTERNET_CACHE_ENTRY_INFO
T_ICEI est une structure dwStructSize est un entier szRestOfData est un tableau fixe de 1024 entier FIN ICEI est une T_ICEI
hFile est un entier cachefile est une chaîne ASCIIZ sur 260 // MAX_PATH dwBuffer est un entier sans signe sur 4 octets pntrICE est un entier
ListeSupprimeTout(Liste)
ChargeDLL("wininet.dll")
ICEI:dwStructSize = 80 dwBuffer = 2048 hFile = AppelDLL32("wininet","FindFirstUrlCacheEntryA", Null, &ICEI, &dwBuffer) SI hFile <= 0 ALORS RETOUR
BOUCLE
Transfert(&_ICEI,&ICEI,Dimension(_ICEI))
SI ETBinaire(_ICEI:CacheEntryType,NORMAL_CACHE_ENTRY) NORMAL_CACHE_ENTRY ALORS AppelDLL32("kernel32","lstrcpyA", &cachefile, _ICEI:lpszSourceUrlName) ListeAjoute(Liste, cachefile) FIN
dwBuffer = 2048 SI PAS AppelDLL32("wininet","FindNextUrlCacheEntryA", hFile, &ICEI, &dwBuffer) ALORS SORTIR
SI ErreurInfo(errCodeSystème) = 259 ALORS SORTIR // NO_MORE_ITEM
FILETIME est une structure dwLowDateTime est un entier dwHighDateTime est un entier FIN
INTERNET_CACHE_ENTRY_INFO est une structure dwStructSize est un entier lpszSourceUrlName est un entier lpszLocalFileName est un entier CacheEntryType est un entier dwUseCount est un entier dwHitRate est un entier dwSizeLow est un entier dwSizeHigh est un entier LastModifiedTime est un FILETIME ExpireTime est un FILETIME LastAccessTime est un FILETIME LastSyncTime est un FILETIME lpHeaderInfo est un entier dwHeaderInfoSize est un entier lpszFileExtension est un entier dwExemptDelta est un entier szRestOfData est un tableau fixe de 1024 entier FIN
ICEI est un INTERNET_CACHE_ENTRY_INFO
hFile est un entier cachefile est une chaîne ASCIIZ sur 260 // MAX_PATH dwBuffer est un entier sans signe sur 4 octets pntrICE est un entier
ListeSupprimeTout(Liste)
ChargeDLL("wininet.dll")
ICEI:dwStructSize = 80 dwBuffer = 2048 hFile = AppelDLL32("wininet","FindFirstUrlCacheEntryA", Null, &ICEI, &dwBuffer) SI hFile <= 0 ALORS RETOUR
BOUCLE
SI ETBinaire(ICEI:CacheEntryType,NORMAL_CACHE_ENTRY) NORMAL_CACHE_ENTRY ALORS AppelDLL32("kernel32","lstrcpyA", &cachefile, ICEI:lpszSourceUrlName) ListeAjoute(Liste, "! "+ cachefile) FIN
SI Efface ALORS IF AppelDLL32("wininet","DeleteUrlCacheEntry",ICEI:lpszSourceUrlName) <> 0 ALORS ListeModifie(Liste,"- "+cachefile,ListeOccurrence(Liste)) FIN FIN
dwBuffer = 2048 SI PAS AppelDLL32("wininet","FindNextUrlCacheEntryA", hFile, &ICEI, &dwBuffer) ALORS SORTIR
SI ErreurInfo(errCodeSystème) = 259 ALORS SORTIR // NO_MORE_ITEM
FIN
AppelDLL32("wininet","FindCloseUrlCache", hFile)
@+ et bonne fêtes a tous
Vincent Barré
Encore plus simple (+Effacement)
FILETIME est une structure
dwLowDateTime est un entier
dwHighDateTime est un entier
FIN
INTERNET_CACHE_ENTRY_INFO est une structure
dwStructSize est un entier
lpszSourceUrlName est un entier
lpszLocalFileName est un entier
CacheEntryType est un entier
dwUseCount est un entier
dwHitRate est un entier
dwSizeLow est un entier
dwSizeHigh est un entier
LastModifiedTime est un FILETIME
ExpireTime est un FILETIME
LastAccessTime est un FILETIME
LastSyncTime est un FILETIME
lpHeaderInfo est un entier
dwHeaderInfoSize est un entier
lpszFileExtension est un entier
dwExemptDelta est un entier
szRestOfData est un tableau fixe de 1024 entier
FIN
ICEI est un INTERNET_CACHE_ENTRY_INFO
hFile est un entier
cachefile est une chaîne ASCIIZ sur 260 // MAX_PATH
dwBuffer est un entier sans signe sur 4 octets
pntrICE est un entier
ListeSupprimeTout(Liste)
ChargeDLL("wininet.dll")
ICEI:dwStructSize = 80
dwBuffer = 2048
hFile = AppelDLL32("wininet","FindFirstUrlCacheEntryA", Null, &ICEI,
&dwBuffer)
SI hFile <= 0 ALORS RETOUR
BOUCLE
SI ETBinaire(ICEI:CacheEntryType,NORMAL_CACHE_ENTRY) NORMAL_CACHE_ENTRY ALORS
AppelDLL32("kernel32","lstrcpyA", &cachefile, ICEI:lpszSourceUrlName)
ListeAjoute(Liste, "! "+ cachefile)
FIN
SI Efface ALORS
IF AppelDLL32("wininet","DeleteUrlCacheEntry",ICEI:lpszSourceUrlName)
<> 0 ALORS
ListeModifie(Liste,"- "+cachefile,ListeOccurrence(Liste))
FIN
FIN
dwBuffer = 2048
SI PAS AppelDLL32("wininet","FindNextUrlCacheEntryA", hFile, &ICEI,
&dwBuffer) ALORS SORTIR
SI ErreurInfo(errCodeSystème) = 259 ALORS SORTIR // NO_MORE_ITEM
FILETIME est une structure dwLowDateTime est un entier dwHighDateTime est un entier FIN
INTERNET_CACHE_ENTRY_INFO est une structure dwStructSize est un entier lpszSourceUrlName est un entier lpszLocalFileName est un entier CacheEntryType est un entier dwUseCount est un entier dwHitRate est un entier dwSizeLow est un entier dwSizeHigh est un entier LastModifiedTime est un FILETIME ExpireTime est un FILETIME LastAccessTime est un FILETIME LastSyncTime est un FILETIME lpHeaderInfo est un entier dwHeaderInfoSize est un entier lpszFileExtension est un entier dwExemptDelta est un entier szRestOfData est un tableau fixe de 1024 entier FIN
ICEI est un INTERNET_CACHE_ENTRY_INFO
hFile est un entier cachefile est une chaîne ASCIIZ sur 260 // MAX_PATH dwBuffer est un entier sans signe sur 4 octets pntrICE est un entier
ListeSupprimeTout(Liste)
ChargeDLL("wininet.dll")
ICEI:dwStructSize = 80 dwBuffer = 2048 hFile = AppelDLL32("wininet","FindFirstUrlCacheEntryA", Null, &ICEI, &dwBuffer) SI hFile <= 0 ALORS RETOUR
BOUCLE
SI ETBinaire(ICEI:CacheEntryType,NORMAL_CACHE_ENTRY) NORMAL_CACHE_ENTRY ALORS AppelDLL32("kernel32","lstrcpyA", &cachefile, ICEI:lpszSourceUrlName) ListeAjoute(Liste, "! "+ cachefile) FIN
SI Efface ALORS IF AppelDLL32("wininet","DeleteUrlCacheEntry",ICEI:lpszSourceUrlName) <> 0 ALORS ListeModifie(Liste,"- "+cachefile,ListeOccurrence(Liste)) FIN FIN
dwBuffer = 2048 SI PAS AppelDLL32("wininet","FindNextUrlCacheEntryA", hFile, &ICEI, &dwBuffer) ALORS SORTIR
SI ErreurInfo(errCodeSystème) = 259 ALORS SORTIR // NO_MORE_ITEM