Seite 1 von 2
Papierkorb mittels API leeren?
Verfasst: 16.09.2006 12:01
von Jilocasin
jo.. also ich habe mal wieder ne frage
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?

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

Mach ich dir
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
wie stehts?

Verfasst: 17.09.2006 16:04
von ts-soft
Jilocasin hat geschrieben:ts-soft hat geschrieben:Mach ich dir
wie stehts?

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"
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
...
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
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