Yo creo que se puede solucionar mucho mejor con un thread.
Código Delphi
[-]
type
TCopyThread = class (TThread)
protected
procedure execute; override;
end;
var
Copiar: TCopyThread;
implementation
procedure TCopyThread.execute;
begin
Copiar.FreeOnTerminate:=true;
CopyFile(PChar('C:\Ejemplo_fuente.exe'), PChar('C:\Ejemplo_destino.exe'), False);
end;
Añades esto en tu formulario. Para ejecutarlo:
Código Delphi
[-]
begin
Copiar:= TCopyThread.create(true);
Copiar.execute;
end;
Salu2 espero que te sirva.