Also mir gefällt das Füllen von TSHFileOpStruct nicht.
Du hast
1.) die Struktur nicht mit 0 vorbelegt
2.) feste Puffer benutzt, die sehr leicht überschrieben werden können. => Zerstörung des Stacks
Besser so:
Delphi-Quellcode:
FillChar(shellinfo, SizeOf(shellinfo), #0); // zuerst mit #0 füllen
DirFrom := DirFrom+#0+#0
DirTo := DirTo+#0#0;
with shellinfo do
begin
Wnd := GetDesktopWindow;
wFunc := FO_COPY;
pFrom := PChar(DirFrom);
pTo := PChar(DirTo);
fFlags := FOF_SIMPLEPROGRESS or FOF_NOCONFIRMATION;
end;