Seite 1 von 2

Papierkorb mittels API leeren?

Verfasst: 16.09.2006 12:01
von Jilocasin
jo.. also ich habe mal wieder ne frage :mrgreen:

kann man den papierkorb per API leeren, ohne dass diese windows-bestätigung "wollen sie wirklich..." erscheint?

Verfasst: 16.09.2006 12:15
von ts-soft

Code: Alles auswählen

Import "shell32.lib"
  CompilerIf #PB_Compiler_Unicode
    SHEmptyRecycleBin_(hWnd.l, pszRootPath.l, dwFlags.l) As "_SHEmptyRecycleBinW@12"
  CompilerElse
    SHEmptyRecycleBin_(hWnd.l, pszRootPath.l, dwFlags.l) As "_SHEmptyRecycleBinA@12"
  CompilerEndIf
EndImport

SHEmptyRecycleBin_(0,0,-1)
http://msdn.microsoft.com/library/defau ... clebin.asp

Verfasst: 16.09.2006 12:21
von Jilocasin
und wo gibts die lib? :lol:

Verfasst: 16.09.2006 12:24
von ts-soft
Jilocasin hat geschrieben:und wo gibts die lib? :lol:
Mach ich dir :lol:

In PB 3.3 mußte wohl die Shell32.dll laden und die A Variante verwenden!

Verfasst: 17.09.2006 15:57
von Jilocasin
ts-soft hat geschrieben:Mach ich dir :lol:
wie stehts? :praise:

Verfasst: 17.09.2006 16:04
von ts-soft
Jilocasin hat geschrieben:
ts-soft hat geschrieben:Mach ich dir :lol:
wie stehts? :praise:
Was meinste?
Für PB4 brauchste nichts, die PBIDE findet die Lib automatisch, bei jaPBe bin ich mir nicht so sicher.

Code: Alles auswählen

Debug #PB_Compiler_Home + "PureLibraries\Windows\Libraries\shell32.lib"
:D

Falls die nicht gehen sollte, was leider bei manchen mit PB gelieferten Libs so
ist, kannste die Lib durch gleichnamige aus dem PSDK Lib Ordner, oder von
PellesC usw. nehmen!

Verfasst: 17.09.2006 16:57
von Jilocasin
lol, thx

hat sich erledigt :oops: :oops:

...

PS: wens interessiert:

Code: Alles auswählen

Procedure EmptyTrash(confirm) 
  If OpenLibrary(0,"shell32.dll") And IsFunction(0,"SHEmptyRecycleBinA") 
    CallFunction(0,"SHEmptyRecycleBinA",0,"",1-confirm) 
    CloseLibrary(0) 
  EndIf 
EndProcedure 

EmptyTrash(1) ; 1 = confirm with user first, 0 = don't confirm. 
hab ich aus dem archiv ausgegraben


//nachtrag

okay, hmm, weiß jetzt noch jemand wie ich (vll mittels ExamineDirectory?) den inhalt des papierkorbes rausbekomme?

Verfasst: 19.09.2006 23:37
von Falko
Such doch mal nach dem Ordner "C:\RECYCLER". Das Problem ist aber das
du den Regschlüssel evt. auch kennen muss, der dort Drinne steht. um den
Papierkorb zu öffnen. Vielleicht geht das aber mit mit NextDirectoryEntry()

Verfasst: 20.09.2006 13:55
von Jilocasin
@falco

das geht ja :allright:

nur in dem ordner sind eben nicht die gelöschten dateien drin, sondern nur ne lustige LOG-datei und welche mit dem namen "Dc1", "Dc2".. usw...

Verfasst: 20.09.2006 14:32
von Falko
Komisch. Bei mir werden im Recycler zwei Papierkörbe (Transparent) dargestellt. Die Bezeichnung von einem ist bei mir z.B.:

C:\RECYCLER\S-1-5-21-436374069-1078145449-839522115-500

Dort sind bei mir gerade gelöschte Dateian. Evt. mußt du im Explorer unter
Extras, Ordneroptionen 'alle Dateien anzeigen' einstellen. Vielleicht werden dir dann auch die gelöschten Inhalte dargestellt. Bei mir funktioniert es.
Je nach dem, auf welchen Laufwerk du löscht, ist der Papierkorb im RECYCLER auch nur auf den jeweiligen Laufwerk zu finden.

Grüße ...Falko