Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Vaciar la papelera de reciclaje de Windows - Delphi
Lenguaje de programación Borland Delphi



Pon un TButton en tu form, y pon este código en su evento OnClick:


 procedure TForm1.Button1Click(Sender: TObject);
   procedure VaciaPapelera;
   type
     TSHEmptyRecycleBin = function (Wnd: HWND;
                                    LPCTSTR: PChar;
                                    DWORD: Word): integer; stdcall;
   var
     MangoLib           : THandle;
     SHEmptyRecycleBin  : TSHEmptyRecycleBin;
   begin
      {Cargamos SHell32.DLL}
      MangoLib := LoadLibrary(PChar('Shell32.dll'));

      {Si no se pudo... error}
      if MangoLib = 0 then
        Raise Exception.Create( 'No se pudo cargar Shell32.DLL');

      {Buscamos dentro de la DLL la funcion que queremos}
      @SHEmptyRecycleBin := GetProcAddress(MangoLib, 'SHEmptyRecycleBinA');

      {Si no existe... error}
      if @SHEmptyRecycleBin = nil then
      begin
        FreeLibrary(MangoLib);
        Raise Exception.Create( 'No se pudo encontrar SHEmptyRecycleBinA en Shell32.DLL');
      end;

     {Vaciamos la papelera, sin sonido ni confirmación}
     SHEmptyRecycleBin(Application.Handle,'',7);

     {Liberamos la DLL}
     FreeLibrary(MangoLib);
   end;

 begin
   try
     VaciaPapelera;
   except
     ShowMessage('Fallo al vaciar la papelera de Windows...');
   end;
 end;

Funcionamiento:
  • Símplemente se trata de llamar a la función SHEmptyRecycleBin que está dentro de la DLL Shell32.DLL. La aparente complicación de este truco viene de que Delphi no declara esta función en ninguna API, así que tenemos que hacerlo nosotros. Para ello símplemente cargamos la DLL con LoadLibrary y luego buscamos la función dentro de ella. Si alguno de estos dos pasos falla, generamos una excepción que podremos tratar, enmascarar o lo que queramos en aquel punto donde llamemos a la función.



  • Publicado el: 2003-09-12

    Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+