Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Cookies löschen

Betrifft: Cookies löschen von: Peter
Geschrieben am: 21.08.2008 19:40:04

Mit folgendem Programm habe ich versucht, Cookies im Systemordner "Temporary Internet Files" zu löschen. Jeder beliebige Ordner kann mit dem Makro geleert werden.
Von Hand können die Cookies gelöscht werden. Beim Ordner "Temporary Internet Files" gibt es ein Attibut "Versteckt" (rechte Maustaste und Eigenschaften), dass ich nicht weg bringe. Ob das Problem mit dem Attribut zusammen hängt?

Sub OrdnerLeeren_Original()
'Achtung sind die Dateien sind endgültig weg!!
Dim DirectoryToDelete As String
DirectoryToDelete = "c:\test"
On Error Resume Next
Kill (DirectoryToDelete & "\*.*")
End Sub



Danke für die Unterstützung.

  

Betrifft: AW: Cookies löschen von: Ramses
Geschrieben am: 21.08.2008 19:53:31

Hallo

Blöde Frage:
Muss bei dir EXCEL auch noch Kaffee kochen können ? :-)

Warum stellst du dir das nicht gleich im Browser ein ?

"...Mit folgendem Programm habe ich versucht, Cookies im Systemordner "Temporary Internet Files" zu löschen. ..."

Wenn dem so ist, dann glaube ich das gerne, dass der Code nicht funktioniert.
Der Pfad der Cookies liegt definitiv nicht in "C:\Test" :-)

Läuft zum Zeitpunkt der Ausführung deines Makros noch eine Browser Instanz, dann gibt es eine Zugriffsverletzung und der Code bricht ab ohne Fehlermeldung wegen "On Error Resume Next"

Wenn es an dem Attribut liegen sollte, dann musst via "Shell" und "CMD Attrib" das "Hidden" Flag vorher entfernen und anschliessend wieder setzen.

Gruss Rainer


  

Betrifft: AW: Cookies löschen von: Ingo
Geschrieben am: 21.08.2008 20:44:27

Hallo Rainer!

Achte bitte mal auf meinen Excel-Level !
Bei Deiner Antwort verstehe ich nur "Bahnhof".
Und außerdem, was heißt hier "Blöde Frage" und "Kaffee kochen".
Ich dachte dieses Forum würde einen eine Frage beantworten und nicht "dumm da stehen lassen !!!

Ich hoffe jemand anderes versteht meine Frage und ist so freundlich mir zu helfen !!!

ingo


  

Betrifft: AW: Cookies löschen von: Ingo
Geschrieben am: 21.08.2008 20:47:13

Hallo Rainer !!!

Sorry, ich war in der falschen Antwort !!!

Ich war hier der "Blöde" !!!

Nochmals Sorry !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ingo


  

Betrifft: AW: Cookies löschen von: Ramses
Geschrieben am: 21.08.2008 22:13:31

Hallo

Probier mal

ACHTUNG: Dateien werden unwiderruflich gelöscht !!"

Sub DemoAttrib()
    Dim x As Variant
    Dim tarPath As String
    'mit Backslash am Ende
    tarPath = "C:\DeinPfad\"
    'Versteckte Dateien anzeigen
    'Hierzu muss das HIDDEN Flag entfernt werden
    x = Shell("cmd.exe Attrib -H " & tarPath & "*.* /S /D")
    Kill tarPath & "*.*"
End Sub


Gruss Rainer


  

Betrifft: AW: Cookies löschen von: Nepumuk
Geschrieben am: 22.08.2008 09:17:03

Hi,

oder so:

' **********************************************************************
' Modul: Modul3 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" ( _
    ByVal hwndOwner As Long, _
    ByVal nFolder As Long, _
    ByRef pidl As ITEMIDLIST) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" ( _
    ByVal pidl As Long, _
    ByVal pszPath As String) As Long

Private Type ITEMID
    cb As Long
    abID As Byte
End Type

Private Type ITEMIDLIST
    mkid As ITEMID
End Type

Private Const CSIDL_COOKIES As Long = &H21

Private Const NOERROR As Long = 0&

Public Sub prcClear_Cookies()
    Dim objFSO As Object, objFile As Object
    Dim strPath As String
    
    strPath = fncGetPath(CSIDL_COOKIES)
    If strPath <> "" Then
        
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        
        On Error Resume Next
        For Each objFile In objFSO.GetFolder(strPath).Files
            objFile.Delete
        Next
        
        Set objFSO = Nothing
        
    Else
        MsgBox "Pfad für Cookies nicht gefunden", vbCritical, "Fehler"
    End If
