Je tente d'effacer le cache WinInet à l'aide de l'API Win32 en invalidant les entrées du cache ou en les supprimant (peu importe). Je ne peux pas trouver un moyen de le faire pour l'ensemble du cache (autre que l'itération sur chaque entrée - example in C#, another in VB) - est-ce encore possible?Comment effacer par programme le cache MSIE/WinInet?
Répondre
Je suis assez certain de faire le FindFirst/FindNextUrlCacheEntry() puis DeleteUrlCacheEntry() est la seule façon de vous assurer qu'il fonctionne dans toutes les versions de IE.
Vous pouvez également utiliser FindFirst/FindNextUrlCacheGroup() et DeleteUrlCacheGroup() avec "CACHEGROUP_FLAG_FLUSHURL_ONDELETE" mais vous devez vous assurer que vous supprimez uniquement ce que vous voulez. Par exemple, l'historique, les cookies et les fichiers Internet temporaires sont tous des groupes de cache.
Apparemment, il est possible de (ab) utiliser le panneau Options Internet pour effacer les fichiers de cache en exécutant ceci:
RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8
va essayer d'appeler cela comme une DLL.
Source: http://www.vbforums.com/archive/index.php/t-440508.html, commentaire par technorobbo
Cela ne fonctionne que sur IE7 + –
@jeffamaphone: Merci pour l'info, gardera cela à l'esprit – Piskvor
FTR: La signification exacte de l'argument (8 ci-dessus, signifie seulement les fichiers Internet temporaires et non les cookies, etc.) est expliquée par ex. au http://www.howtogeek.com/howto/windows/clear-ie7-browsing-history-from-the-command-line.
BTW: Malheureusement, RunDll32 est asynchrone, ce qui ne le rend pas idéal pour fonctionner avant, par ex. tests web automatisés. Quelqu'un aurait-il une idée sur la façon de l'exécuter comme un appel de blocage, ou sur la façon de trouver par programme le nom de répertoire exact du répertoire "Temporary Internet Files" afin qu'il puisse être interrogé jusqu'à ce qu'il soit vide? Code en C (besoin en Java, pourrait faire JNI) est vraiment la seule option, hein? ; (
PS:. Comment peut-on poster une réponse à une réponse existante au lieu de commencer une nouvelle réponse sur StackOverflow
Merci, le bit-mask est effectivement pertinent dans l'appel. (Et btw, quand vous atteignez la réputation 50 , vous serez en mesure de laisser des commentaires sur les questions et les réponses des autres, d'ici là, vous ne pouvez que commenter vous-même) – Piskvor
- 1. Effacer le cache du champ de formulaire
- 2. WatiN effacer le cache du navigateur
- 3. Comment faire pour effacer le cache de HttpWebRequest
- 4. Comment effacer le cache de second niveau NHibernate
- 5. Comment faire pour effacer le cache de l'application iPhone
- 6. Effacer le cache ASP.net pour plusieurs processus de travail
- 7. Ancien contenu apparaissant sur le site. Effacer le cache?
- 8. Comment effacer les tampons de sortie lorsque le programme forge?
- 9. Effacer le cache de CATiledLayers lors de la modification d'images
- 10. En PHP, comment pouvez-vous effacer un cache WSDL?
- 11. Comment forcer Javamail à effacer son cache de messages?
- 12. Flex - Effacer DateField par programmation
- 13. Comment activer le programme Wake on LAN par programme
- 14. Comment invoquer le compilateur C++ par programme?
- 15. Comment effacer le cache du plan d'exécution Oracle pour l'analyse comparative?
- 16. Comment forcer JBoss 4.2.3 à effacer le cache de session d'hibernate pour chaque requête?
- 17. Comment effacer le cache d'IE lors de l'exécution de Web Developer Express?
- 18. Comment effacer/expirer le cache du navigateur lors de la déconnexion?
- 19. Effacer/réinitialiser le fournisseur de ressources
- 20. Comment effacer le stockage isolé d'une autre application?
- 21. Télécharger le JRE par programme?
- 22. Supprimer le cache IE par programme dans un système d'exploitation 64 bits
- 23. Comment définissez-vous un attribut par programme?
- 24. Comment effacer le contrôle datepicker dans silverlight?
- 25. Comment "effacer" le débordement: éléments visibles?
- 26. Comment effacer les liaisons de commandes enregistrées par CommandManager?
- 27. Comment exécuter NUnit par programme
- 28. Afficher le menu par programme dans WPF
- 29. Activer le mode avion par programme?
- 30. Configurer par programme le logger de Jetty
Dans ce cas, ça ne me dérangerait pas de supprimer tous ceux-là, j'espérais qu'il y avait un moyen plus facile, eh bien, – Piskvor