Papierkorb leeren
 Info  
Von : Wolfgang Kluge
 Zusatz  
Printfreundliche Ansicht
Wenn mal jemand die Dateien aus dem Papierkorb mit Kill löschen wollte, der hat sich bestimmt nach ein paar Minuten suchen gefragt, wie der Pfad dahin heißt!
Ich glaub aber nicht, daß er das jemals rausgefunden hat, denn soweit ich weiß gibts sowas nicht (jaja, CLSID)...also wo stehen denn nun diese Dateien.
Im Prinzip ist es schon ein Pfad, ein Systempfad eben. Bloß auf den ist nicht so leicht zuzugreifen.

Wenn man nun aber trotzdem Dateien komplett aus dem System löschen will, bedarf es einer API-Funktion.

 Deklaration:
Private Declare Function SHEmptyRecycleBin Lib "shell32.dll" Alias "SHEmptyRecycleBinA" (ByVal hwnd As Long, ByVal pszRootPath As String, ByVal dwFlags As Long) As Long
Private Declare Function SHUpdateRecycleBinIcon Lib "shell32.dll" () As Long

Private Const SHERB_NOCONFIRMATION = &H1
Private Const SHERB_NOPROGRESSUI = &H2
Private Const SHERB_NOSOUND = &H4


Nun, im Grunde genommen braucht man nur die erste der beiden Funktionen...aber man macht sich nicht beliebt, wenn man so Kleinigkeiten wie das Icon des Papierkorbs nicht auf den neuesten Stand bringt...(warum auch nicht ?)
Man hat die Möglichkeit beim Aufruf die Dialogbox, die Fortschrittsanzeige und/oder den Systemsound auszulassen.
' Papierkorb leeren
' Hier werden alle auf dem System befindlichen Papierkörbe gelöscht
' Will man nur den auf Laufwerk C:, dann muss im 2. Aufruf ("") das Laufwerk stehen
SHEmptyRecycleBin Me.hwnd, "", SHERB_NOCONFIRMATION Or SHERB_NOPROGRESSUI Or SHERB_NOSOUND

SHUpdateRecycleBinIcon