ゴミ箱のサイズとアイテム数の取得 <TOP>
ゴミ箱のサイズとアイテム数を取得します。
SHQueryRecycleBin ゴミ箱のサイズとアイテム数を取得
SHEmptyRecycleBin 指定のドライブのごみ箱を空にする
このテストでは、Cドライブを指定しています。
SHEmptyRecycleBin関数を実行すると下記確認メッセージが表示されます。
'================================================================ '= ゴミ箱のサイズとアイテム数の取得
'= (SHQueryRecycleBin.bas) '================================================================ #include "Windows.bi" Type SHQUERYRBINFO cbSize As Long '構造体のバイト数 i64SizeLow As Long 'ごみ箱にある全アイテム数の下位32ビット値 i64SizeHigh As Long '同、上位32ビット値 i64NumItemsLow As Long 'ごみ箱にあるアイテム数の下位32ビット値 i64NumItemsHigh As Long '同、上位32ビット値 End Type ' ごみ箱のサイズとアイテム数 Declare Function Api_SHQueryRecycleBin& Lib "Shell32" Alias "SHQueryRecycleBinA" (ByVal pszRootPath$, pSHQueryRBInfo As SHQUERYRBINFO) ' 指定のドライブのごみ箱を空にする Declare Function Api_SHEmptyRecycleBin& Lib "Shell32" Alias "SHEmptyRecycleBinA" (ByVal hWnd&, ByVal pszRootPath$, ByVal dwFlags&) ' dwFlagsの定数 #define SHERB_NOCONFIRMATION &H1 '削除の確認をしない #define SHERB_NOPROGRESSUI &H2 '進行状況を表示しない #define SHERB_NOSOUND &H4 '処理完了時にサウンド無し Var Shared List1 As Object Var Shared Button2 As Object
List1.Attach GetDlgItem("List1")
Button2.Attach GetDlgItem("Button2")
'================================================================
'=
'================================================================
Declare Sub Mainform_Start edecl ()
Sub Mainform_Start()
Button2.EnableWindow 0
End Sub
'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
Var pSHQueryRBInfo As SHQUERYRBINFO
Var psize$ As String
Var pitem$ As String
Var Ret As Long
pSHQueryRBInfo.cbSize = Len(pSHQueryRBInfo)
'関数の実行
Ret = Api_SHQueryRecycleBin("C:\", pSHQueryRBInfo)
'結果表示
psize$ = Str$(pSHQueryRBInfo.i64SizeLow)
psize$ = Str$(pSHQueryRBInfo.i64SizeHigh) + Mid$(psize$, 2)
pitem$ = Str$(pSHQueryRBInfo.i64NumItemsLow)
pitem$ = Str$(pSHQueryRBInfo.i64NumItemsHigh) + Mid$(pitem$, 2)
List1.ResetContent
List1.AddString "サイズ(Cドライブ)"
List1.AddString space$(4) + Format$(Int(Val(psize$) / (10 ^ 6)), "###,###,###,### MB")
List1.AddString space$(4) + Format$(Int(Val(psize$)) , "###,###,###,### B")
List1.AddString "アイテム数"
List1.AddString space$(4) + Format$(Val(pitem$) , " ###,### 個")
If val(pitem$) > 0 Then
Button2.EnableWindow -1
Else
Button2.EnableWindow 0
End If
End Sub
'================================================================
'=
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
Var Ret As Long
Ret = Api_SHEmptyRecycleBin(GethWnd, "C:\", 0)
End Sub
'================================================================
'=
'================================================================
While 1
WaitEvent
Wend
Stop
End