Page 1 sur 1

[Func] Vider Historique et Cache IE

Posté : lun. 03 août 2009 15:57
par Tlem
Voici deux fonctions regroupées dans le même code.
La fonction _EmptyIEHistory() comme son nom l'indique vide l'historique d'internet explorer et la fonction _EmptyIECache() vide le cache.

Il y à sans doute possibilité d'améliorer la gestion des erreurs, mais ça, je vous laisse voir. ;)

Code : Tout sélectionner

If _EmptyIEHistory() Then MsgBox(64, "Historique", "Historique Internet Explorer supprimé")
If _EmptyIECache() Then MsgBox(64, "Cache", "Cache Internet Explorer supprimé")

Func _EmptyIEHistory()
    ; Lecture de la clé dans la base de registre pour la compatibilité Vista/Seven
    $IEHistory = RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", "History")
    If $IEHistory = "" Then
        SetError(1)
        Return 0
    EndIf
    ; Au cas ou la clé serait écrite avec la variable %userprofile%
    $IEHistory = StringReplace($IEHistory, "%userprofile%", @UserProfileDir) & "\History.IE5"
    ; Suppression de l'historique IE
    _FileAndDirectoryDelete($IEHistory)
    $Size = DirGetSize($IEHistory, 1)
    If $Size[2] <> 0 Then ; Vérifie que le répertoire est vide.
        SetError(1)
        Return 0
    Else
        Return 1
    EndIf
EndFunc   ;==>_EmptyIEHistory

Func _EmptyIECache()
    ; Lecture de la clé dans la base de registre pour la compatibilité Vista/Seven
    $IECache = RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders", "Cache")
    If $IECache = "" Then
        SetError(1)
        Return 0
    EndIf
    ; Au cas ou la clé serait écrite avec la variable %userprofile%
    $IECache = StringReplace($IECache, "%userprofile%", @UserProfileDir)
    ; Suppression du cache IE
    _FileAndDirectoryDelete($IECache)
    ; Suppression du contenu du répertoire Content.IE5.
    run(@ComSpec & ' /c rd /s /q "' & $IECache & '\Content.IE5"',$IECache,@SW_HIDE)
    $Size = DirGetSize($IECache & '\Content.IE5', 1)
    If $Size[2] <> 0 Then ; Vérifie que le répertoire est vide.
        SetError(1)
        Return 0
    Else
        Return 1
    EndIf
EndFunc   ;==>_EmptyIEHistory

Func _FileAndDirectoryDelete($sDir)
    $search = FileFindFirstFile($sDir & "\*")
    If @error Then Exit
    While 1
        $Next = FileFindNextFile($Search)
        If @error Then ExitLoop
        $Next = $sDir & "\" & $Next
        $att = FileGetAttrib($Next)
        If StringInStr($att, "d") Then
            FileSetAttrib($Next, "-RSH", 1)
            DirRemove($Next, 1)
        Else
            FileSetAttrib($Next, "-RSH")
            FileDelete($Next)
        EndIf
    WEnd
    FileClose($search)
EndFunc   ;==>_FileAndDirectoryDelete

Re: [Func] Vider Historique et Cache IE

Posté : jeu. 13 août 2009 08:59
par timmalos
J'en ai eu besoin aujourd'hui. Merci de m'avoir épargner 10 minutes de boulot (ou beaucoup plus^^)
Bref, Merci, je sais que ca fait toujours plaisir alors je le dis au moins quand j'utilise ces fonctions. :lol:

Re: [Func] Vider Historique et Cache IE

Posté : jeu. 13 août 2009 09:03
par Tlem
Il est vrai que l'on peut faire pas mal de chose en AutoIt, mais en la circonstance, je t'aurais conseillé d'utiliser CCleaner portable. ;)
Il fait la même chose, mais en mieux et plus complet.

Re: [Func] Vider Historique et Cache IE

Posté : jeu. 13 août 2009 14:22
par timmalos
Of Course, mais pour le mettre dans un script c'etait trop complet à gerer . Je souhaite juste vider le cache afin d'etre sur que ma simulation ne buguera pas à cause de ca. En la circonstance, c'etait donc exactement ce qu'il me fallait. Bien sur, CCleaner est present sur mes PCs quand je fais un vide moi même, mais la le script va être dans un parc réseau et donc il me fallait une fonction exactement comme celle là. Donc mon merci est bien de mise ;)