keine Bestätigungsnachfrage mehr vor Löschen
Moderators: Hacker, Stefan2, white
- ghisler(Author)
- Site Admin
- Posts: 50555
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
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?
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
https://www.ghisler.com
2ghisler(Author)
In diesem Artikel habe ich das auch gefunden. Dort heißt es in dem langen Beitrag mit dem Quellcode: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.
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.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 denke, das wäre eine ziemlich gewagte Änderung der API durch Microsoft.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?
- ghisler(Author)
- Site Admin
- Posts: 50555
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
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
https://www.ghisler.com
- ghisler(Author)
- Site Admin
- Posts: 50555
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
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
https://www.ghisler.com
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?
---------------------------
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?
- ghisler(Author)
- Site Admin
- Posts: 50555
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
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?
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
https://www.ghisler.com
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.ghisler(Author) wrote:2) Wie soll ich es sonst fomulieren?
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
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64
Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
2ghisler(Author)
TC: Win95Delete=0
VistaDelete=default
UseTrash=1
Ja eine Formulierung mit 'in den Papierkorb verschieben' wäre gut.Wie soll ich es sonst fomulieren?
Windows: Option des Papierkorbs "Dialog zur Bestätigung des Löschvorgangs anzeigen" deaktiviert.3) Kann ich nicht reproduzieren. Welches Optionen im TC und welche in Windows müssen dafür gesetzt sein?
TC: Win95Delete=0
VistaDelete=default
UseTrash=1