Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1669 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [InstallShield] Fichier copié au mauvais endroit

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[InstallShield] Fichier copié au mauvais endroit

n°1597268
Pyo
Posté le 08-08-2007 à 15:44:50  profilanswer
 

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 !

mood
Publicité
Posté le 08-08-2007 à 15:44:50  profilanswer
 

n°1597528
wackevat
Posté le 09-08-2007 à 05:34:00  profilanswer
 

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


Et si tu precisais de facon explicite le dossier de destination ?

n°1597532
gatsu35
Blablaté par Harko
Posté le 09-08-2007 à 07:54:13  profilanswer
 

Si je peux me permettre, lire une licence sur une disquette c'est totalement dépassé, autant rentrer un numero de série. Car accessoirement, plus aucun ordi n'a de lecteur de disquette. Ou bien ils sont très très rares

n°1597551
Pyo
Posté le 09-08-2007 à 09:31:35  profilanswer
 

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 ...  
 
Sinon pour Gatsu35, ce n'est pas moi qui décide ^^ Je suis en job d'étudiant et je dois créer les installateurs des programmes développés par la société dans laquelle je bosse pour le moment ...  
Mais c'est vrai que c'est un peu dépassé comme méthode :/

n°1597617
Pyo
Posté le 09-08-2007 à 11:45:03  profilanswer
 

J'ai finalement trouvé la solution à mon problème.
 
Lorsque l'utilisateur choisit le répertoire d'installation, j'ai directement créé une variable "szRepertInstall" qui était égale à TARGETDIR.
 
Après, lors de ma 2ieme fonction (celle qui s'occupe du fichier license), je ré-annonce cette variable.
 
Puis lors de la copie de mon fichier je fais ceci :
 

Code :
  1. svLicenseDirectory = szRepertInstall ^ "tee_pso.lic";
  2. retBox = CopyFile(passwordfilename, svLicenseDirectory);


 
Et il le copie correctement :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [InstallShield] Fichier copié au mauvais endroit

 

Sujets relatifs
résultat d'une requete dans fichier que si requete retourne des ligneslogiciel vb 6.0 parsing fichier xml existant sur serveur
logiciel vb 6.0 faire le parsing d'un fichier xml sur serveurun logiciel en vb 6.0 le parsing de fichier xml existe sur un serveur
[InstallShield] Voir code source + serial number + choix à cocher& dans un nom de fichier
file_put_contents : ne veut pas fonctionner si le fichier n'existe pasRécupérer fichier son depuis serveur distant
Fonction pour md5 d'un fichier + compiler la libmacro insertion image word depuis un fichier
Plus de sujets relatifs à : [InstallShield] Fichier copié au mauvais endroit


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR