Rubrik: Windows/System | 22.03.05 |
SHUpdateRecycleBinIcon-Funktion Diese Funktion zeichnet das Icon des Papierkorbes systemweit neu. | ||
Betriebssystem: Win95, Win98, WinNT 4.0, Win2000, WinME | Views: 6.345 |
Deklaration:
Declare Function SHUpdateRecycleBinIcon Lib "shell32.dll" () As Long
Beschreibung:
Diese Funktion zeichnet das Icon des Papierkorbes systemweit neu.
Parameter:
keine |
Rückgabewert:
Ist die Funktion erfolgreich, so wird der Wert "0" zurückgegeben, andernfalls ist die Rückgabe einWert "ungleich 0", der den Fehler beschreibt.
Beispiel:
Private Declare Function SHQueryRecycleBin Lib "shell32.dll" _ Alias "SHQueryRecycleBinA" ( _ ByVal pszRootPath As String, _ pSHQueryRBInfo As SHQUERYRBINFO) As Long Private Declare Function SHUpdateRecycleBinIcon Lib "shell32.dll" () As Long 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 Sub MoveMemory Lib "kernel32" _ Alias "RtlMoveMemory" ( _ Destination As Any, _ Source As Any, _ ByVal Length As Long) Private Type ULARGE_INTEGER LowPart As Long HighPart As Long End Type Private Type SHQUERYRBINFO cbSize As Long i64Size As ULARGE_INTEGER i64NumItems As ULARGE_INTEGER End Type ' SHEmptyRecycleBin dwFlags-Konstanten Private Const SHERB_NOCONFIRMATION = &H1 ' Es wird kein Dialog zum ' Bestätigen eingeblendet Private Const SHERB_NOPROGRESSUI = &H2 ' Es wird kein Fortschrittsfenster ' beim Löschen der Objekte angezeigt Private Const SHERB_NOSOUND = &H4 ' Es wird kein Sound beim Beenden des ' Leerungsvorganges abgespielt
' Papierkorbinformationen sammeln und eventuell leeren Private Sub Command1_Click() Dim Retval As Long, BinInfo As SHQUERYRBINFO Dim TmpCur As Currency, TmpSize As String Dim MsgRet As Long ' Strukturgröße setzen BinInfo.cbSize = Len(BinInfo) ' Eigenschaft des Papierkorbes ermitteln Retval = SHQueryRecycleBin("c:\", BinInfo) ' Ermitteln der Gesamtgröße des Papierkorbinhaltes in MegaBytes MoveMemory TmpCur, BinInfo.i64Size, Len(TmpCur) TmpSize = Format$(TmpCur * 10000 / 1024, "0.000 MB") If BinInfo.i64NumItems.LowPart < 0 Then MsgRet = MsgBox("Wollen sie den Papierkorb leeren ?", vbYesNo, _ TmpSize & " in " & BinInfo.i64NumItems.LowPart & " Dateien") If MsgRet = vbYes Then SHEmptyRecycleBin Me.hwnd, "c:\", SHERB_NOCONFIRMATION SHUpdateRecycleBinIcon End If Else MsgBox "Der Papierkorb beinhaltet keine Objekte auf Laufwerk ""C:\""" End If End Sub