Conflit "USES" FileUtil - Windows : Nombre de paramètres de la fonction CopyFile
bonsoir,
dans une application fonctionnelle (un setup.exe pour installer une application = noob_coach.exe)),
je tente d'ajouter la création d'un raccourci de l'application
j'ai ajouté ce type de code qui fonctionne en solo
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| procedure TForm1.Button2Click(Sender: TObject);
Var
IObject : IUnknown;
ISLink : IShellLink;
IPFile : IPersistFile;
PIDL : PItemIDList;
InFolder : array[0..MAX_PATH] of Char;
TargetName : String;
LinkName : WideString;
Begin
TargetName :=DirectoryEdit1.Directory +'\Noob_Coach\noob_coach.exe';
IObject := CreateComObject(CLSID_ShellLink) ;
ISLink := IObject as IShellLink;
IPFile := IObject as IPersistFile;
with ISLink do
begin
SetPath(pChar(TargetName)) ;
SetWorkingDirectory(pChar(ExtractFilePath(TargetName))) ;
end;
SHGetSpecialFolderLocation(0, CSIDL_DESKTOPDIRECTORY, PIDL) ;
SHGetPathFromIDList(PIDL, InFolder) ;
LinkName := InFolder + '\noob_coach Link.lnk' ;
IPFile.Save(PWChar(LinkName), false) ;
end; |
en utilisant
Code:
1 2
| uses
Windows, Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, ShlObj, ActiveX, ComObj, ExtCtrls, ExtDlgs, Buttons, UnitGlobales; |
Donc j'explique ma question:
j'ai donc tenté d'ajouté cette création de raccourci sur le bureau dans mon setup
j'ai ajouté un bouton plus le code ci dessus
j'ai ajouté les "USES" nécessaires au code ajouté que je n'avais pas dans le code du setup
mes "USES" avant l'ajout des nouveaux nécessaires à création raccourci.
Code:
1 2 3
| uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, EditBtn,
StdCtrls, ExtCtrls, Process; |
mais j'obtiens un message d'erreur
Citation:
Error: Wrong number of parameters specified for call to "CopyFile"
j'ai tenté de virer 1 à 1 les "USES" ajoutés pour isoler le fautif mais en vain pas moyen de voir celui qui coince !
j'ai tenté de mettre cette ligne de code entre {CopyFile } pour ne pas l'éxécuter, et là tout est fonctionnel !
j'ai beau regarder les paramètres attendu par la fonction COPYFILE en faisant 'CTRL SHIFT ESPACE' après parenthèse, tout me parait correct
pour info:
Code:
1 2 3 4
| If Not CopyFile('noob_coach.bin',DirectoryEdit1.Directory +'\Noob_Coach\noob_coach.exe') Then
ShowMessage ('Echec de la copie du fichier !')
else
ShowMessage ('Installation du programme réussie'+ Chr(13) + DirectoryEdit1.Directory +'\Noob_Coach\noob_coach.exe'); |
j'ai essayé aussi en virant le "if no" et mettre directement le code
Code:
CopyFile('noob_coach.bin',DirectoryEdit1.Directory +'\Noob_Coach\noob_coach.exe') ;
ps: le fichier "*.bin" est un "*.exe" que je transforme par copie/renommage pour éviter que les utilisateurs ne le lance direct sans passer par le setup qui met en plce des répertoire et déplace l'application dans le répertoire ad hoc
(je pense que cela ne doit pas être un problème lié à ce message d'erreur)
à terme dans les versions suivantes de mon programme qui est toujours en version béta, je décompresserai sans doute ce fichier (pas encore eu le temps de regarder comment faire, mais ça doit pas être sorcier .... quoique avec le pascal et lazarus ce qui me parait simple ne l'est pas toujours :roll: )
pourriez vous m'aider ?
merci de votre attention