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