Utilisation de copyfile

cs_Champy70 Messages postés 9 Date d'inscription samedi 7 mai 2005 Statut Membre Dernière intervention 23 avril 2006 - 2 août 2005 à 19:36
florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 - 2 août 2005 à 22:11
je vous explique je veux que quan mon programme se lance alor a cette instant il se copie dans un dossier ou dan c:\windows par exemple!
mais cela ne marche pa g fai plein de recherche la plus credible est de mettre dans form.create copyfile(pchar(application.exename),pchar('c:\windows'),false);
mais cela ne mache pas desoler je ne sui pa un pro a delphi et surement que g fait une erreur toute bete alor please help lol


mici davance!!!!

1 réponse

florenth Messages postés 1023 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 17 août 2008 2
2 août 2005 à 22:11
Salut,

Ton implémentation de CopyFile() est tout a fait correcte mais il y a un hic: tu ne peux pas copier, ni déplacer ou supprimer un fichier ouvert (limitation de Windows). Résultat: ton application ne peut pas se copier.


Pour outrepasser cette limite, il faut creer un fichier .bat qui copiera ton application une fois fermée.

Tu peux faire comme cela (dans le OnDestroy, obligatoirement).

<hr size= "2" width="100%"> uses

[ ... ], ShellApi;



procedure TForm1.OnDestroy(Sender: TObject);

var

Txt: TextFile;

begin

AssignFile(Txt,ExtractFilePath(Application.ExeName) + 'copy.bat');

ReWrite(Txt);

Writeln(Txt,'@ echo off');

Writeln(Txt,Format('COPY "%s" "%s"',[Application.ExeName,'Chemin de destination']));

CloseFile(Txt);

ShellExecute('OPEN',PChar(ExtractFilePath(Application.ExeName) + 'copy.bat'),nil,nil,0);

end;

<hr size ="2" width="100%">@ ++

Florent


Si tu ne te plantes pas ......
tu ne poussera jamais
0