AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Papierkorb leeren auf allen Partitionen
Thema durchsuchen
Ansicht
Themen-Optionen

Papierkorb leeren auf allen Partitionen

Ein Thema von Mackhack · begonnen am 8. Sep 2008 · letzter Beitrag vom 8. Sep 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#1

Papierkorb leeren auf allen Partitionen

  Alt 8. Sep 2008, 05:53
Hallo DPler,

weis jemand wie man die Papierkoerbe auf allen Partitionen leeren kann und nicht nur auf der C: Platte?

Danke!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Papierkorb leeren auf allen Partitionen

  Alt 8. Sep 2008, 06:57
Hi,

mit ner For-Schleife.

Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#3

Re: Papierkorb leeren auf allen Partitionen

  Alt 8. Sep 2008, 06:58
Hm, und wie? Ich meine ich hab eigentlich im Windows-Subforum gefragt nicht im Programmieren. Aber eigentlich ist mir beides recht um ehrlich zu sein. Also Problem ist ja dass man auf all den anderen Partition keinen Papierkorb findet!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Papierkorb leeren auf allen Partitionen

  Alt 8. Sep 2008, 07:14
Hi,


Delphi-Quellcode:
for Drive in Drives do
  try
    Result := SHEmptyRecycleBin(Application.Handle, PChar(Drive + ':\'),
      SHERB_NOCONFIRMATION or SHERB_NOSOUND) = S_OK;
  except
    //AV in SYSTEM32.DLL unter Win9x?
    on EAccessViolation do
      Result := false;
  end;
Warum unter Win98 ne AV kommt hab ich noch nicht herausgefunden nur dass diese nicht einmal mit try-except abgefangen wird (bzw. schon, wenn man das on-do weglässt, obwohl die Meldung nach EAccessViolation aussieht ). Ich glaube aber, der Papierkorb wird dann trotzdem geleert, nur das Icon wechselt nicht zu einem leeren Papierkorb.

Unter NT-Systemen funktiniert es jedenfalls so. Drives wäre ein String oder Array of Char, in dem die zu verarbeitenden Laufwerksbuchstaben drinstehen. Alternativ könntest du z. B. auch eine Stringliste durchgehen, in welcher die Stammverzeichnisse drinstehen.

Theoretisch müsstest du bei Partitionen, die keinen Buchstaben haben, den Pfad angeben, in dem sie bereitgestellt werden. Praktisch schiebt Windows es dann in den Übergeordneten Papierkorb (jedenfalls bei XP / was beim Löschen von Verzeichnissen sogar Probleme bereitet - man bekommt Meldungen, das Löschen sei nicht möglich ). Damit reicht es, alle Laufwerksbuchstaben, die in Frage kämen, durchzugehen.

Was meinst du mit "man findet keinen Papierkorb"?

So, bin heute Abend wieder da... Muss jetzt noch abwaschen und dann arbeiten fahren.

Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#5

Re: Papierkorb leeren auf allen Partitionen

  Alt 8. Sep 2008, 07:16
Naja es gibt halt kein Icon fuer die anderen Partition ausser der wo Windows installiert ist. Das meinte ich damit!

Danke fuer den Code Snippet!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Papierkorb leeren auf allen Partitionen

  Alt 8. Sep 2008, 07:57
Zitat von Mackhack:
weis jemand wie man die Papierkoerbe auf allen Partitionen leeren kann und nicht nur auf der C: Platte?
Rechtsklick auf den Papierkorb auf dem Desktop oder im Explorer --> Papierkorb leeren
Zitat von Mackhack:
Naja es gibt halt kein Icon fuer die anderen Partition ausser der wo Windows installiert ist. Das meinte ich damit!
Also für mich stellt das Icon auf dem Desktop bzw. im Explorer alle gelöschten Daten dar. Wenn du den leerst sollten damit auch alle "lokalen Papierkörbe" geleert sein...
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#7

Re: Papierkorb leeren auf allen Partitionen

  Alt 8. Sep 2008, 07:59
Zitat von leddl:
Also für mich stellt das Icon auf dem Desktop bzw. im Explorer alle gelöschten Daten dar. Wenn du den leerst sollten damit auch alle "lokalen Papierkörbe" geleert sein...
Das dachte ich mir war mir aber nicht sicher!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Papierkorb leeren auf allen Partitionen

  Alt 8. Sep 2008, 08:04
Zitat von Mackhack:
Das dachte ich mir war mir aber nicht sicher!
Na dann schau doch mal rein Es steht doch für jede gelöschte Datei der Quellordner dabei. Da mischen sich bei mir im Moment bunt Dateien von der C- und D-Partition
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#9

Re: Papierkorb leeren auf allen Partitionen

  Alt 8. Sep 2008, 08:42
Da es nur 1 "Papierkorb" gibt, ist das Löschen einfach:
.
Delphi-Quellcode:
Procedure EmptyRecycleBin ;
Const
     SHERB_NOCONFIRMATION = $00000001;
     SHERB_NOPROGRESSUI = $00000002;
     SHERB_NOSOUND = $00000004;
Type
    TSHEmptyRecycleBin = Function(Wnd: HWND; LPCTSTR: PChar; DWORD: Word): Integer; StdCall;
Var
   SHEmptyRecycleBin: TSHEmptyRecycleBin;
   LibHandle: THandle;
Begin
     LibHandle:=LoadLibrary(PChar('Shell32.dll'));
     If LibHandle <> 0 Then
        @SHEmptyRecycleBin:=GetProcAddress(LibHandle, 'SHEmptyRecycleBinA')
     Else Begin
        MessageDlg('Failed to load Shell32.dll.', mtError, [mbOK], 0);
        Exit;
     End;
     If @SHEmptyRecycleBin <> Nil Then
        SHEmptyRecycleBin(Application.Handle, '', SHERB_NOCONFIRMATION Or SHERB_NOPROGRESSUI Or SHERB_NOSOUND);
     FreeLibrary(LibHandle);
     @SHEmptyRecycleBin:=Nil;
End ;
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Papierkorb leeren auf allen Partitionen

  Alt 8. Sep 2008, 08:55
Schaut eigentlich nie jemand auf die Sparte beim Antworten? Wir sind hier im Windows-Forum, nicht in einer der Programmierforen...
Warum wird hier denn jetzt mit Code-Schnipseln um sich geworfen, wenn das ganze durch 2 Klicks erledigt werden kann?
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz