Page 1 sur 1

Createur d'exe ne marche pas .....

Publié : mer. 18/oct./2006 10:43
par Kwai chang caine
Bonjour

Voila j'ai trouvé ce code qui est de je ne sais pas qui et qui permet de creer un exe à partir de n'importe quel fichier image ou autre.

Il me créé bien l'exe mais quand je clique dessus rien ne se passe.

J'aimerais savoir si cela fait pareil chez vous, y a t'il un bug ?
Ou bien j'ai encore une fois merdé quelque part :oops:

Code : Tout sélectionner

typefile = MessageRequester("Quel est le type du fichier", "Les fichiers à inclure sont-ils des images?", #MB_ICONQUESTION | #PB_MessageRequester_YesNo) 
NewList fich.s() 
param$ = ProgramParameter() 
;- IMAGE A INCLURE 
If typefile = 6 
  file$ = OpenFileRequester("Ouvrez des images", GetPathPart(param$), "Images (BMP, JPG, PNG, TIFF, TGA, ICO)|*.ico;*.bmp;*.jpg;*.jpeg;*.tga;*.tiff;*.png", 0, #PB_Requester_MultiSelection) 
  If file$ 
  Repeat 
      AddElement(fich()) 
      fich() = file$ 
      file$ = NextSelectedFileName() 
    Until file$ = "" 
    res = MessageRequester("?", "Inclure le module d'extraction des images", #PB_MessageRequester_YesNo) 
    pathc = MessageRequester("Adresse des fichiers", "Chemin relatif 'Oui', Chemin complet'Non'", #PB_MessageRequester_YesNo) 
    If pathc = 6 
      AdressRef$ = OpenFileRequester("Fichier référence", param$, "Tous les fichiers|*.*", 0) 
      If AdressRef$ 
      Else 
        pathc = 7 
      EndIf 
    EndIf 
    CreateFile(1, GetPathPart(AdressRef$) + "IMG.pb") 
    WriteStringN("Enumeration") 
    For a = 0 To CountList(fich()) - 1 
      WriteStringN("#Image_" + Str(a+1)) 
    Next 
    WriteStringN("EndEnumeration") 
    WriteStringN("") 
    WriteStringN("UsePNGImageDecoder()") 
    WriteStringN("UseJPEGImageDecoder()") 
    WriteStringN("UseTIFFImageDecoder()") 
    WriteStringN("UseTGAImageDecoder()") 
    WriteStringN("") 
    WriteStringN(";- Les images peuvent etre utilisees dans une procedure") 
    WriteStringN("") 
    ;- INCLURE LE MODULE D EXTRACTION DE L IMAGE 
    If res = 6 
      For a = 0 To CountList(fich()) - 1 
        WriteStringN("Global Image" + Str(a+1)) 
      Next 
      WriteStringN("") 
      WriteStringN(";- Mise en memoire des images") 
      WriteStringN("") 
      For a = 0 To CountList(fich()) - 1 
        WriteStringN("Image" + Str(a+1) + " = CatchImage(#Image_" + Str(a+1) + ", ?Image" + Str(a+1) + ")") 
      Next 
      WriteStringN("") 
      WriteStringN(";- Les images seront inclus dans le programmes lors de la compilation") 
      WriteStringN("") 
      WriteStringN("Procedure ExpandBinaryfile(Fichier.s,binaire)") 
      WriteStringN("If CreateFile(0, Fichier)") 
      WriteStringN("UseFile(0)") 
      WriteStringN("LON=?FNU-binaire") 
      WriteStringN("WriteData(binaire,LON)") 
      WriteStringN("CloseFile(0)") 
      WriteStringN("EndIf") 
      WriteStringN("ProcedureReturn 1") 
      For a = 0 To CountList(fich()) - 1 
        SelectElement(fich(), a) 
        If pathc = 6 
          AdressFich$ = ReplaceString(fich(), GetPathPart(AdressRef$), "") 
        Else 
          AdressFich$ = fich() 
        EndIf 
        WriteStringN("Image" + Str(a+1) + ":") 
        WriteStringN("IncludeBinary " + Chr(34) + AdressFich$ + Chr(34)) 
      Next 
      WriteStringN("FNU:") 
      WriteStringN("EndProcedure") 
      WriteStringN("") 
      WriteStringN("Dim Images.s(" + Str(CountList(fich())) + ") : Dim AdressLabel.l(" + Str(CountList(fich())) + ")") 
      For a = 0 To CountList(fich()) - 1 
        SelectElement(fich(), a) 
        If pathc = 6 
          AdressFich$ = ReplaceString(fich(), GetPathPart(AdressRef$), "") 
        Else 
          AdressFich$ = fich() 
        EndIf 
        WriteStringN("Images(" + Str(a + 1) + ")=" + Chr(34) + AdressFich$ + Chr(34) + " : AdressLabel(" + Str(a + 1) + ")=?Image" + Str(a+1)) 
      Next 
      ;- EXCLURE LE MODULE D EXTRACTION DE L IMAGE 
    Else 
      For a = 0 To CountList(fich()) - 1 
        WriteStringN("Global Image" + Str(a+1)) 
      Next 
      WriteStringN("") 
      WriteStringN(";- Mise en memoire des images") 
      WriteStringN("") 
      For a = 0 To CountList(fich()) - 1 
        WriteStringN("Image" + Str(a+1) + " = CatchImage(#Image_" + Str(a+1) + ", ?Image" + Str(a+1) + ")") 
      Next 
      WriteStringN("") 
      WriteStringN(";- Les images seront inclus dans le programmes lors de la compilation") 
      WriteStringN("") 
      WriteStringN("DataSection") 
      For a = 0 To CountList(fich()) - 1 
        SelectElement(fich(), a) 
        If pathc = 6 
          AdressFich$ = ReplaceString(fich(), GetPathPart(AdressRef$), "") 
        Else 
          AdressFich$ = fich() 
        EndIf 
        WriteStringN("Image" + Str(a+1) + ":") 
        WriteStringN("IncludeBinary " + Chr(34) + AdressFich$ + Chr(34)) 
      Next 
      WriteStringN("EndDataSection") 
    EndIf 
    CloseFile(1) 
    SelectElement(fich(), 0) 
    RunProgram(GetPathPart(AdressRef$) + "IMG.pb") 
  EndIf 
  ;- FCIHIER A INCLURE 
Else 
  file$ = OpenFileRequester("Ouvrez des fichiers", GetPathPart(param$), "Tous les fichiers)|*.*", 0, #PB_Requester_MultiSelection) 
  If file$ 
  Repeat 
      AddElement(fich()) 
      fich() = file$ 
      file$ = NextSelectedFileName() 
    Until file$ = "" 
    pathc = MessageRequester("Adresse des fichiers", "Chemin relatif 'Oui', Chemin complet 'Non'", #PB_MessageRequester_YesNo) 
    If pathc = 6 
      AdressRef$ = OpenFileRequester("Fichier référence", param$, "Tous les fichiers|*.*", 0) 
      If AdressRef$ 
      Else 
        pathc = 7 
      EndIf 
    EndIf 
    CreateFile(1, GetPathPart(AdressRef$) + "FICH.pb") 
    WriteStringN("Procedure ExpandBinaryfile(Fichier.s,binaire)") 
    WriteStringN("If CreateFile(0, Fichier)") 
    WriteStringN("UseFile(0)") 
    WriteStringN("LON=?FNU-binaire") 
    WriteStringN("WriteData(binaire,LON)") 
    WriteStringN("CloseFile(0)") 
    WriteStringN("EndIf") 
    WriteStringN("ProcedureReturn 1") 
    For a = 0 To CountList(fich()) - 1 
      SelectElement(fich(), a) 
      WriteStringN("Fichier" + Str(a+1) + ":") 
      If pathc = 6 
        AdressFich$ = ReplaceString(fich(), GetPathPart(AdressRef$), "") 
      Else 
        AdressFich$ = fich() 
      EndIf 
      WriteStringN("IncludeBinary " + Chr(34) + AdressFich$ + Chr(34)) 
    Next 
    WriteStringN("FNU:") 
    WriteStringN("EndProcedure") 
    WriteStringN("") 
    WriteStringN("Dim Fichiers.s(" + Str(CountList(fich())) + ") : Dim AdressLabel.l(" + Str(CountList(fich())) + ")") 
    
    For a = 0 To CountList(fich()) - 1 
      SelectElement(fich(), a) 
      If pathc = 6 
        AdressFich$ = ReplaceString(fich(), GetPathPart(AdressRef$), "") 
      Else 
        AdressFich$ = fich() 
      EndIf 
      WriteStringN("Fichiers(" + Str(a + 1) + ")=" + Chr(34) + AdressFich$ + Chr(34) + " : AdressLabel(" + Str(a + 1) + ")=?Fichier" + Str(a+1)) 
    Next 
    RunProgram(GetPathPart(AdressRef$) + "FICH.pb") 
  EndIf 
EndIf 
Je vous remercie
Bonne journée

Publié : mer. 18/oct./2006 11:54
par brossden
Il y a un bug !
Tous les WriteStringN(".... ont le même problème: il manque l'Id du fichier ! soit WriteStringN(1,"....

Pour regler le problème :
- Appuyer sur << CTRL >>+<< F >>
- Dans Chercher mettre : WriteStringN(
- Cocher remplacer
- Dans remplacer mettre : WriteStringN(1,
- Cliquez sur : <<Remplacer tout>>

Publié : mer. 18/oct./2006 13:28
par Kwai chang caine
Merci BROSSDEN

J'ai fait comme tu as dit, et maintenant le code marche en V4, mais j'ai toujours les meme symptomes. 8O

Nomalement quand on clique l'exe le fichier d'origine devrait réaparaitre, si j'ai bien compris, car la, rien ne se passe. :?

Je suis sous W2000 ça n'a rien à voir ?

Est ce que chez toi ça marche?

Je te remercie de ton aide
Excelente journée

Publié : mer. 18/oct./2006 13:44
par brossden
Oui chez moi le programme fonctionne mais pour faire quoi exactement ???

Publié : mer. 18/oct./2006 21:55
par Kwai chang caine
Merci de l'avoir essayé, j'ai compris ce qui n'allait pas , je n'avais pas fait l'appel de la procedure dans le fichier créé.

C'est pour faire un petit setup.

Encore merci
Bonne soirée