![]() |
FOF_ALLOWUNDO + Vista geht nicht?
Hallo.
Ich habe seit neustem Vista und habe zu Beginn bemerkt, dass FOF_ALLOWUNDO bei einer Move/Copy Aktion nicht mehr funktioniert. Da ich diese Einschränkung auf einen Bug schob und den Verlust hinnehmen konnte, habe ich mich nicht mehr darum gekümmert. Nun möchte ich eine Datei in den Papierkorb schieben und verwende folgende Funktion, die ich 2007 ![]()
Delphi-Quellcode:
Das Ergebnis: Die Datei wird gelöscht und der Papierkorb enthält das Objekt nicht. FOF_ALLOWUNDO ist ein Weiteres Mal fehlgeschlagen.
// Template
// [url]http://www.dsdt.info/tipps/?id=116[/url] function recycler_add_file_or_folder(file_or_folder: string; confirmation: boolean): boolean; overload; var Operation: TSHFileOpStruct; begin with Operation do begin Wnd := hInstance; // ? wFunc := FO_DELETE; pFrom := PChar(file_or_folder +#0); pTo := nil; fFlags := FOF_ALLOWUNDO; if not confirmation then fFlags := fFlags or FOF_NOCONFIRMATION; end; Result := SHFileOperation(Operation) = 0; end; Was passiert hier? Gruß blackdrake |
Re: FOF_ALLOWUNDO + Vista geht nicht?
FOF_ALLOWUNDO
Zitat:
|
Re: FOF_ALLOWUNDO + Vista geht nicht?
Und was will uns der Herr damit sagen? :wink:
Ich habe mir den Text intensiv durchgelesen, aber ich weiß jetzt leider trotzdem nicht wirklich, was die damit meinen. Der Prozess ist vom Benutzer X und die zu löschende Datei gehört dem Benutzer X. Trotzdem geht die Rückgängig-Funktion nicht. Wieso? Ich brauche diese Papierkorb-Funktion unbedingt. |
Re: FOF_ALLOWUNDO + Vista geht nicht?
Naja, der letzte Satz des Zitats ist auch noch recht interessant. Vielleicht liegt der Hase da im Pfeffer?
|
Re: FOF_ALLOWUNDO + Vista geht nicht?
Hast du auch den vollen Pfad angegeben?
|
Re: FOF_ALLOWUNDO + Vista geht nicht?
Hallo.
Irgendwie läuft hier etwas sehr seltsam. Ich habe folgenden Test durchgeführt: - Eine OpenDialogbox, eine Showmessage und meine Funktion RecycleFile Ergebnis der ShowMessage: C:\Users\xxx\Pictures\xxx.jpg * Ergebnis des Löschung: Datei IST im Papierkorb! Nun habe ich bei meinem Projekt bei der Recycle-Funktion eine Showmessage zum Testen eingeführt Ergebnis der ShowMessage: C:\Users\xxx\Pictures\xxx.jpg * Ergebnis des Löschung: Datei IST NICHT im Papierkorb! Es sei anzumerken: - Ich habe bei beiden Tests die gleichen Datei(kopie) im selben Verzeichnis verwendet. - Vista hat auch nichts mit dem Roaming "Pictures" vs. "Bilder" verwurstet (was ich auch so erwartet hätte) - Das Projekt und der oben genannte Test verwenden OpenDialoge, die Dateiangabe kommt also nicht als Parameter rein und kann somit auch nicht unvollständig sein - der Parameter für meine Funktion ist aber trotzdem der gleiche, weswegen es keinen Unterschied machen sollte. Was passiert hier? * xxx steht für einen Namen mit Leerzeichen. Das sollte aber bei Windows keine Probleme machen. |
Re: FOF_ALLOWUNDO + Vista geht nicht?
Keine eine Ahnung?
|
Re: FOF_ALLOWUNDO + Vista geht nicht?
kannst du mal ein Beispielprogramm basteln? Ich hab grad kein Delphi zur Hand
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz