Einzelnen Beitrag anzeigen

Benutzerbild von wbdelpprax
wbdelpprax

Registriert seit: 11. Mär 2008
36 Beiträge
 
#1

Loeschen in den Papierkorb funktioniert nicht aus Delphi heraus

  Alt 1. Jul 2010, 10:18
Hallo Leute,
mal eine Frage:
Ich arbeite mit Turbo Delphi 2006 und habe da ein merkwürdiges Problem. Ich lösche in meiner Anwendung eine Datei in den Windows Papierkorb (Win XP SP2). Wenn ich mein Programm innerhalb der Entwicklungsumgebung starte, dann werden die Dateien, die gelöscht werden sollen nicht in den Papierkorb gelöscht. Starte ich dagegen das Programm von "außerhalb" (also nach dem compile und einem build) dann werden die Dateien sehr wohl in den Papierkorb gelöscht.
Kann mir einer dieses sehr merkwürdige und auch sehr irritierende Verhalten erklären?

Im Programm sieht es ungefähr so bei mir aus:

Delphi-Quellcode:

Uses ..., ShellApi, ...;

Aufruf:
procedure ...
begin
          ...
          if DeleteFileToRecycleBin(g_delname) then ...
          ...
end;

function TFyourshow.DeleteFileToRecycleBin(const AFile: string): boolean;
var
  Operation: TSHFileOpStruct;
  l_result: integer;
begin
   try
     with Operation do
     begin
       Wnd := 0;
       wFunc := FO_DELETE;
       pFrom := PChar(AFile + #0 + #0);
       pTo := Nil;
       fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
       hNameMappings := NIL;
       lpszProgressTitle := NIL;
     end;
     Result := SHFileOperation(Operation)=0;
   except
     Result:= false;
     exit;
   end;
end;
Vielen Dank
Andreas
  Mit Zitat antworten Zitat