PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → [WD15] Vider Cache navigateur
[WD15] Vider Cache navigateur
Débuté par dfaugere, 08 nov. 2010 14:44 - 2 réponses
Posté le 08 novembre 2010 - 14:44
Bonjour,

Comment puis je effectuer un vidage du cache IE pour avoir les infos mise à jour sur commande HTTPRequete, car je crois savoir que cette commande utilise le cache du navigateur.

Merci pour votre aide

David
Posté le 08 novembre 2010 - 17:24
Le 08/11/2010 13:44, FAUGERE David a écrit :
Bonjour,

Comment puis je effectuer un vidage du cache IE pour avoir les infos mise à jour sur commande HTTPRequete, car je crois savoir que cette commande utilise le cache du navigateur.

Merci pour votre aide

David

salut.
j'ai adapté un code trouvé sur internet il y a quelque temps déjà pour
supprimer les cookies. il suffit de virer le test des cookies pour vider
complètement le cache.

ca utilise wininet.dll, testé sous xp, xp64 et vista.

le tableau tliste ne me sert qu'à debugger, de même que le paramètre efface.




Procedure effacecookies( efface est un booléen=Faux )

LMEM_FIXED est un entier = 0
NORMAL_CACHE_ENTRY est un entier = 0x00000001
COOKIE_CACHE_ENTRY est un entier = 0x00100001




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

TListe est un tableau de 0 chaînes


TableauSupprimeTout(TListe)

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,COOKIE_CACHE_ENTRY) =
COOKIE_CACHE_ENTRY ALORS
//si ICEI:CacheEntryType[6]=vrai alors // cookie

AppelDLL32("kernel32","lstrcpyA", &cachefile, ICEI:lpszLocalFileName)


SI efface ALORS
IF PAS
AppelDLL32("wininet","DeleteUrlCacheEntry",ICEI:lpszLocalFileName) <> 0
ALORS
AppelDLL32("wininet","DeleteUrlCacheEntry",ICEI:lpszSourceUrlName)
FIN
SINON
TableauAjoute(TListe, "! "+ cachefile)

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)
Posté le 08 novembre 2010 - 18:11
merci pour le code je vais en faire bon usage.