Utilisation de copyfile

Signaler
Messages postés
9
Date d'inscription
samedi 7 mai 2005
Statut
Membre
Dernière intervention
23 avril 2006
-
Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
-
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

Messages postés
1023
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
17 août 2008
2
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