.NET/Windows API for .NET

SHEmptyRecycleBin - 휴지통 비우기

클리엘 2019. 8. 12. 13:30
728x90

SHEmptyRecycleBin 함수는 시스템(System)의 휴지통을 비웁니다.

Private Declare Function SHEmptyRecycleBin Lib "shell32.dll" Alias "SHEmptyRecycleBinA" (ByVal hWnd As Int32, ByVal pszRootPath As String, ByVal dwFlags As Int32) As Int32

▶VB.NET 선언

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

SHEmptyRecycleBin(Me.Handle.ToInt32, vbNullString, SHERB_NOCONFIRMATION + SHERB_NOSOUND)

▶VB.NET 호출


SHEmptyRecycleBin을 호출할때는 첫번째 인수로 호출하는 Process의 Handle을 전달합니다. 휴지통을 비울때 관련 메세지를 표시하지 않도록 하려면 &H1값을 전달하며 휴지통에서 대량의 데이터가 존재하는 경우 휴지통을 비우는 진행상태를 표시하지 않으려면 &H2값을 전달합니다. &H4는 휴지통을 비울때 소리가 나지 않도록 합니다.

그런데 실제 SHEmptyRecycleBin함수를 호출하여 휴지통을 비우면 휴지통이 차있는 아이콘모양에서 휴지통이 비어있는 아이콘모양으로 바뀌지 않는걸 볼 수 있습니다. 이런 아이콘의 모양을 즉시 변경하려면 SHUpdateRecycleBinIcon API함수를 호출해야 합니다.

Private Declare Function SHUpdateRecycleBinIcon Lib "shell32.dll" () As Int32

SHUpdateRecycleBinIcon()

▶VB.NET 선언과 호출

 

728x90