Papierkorb mittels API leeren?

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Papierkorb mittels API leeren?

Beitrag 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?
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

und wo gibts die lib? :lol:
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

ts-soft hat geschrieben:Mach ich dir :lol:
wie stehts? :praise:
Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag 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?
Bild
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag 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()
Bild
Win11 Pro 64-Bit, PB_6.11b1
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag 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...
Bild
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag 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
Bild
Win11 Pro 64-Bit, PB_6.11b1
Antworten