keine Bestätigungsnachfrage mehr vor Löschen

German support forum

Moderators: white, Hacker, Stefan2

User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Danke für den Hinweis zu TSF_DELETE_RECYCLE_IF_POSSIBLE. Eine
kurze Suche hat ergeben, dass man so zwar nicht herausfinden kann, ob man eine Datei in den Papierkorb verschieben oder nur direkt löschen kann, aber man wird immerhin beim Löschen gewarnt. TC könnte so immerhin eine Warnung anzeigen.

Nur möchte ich lieber vorher anzeigen, ob in den Papierkorb gelöscht wird oder direkt. Nur zum Testen gleich die Löschfunktion aufzurufen finde ich etwas gewagt - was wenn sich die Funktion unter Windows 10 oder 11 ändert, und PreDeleteItem nicht mehr aufgerufen wird?
Author of Total Commander
https://www.ghisler.com
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2ghisler(Author)
Danke für den Hinweis zu TSF_DELETE_RECYCLE_IF_POSSIBLE. Eine
kurze Suche hat ergeben, dass man so zwar nicht herausfinden kann, ob man eine Datei in den Papierkorb verschieben oder nur direkt löschen kann, aber man wird immerhin beim Löschen gewarnt. TC könnte so immerhin eine Warnung anzeigen.
In diesem Artikel habe ich das auch gefunden. Dort heißt es in dem langen Beitrag mit dem Quellcode:
Also before posting the code and the interface implementation, here's an overview in a nutshell. By implementing the IFileOperationProgressSink interface, you will have control over the entire deletion process, and namely, specific interface methods will be called before and after deleting each file. Luckily, the PreDeleteItem method will have the DWORD dwFlags parameter that will have the TSF_DELETE_RECYCLE_IF_POSSIBLE flag set if that specific item (file or folder) is being placed in the Recycle Bin. (That flag will not be set if the item is permanently deleted.) So your code can check, and if that flag is not on, simply react by either showing a user warning, or by automatically aborting the process.
Ich hätte das hier auch nicht gepostet, wenn ich das nicht gestern durch den Compiler gejagt hätte - und es funktioniert wirklich. Der Flag ist nur gesetzt, wenn in den Papierkorb gelöscht werden kann.
Nur möchte ich lieber vorher anzeigen, ob in den Papierkorb gelöscht wird oder direkt. Nur zum Testen gleich die Löschfunktion aufzurufen finde ich etwas gewagt - was wenn sich die Funktion unter Windows 10 oder 11 ändert, und PreDeleteItem nicht mehr aufgerufen wird?
Ich denke, das wäre eine ziemlich gewagte Änderung der API durch Microsoft.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

OK, ich schaus mir mal an. Da ich die Funktion sowieso schon benutze, sollte es recht einfach machbar sein. Ich habe nur noch Bedenken, dass sich da noch irgendwelche Windows-Fehlerdialoge öffnen könnten...
Author of Total Commander
https://www.ghisler.com
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2ghisler(Author)
Gibt es dazu Neuerungen in TC 9? In der History.txt habe ich nichts gefunden.
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

Ja, TC sollte nun seinen eigenen Dialog anzeigen, wenn der Bestätigungsdialog beim Löschen in den Papierkorb deaktiviert ist.
Author of Total Commander
https://www.ghisler.com
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

In dem Fall, dass die Windows-Option "Dialog zur Bestätigung des Löschvorgangs anzeigen" deaktiviert ist, sehe ich folgenden TC-eigenen Dialog:
---------------------------
Delete to Recycle bin
---------------------------
Soll die markierte Datei ScrollTo.rp wirklich gelöscht werden?
---------------------------
Ja Nein Abbrechen
---------------------------

Dazu einige Anmerkungen und Fragen:
1) Der Dialogtitel ist gut gewählt, es scheint aber die Übersetzung zu fehlen.
2) Der Dialogtext klingt für mich nicht so sehr nach "in den Papierkorb verschieben", sondern eben nach löschen. Viele Nutzer werden einfach nur diesen Text lesen und davon ausgehen, dass es darum geht die Datei zu löschen. Das sollte umformuliert werden.
3) Ist die erwähnte Windows-Option nicht deaktiviert, werden nach wie vor zwei Dialoge angezeigt. Warum?
User avatar
ghisler(Author)
Site Admin
Site Admin
Posts: 48083
Joined: 2003-02-04, 09:46 UTC
Location: Switzerland
Contact:

Post by *ghisler(Author) »

2) Wie soll ich es sonst fomulieren?
3) Kann ich nicht reproduzieren. Welches Optionen im TC und welche in Windows müssen dafür gesetzt sein?
Author of Total Commander
https://www.ghisler.com
User avatar
Dalai
Power Member
Power Member
Posts: 9388
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

ghisler(Author) wrote:2) Wie soll ich es sonst fomulieren?
Simpel. Ich würde mich hier am Explorer orientieren, der die Frage stellt, ob XY (wirklich) in den Papierkorb verschoben werden soll. Nur beim Löschen am Papierkorb vorbei fragt er, ob XY wirklich gelöscht weden soll.

Soweit ich weiß, kennt TC sowieso schon die Unterscheidung, ob Papierkorb oder löschen.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2ghisler(Author)
Wie soll ich es sonst fomulieren?
Ja eine Formulierung mit 'in den Papierkorb verschieben' wäre gut.
3) Kann ich nicht reproduzieren. Welches Optionen im TC und welche in Windows müssen dafür gesetzt sein?
Windows: Option des Papierkorbs "Dialog zur Bestätigung des Löschvorgangs anzeigen" deaktiviert.
TC: Win95Delete=0
VistaDelete=default
UseTrash=1
User avatar
Lefteous
Power Member
Power Member
Posts: 9535
Joined: 2003-02-09, 01:18 UTC
Location: Germany
Contact:

Post by *Lefteous »

2ghisler(Author)
Die Formulierung ist jetzt besser - danke!

Zu dem anderen Problem werde ich mal einen ordentlichen Bug Report schreiben.
Post Reply