End Sub

Private Function fncGetPath(Num As Long) As String
    Dim lngResult As Long
    Dim strBuffer As String
    Dim udtIDl As ITEMIDLIST
    lngResult = SHGetSpecialFolderLocation(0&, Num, udtIDl)
    If lngResult = NOERROR Then
        strBuffer = Space$(512)
        lngResult = SHGetPathFromIDList(ByVal udtIDl.mkid.cb, ByVal strBuffer)
        If lngResult Then fncGetPath = _
            Left$(strBuffer & vbNullChar, InStr(strBuffer, vbNullChar) - 1)
    End If
End Function

Gruß
Nepumuk


  

Betrifft: AW: Cookies löschen von: Peter
Geschrieben am: 22.08.2008 14:29:10

Hallo Nepomuk,



Danke für deinen VBA Code. Leider bin ich noch nicht ganz am Ziel.

Dein Programm liefert mir als Verzeichnis für die Cookies ""C:\Dokumente und Einstellungen\nachbaur\Cookies".

Ich sollte jedoch den gesamten Inhalt des Verzeichnisses "C:\Dokumente und Einstellungen\nachbaur\Lokale Einstellungen\Temporäre Internetdateien" löschen.

Den Ordner kann ich von Hand ohne Probleme löschen, doch geht das leider nicht per VBA.

Dieser Ordner scheint ein Spezialordner zu sein.

Nun wie kann ich den Inhalt dieses Ordners löschen?



Danke im Voraus.



Grüße



Peter


  

Betrifft: AW: Cookies löschen von: Nepumuk
Geschrieben am: 22.08.2008 15:40:21

Hallo Peter,

ich lese da als Betreff Cookies löschen. Die Cookies in den Temporären Internetdateien sind die, welche zuerst auf die Platte geschrieben werden. Hast du keine Sperre drin, werden diese in den Cookie-Ordner verschoben, Die in den Temps sind dann unerheblich.

Aber wenn du meinst, dass das Excel besser kann als die Internetoptionen:

' **********************************************************************
' Modul: Modul4 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" ( _
    ByVal hwndOwner As Long, _
    ByVal nFolder As Long, _
    ByRef pidl As ITEMIDLIST) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" ( _
    ByVal pidl As Long, _
    ByVal pszPath As String) As Long

Private Type ITEMID
    cb As Long
    abID As Byte
End Type

Private Type ITEMIDLIST
    mkid As ITEMID
End Type

Private Const CSIDL_INTERNET_CACHE As Long = &H20

Private Const NOERROR As Long = 0&

Public Sub prcClear_Temporary_InternetFiles()
    Dim objFSO As Object, objFile As Object
    Dim objFolder0 As Object, objFolder1 As Object, objFolder2 As Object
    Dim strPath As String
    
    strPath = fncGetPath(CSIDL_INTERNET_CACHE)
    If strPath <> "" Then
        
        Set objFSO = CreateObject("Scripting.FileSystemObject")
        
        On Error Resume Next
        Set objFolder0 = objFSO.GetFolder(strPath)
        For Each objFolder1 In objFolder0.SubFolders
            For Each objFolder2 In objFolder1.SubFolders
                objFolder2.Delete
            Next
        Next
        For Each objFile In objFolder0.Files
            objFile.Delete
        Next
        
        Set objFSO = Nothing
        
    Else
        MsgBox "Pfad für Temporäre Internetdateien nicht gefunden", vbCritical, "Fehler"
    End If
End Sub

Private Function fncGetPath(Num As Long) As String
    Dim lngResult As Long
    Dim strBuffer As String
    Dim udtIDl As ITEMIDLIST
    lngResult = SHGetSpecialFolderLocation(0&, Num, udtIDl)
    If lngResult = NOERROR Then
        strBuffer = Space$(512)
        lngResult = SHGetPathFromIDList(ByVal udtIDl.mkid.cb, ByVal strBuffer)
        If lngResult Then fncGetPath = _
            Left$(strBuffer & vbNullChar, InStr(strBuffer, vbNullChar) - 1)
    End If
End Function

Gruß
Nepumuk


  

Betrifft: AW: Cookies löschen von: Herbert
Geschrieben am: 24.08.2008 20:10:38

Hallo Nepomuk,

Besten Dank für deine tolle Unterstützung.
Du hast recht, das mit den Cookies ist nur die halbe Wahrheit. Ich will schlicht weg den gesamten Inhalt des Ordners "Temporäre Internet Dateien" löschen und das tut ja dein VBA Programm perfekt.

Danke nochmals.

Grüße

Peter