15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как программно очистить "корзину".

Источник: www.igoryksoft.narod.ru

   Чтобы очистить корзину, объявите API-функцию:

 

Private Declare Function SHEmptyRecycleBinW Lib "shell32.dll" (ByVal hwnd As Long, ByVal Path As String, ByVal Flags As Long) As Long

 

   где hwnd - дескриптор окна (используйте 0 или дескриптор своего окна);

   Path - диск на котором будет очищаться корзина;

   Flags -флаги.

 

    А чтобы ее вызвать вставьте такой код:

   Если Вам нужно обычная очистка "корзины", т.е. с окном подтверждения очистки, то вставьте

 

SHEmptyRecycleBinW 0, "", 0

 

   Если не нужно показывать окно подтверждения, то вставьте

 

SHEmptyRecycleBinW 0, "", 1

 

   Если Вам не нужно чтобы пользователь видел процесс удаления файлов из "корзины", вставьте

 

SHEmptyRecycleBinW 0, "", 2

 

   Чтобы не было звука "Очистка корзины", вставьте такой код:

 

SHEmptyRecycleBinW 0, "", 4

 

   "А что делать, - спросите Вы, - чтобы не было звука и окна подтверждения, а пользователь видел процесс очистки корзины и т.п.?"

 

   Здесь все очень просто: нужно сложить флаги, отвечающие за какую-то функцию. Например, если использовать флаг 3 (1+2), будет слышен только звук очистки корзины, окон подтверждения очистки и процесса очистки не будет.