Se connecter avec
S'enregistrer | Connectez-vous

Fichier copié dans un mauvais répertoire

Dernière réponse : dans Programmation

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 :

  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.  
  55.  
  56. DisplayEndMessage:
  57. // If shared files could not be installed, then users must restart system.
  58. if (BATCH_INSTALL) then
  59. szMsg = "Some files could not be installed because they are " +
  60. "currently in use by other programs in the system. " +
  61. "To allow for proper operation of the new program you should restart" +
  62. "your system at this time." ;
  63. CommitSharedFiles(0) ;
  64. RebootDialog("Restart Windows", szMsg, SYS_BOOTMACHINE) ;
  65. else
  66. szMsg = "Setup is complete.\n\n\n" ;
  67.  
  68. // Message pour Windows NT
  69. if (!bPasswdInstall) then
  70. svMainDirectory = TARGETDIR;
  71. szMsg = szMsg + "Don't forget to copy the license file tee_pso.lic\n" ;
  72. szMsg = szMsg + " to the FLEXlm directory '" + svMainDirectory + "'\n\n" ;
  73. endif ;
  74. endif ;
  75.  
  76. MessageBeep(0) ;
  77. 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 !
Lassé par la pub ? Créez un compte

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)

  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 ...

Lassé par la pub ? Créez un compte
Tom's guide dans le monde