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

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

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

Message 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
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message 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>>
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Oui chez moi le programme fonctionne mais pour faire quoi exactement ???
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message 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
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre