Tom's Guide > Forum > Programmation > Fichier copié dans un mauvais répertoire

Fichier copié dans un mauvais répertoire

Forum Programmation : Fichier copié dans un mauvais répertoire

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Salut à tous,

J'ai un truc qui m'énerve depuis 2h, je viens donc appeler à l'aide !

Dans mon script, je vais rechercher sur la disquette (A:) si le fichier license est là.

Si il y est, je copie ce fichier dans le répertoire d'installation du programme (répertoire choisi par l'utilisateur précédemment)

Or mon problème est que mon script copie mon fichier dans le dossier contenant l'installateur (Setup.exe) ><

Voici la partie de code qui copie mon fichier :

Code :
  1. // Copier le fichier tee_pso.lic
  2. CopyPasswordFile:
  3.   bPasswdInstall = FALSE ;
  4.   retBox = AskYesNo("Do you want to install the license file ?", YES) ;
  5.   if (retBox) then
  6.       szSrcDir = SRCDIR ;
  7.       strResult = "A:\\" ;
  8.       if (GetSystemInfo(DRIVE, nvResult, strResult)=0) then
  9.         if (nvResult=IS_REMOVABLE) then
  10.             szMsg = "Put the 'Password' floppy disk in drive A:\n          and click on the 'Ok' button" ;
  11.             MessageBox(szMsg, INFORMATION) ;
  12.             TARGETDIR = svMainDirectory ;
  13.             SRCDIR = "A:\\" ;
  14.            
  15.             // Chercher le 'ComputerName'
  16.             RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE) ;
  17.             szRegKey = "SYSTEM\\CurrentControlSet\\Control\\ComputerName\\ComputerName" ;
  18.             szName = "ComputerName" ;
  19.             RegDBGetKeyValueEx(szRegKey, szName, nvType, svValue, nvSize) ;
  20.            
  21.             // Construire le nom du fichier de licence
  22.             passwordfilename = "tee_pso_" + svValue + ".lic" ;
  23.             fullpasswordfilename = SRCDIR ^ passwordfilename ;
  24.            
  25.             #ifdef DEBUG
  26.               szMsg = "Fichier de licence recherché : " + passwordfilename + "\n\n" ;
  27.               MessageBox(szMsg, INFORMATION) ;
  28.             #endif
  29.            
  30.             if (GetFileInfo(fullpasswordfilename, FILE_SIZE, nvResult, szResult)<0) then
  31.               szMsg = "Can't find '" + passwordfilename + "' on floppy disk\n\n" ;
  32.               szMsg = szMsg + "  -> You will have to copy it manually\n\n" ;
  33.               MessageBox(szMsg, WARNING) ;
  34.               goto DisplayEndMessage ;
  35.             else
  36.              
  37.               // svLicenseDirectory = "C:\Program Files\TEE_PSO\Flexlm\tee_pso.lic";
  38.               retBox = CopyFile(passwordfilename, "tee_pso.lic" );
  39.               if (retBox<0) then
  40.                   szMsg = "Unable to copy '" + fullpasswordfilename + "' to " + TARGETDIR ;
  41.                   #ifdef DEBUG
  42.                     NumToStr(szTemp, retBox) ;
  43.                     szMsg = szMsg + "  Code d'erreur " + szTemp + " \n\n" ;
  44.                   #endif
  45.                   MessageBox(szMsg, SEVERE) ;
  46.                   abort ;
  47.               endif ;
  48.               bPasswdInstall = TRUE ;
  49.             endif ;
  50.         endif ;
  51.       endif ;
  52.       SRCDIR = szSrcDir ;
  53.   endif;
  54. DisplayEndMessage:
  55.   // If shared files could not be installed, then users must restart system.
  56.   if (BATCH_INSTALL) then
  57.       szMsg = "Some files could not be installed because they are " +
  58.               "currently in use by other programs in the system.  " +
  59.               "To allow for proper operation of the new program you should restart" +
  60.               "your system at this time." ;
  61.       CommitSharedFiles(0) ;
  62.       RebootDialog("Restart Windows", szMsg, SYS_BOOTMACHINE) ;
  63.   else
  64.       szMsg = "Setup is complete.\n\n\n" ;
  65.       // Message pour Windows NT
  66.       if (!bPasswdInstall) then
  67.               svMainDirectory = TARGETDIR;
  68.         szMsg = szMsg + "Don't forget to copy the license file tee_pso.lic\n" ;
  69.         szMsg = szMsg + "  to the FLEXlm directory '" + svMainDirectory + "'\n\n" ;
  70.       endif ;
  71.   endif ;
  72.   MessageBeep(0) ;
  73.   MessageBox(szMsg, INFORMATION) ;



Je signale que j'utilise InstallShield Professional X mais ce code n'a aucune fonction récente.

Je vous remercie d'avance pour votre aide !

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

et si on n'a pas de lecteur disquettes ?


Message édité par gambit@IDN le 08-08-2007 à 17:05:17
Répondre à gambit@IDN

Actuellement, tous nos clients ont demandé par disquette. (Le programme qui est installé n'est pas un programme distribué en grand nombre).

Je n'ai donc pas besoin de créer de recherche sur le CD. ;)

Répondre à pyo666@IDN

Code :
  1. retBox = CopyFile(passwordfilename, "tee_pso.lic" );



Ne faudrait-il pas indiquer l'emplacement du fichier et pas seulement mettre tee_pso.lic ?

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

J'ai essayé de remplacer tee_pso.lic par C:\Program Files\TEE_PSO\Flexlm\tee_pso.lic
C'est le répertoire d'installation proposé, j'ai fait ça pour tester mais ça me ressort l'erreur (pourtant le dossier est créé vu qu'il a installé les autres fichiers dedans)

Code :
  1. Unable to copy 'A:\tee_pso_TW010882.lic" to



Le TW010882 c'est le nom de mon PC test donc normal mais le problème c'est qu'il ne reconnait pas "INSTALLDIR" (vu qu'il ne s'affiche pas dans mon message)

Il faudrait que je remplace le répertoire par TARGETDIR mais il ne le reconnait pas.

Par contre, lorsque je clique sur "Non" lors du MsgBox qui me demande si je veux copier le fichier license, là il m'affiche bien le message "Don't forget to copy tee_pso.lic to C:\Program Files\TEE_PSO\Flexm"
Et donc là, la variable INSTALLDIR s'affiche correctement ...

Répondre à pyo666@IDN

Es-tu sûr que le fichier A:\tee_pso_TW010882.lic existe bien aussi ?

------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

Oui oui car lorsque je laisse mon code initial (sans changer tee_pso.lic par C:\Program Files\...), il copie bien mon fichier mais dans le dossier qui contient mon setup d'installation :/

Répondre à pyo666@IDN
Tom's Guide > Forum > Programmation > Fichier copié dans un mauvais répertoire
Aller à :

Il y a 1736 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens