Page 1 sur 1

[Résolu] Include un exe dans mon programme

Publié : lun. 31/mai/2010 15:22
par DarkIchigo
Salut a tous,

après avoir cherché je n'ai rien trouvé pour m'aider sur ce point.

j'aurai voulu savoir si il était possible d'inclure un fichier *.exe et de l’appeler directement depuis mon programme en PB et si oui comment dois-je procéder?

Par exemple, je veux faire un AIO pour mes pilotes et n'avoir donc qu'un seul .exe à lancer avec tous mes pilotes inclus dans mon programme et qui se lance directement depuis le programme ou par extraction dans un dossier Temp.

voila ce que j'ai testé plus ou moins:

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 400, 200, "AIO", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
TextGadget(1, 5, 5, 100, 20, "text")
TextGadget(2, 5, 30, 100, 20, "text")
ButtonGadget(3, 120, 5, 40, 20, "B1")
ButtonGadget(4, 120, 30, 40, 20, "B2")

Quit = 0

Repeat
   Event = WaitWindowEvent()
   Select EventWindow()
   Case 0
      Select Event
      Case #PB_Event_Gadget
         Select EventGadget()
         Case 3 : IncludePath "C:\parici\" : XIncludeFile "file.exe"
         Case 4 : IncludePath "C:\parlà\" : XIncludeFile "filou.exe"
         EndSelect
      Case #PB_Event_CloseWindow : Quit = 1
      EndSelect
   EndSelect

Until Quit = 1 
EndIf
Donc le

Code : Tout sélectionner

IncludePath "C:\parici\"  : XIncludeFile "file.exe"
m'ouvre la fenêtre 'visualisateur de fichier' en binaire sauf erreur mais ne me lance pas mon programme.

Comment dois-je faire pour pouvoir inclure les .exe et les lancer depuis mon prgramme?

Merci d'avance pour votre aide.

Re: Include un exe dans mon programme

Publié : lun. 31/mai/2010 15:41
par Backup
DarkIchigo a écrit :Salut a tous,

après avoir cherché je n'ai rien trouvé pour m'aider sur ce point.
moi je pense que t'as rien cherché du tout !!

la preuve je viens de le faire pour toi avec les mots "inclure un exe"
et voila !
http://www.purebasic.fr/french/viewtopi ... ure+un+exe

de plus le TUTO 43 te donnera la solution pour executer un programme !
http://www.purebasic.fr/french/viewtopi ... =21&t=6664

faudra voir a arreter de prendre les gens pour des cons !

je prefererai que tu dise que t'as eu la bulle de chercher ! ;)

Re: Include un exe dans mon programme

Publié : lun. 31/mai/2010 15:47
par lepiaf31
Personnellement j'aurais utilisé IncludeBinay pour inclure l'executable dans ton programme. Ensuite je l'extrais et je l'execute. Voilà un code vite-fait:

Code : Tout sélectionner

OpenWindow(0, 0, 0, 200, 200, "Test", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(0, 20, 50, 150, 30, "Click")

quit = 0
Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 0
          ;on commence par extraire l'executable:
          CreateFile(0, "test.exe")
          WriteData(0, ?exe, ?finExe-?exe)
          CloseFile(0)
          
          ;on lance le fichier extrait
          RunProgram("test.exe")
      EndSelect
    Case #PB_Event_CloseWindow
      quit = 1
  EndSelect
Until quit

DataSection
  exe:
  IncludeBinary "TonProgAInclure.exe"
  finExe:
EndDataSection
On peut ensuite supprimer l'executable extrait une fois qu'il à terminé son travail.

Re: Include un exe dans mon programme

Publié : lun. 31/mai/2010 20:15
par DarkIchigo
Dobro a écrit :
DarkIchigo a écrit :Salut a tous,

après avoir cherché je n'ai rien trouvé pour m'aider sur ce point.
moi je pense que t'as rien cherché du tout !!

la preuve je viens de le faire pour toi avec les mots "inclure un exe"
et voila !
http://www.purebasic.fr/french/viewtopi ... ure+un+exe

de plus le TUTO 43 te donnera la solution pour exécuter un programme !
http://www.purebasic.fr/french/viewtopi ... =21&t=6664

faudra voir a arrêter de prendre les gens pour des cons !

je préfèrerai que tu dise que t'as eu la bulle de chercher ! ;)
Je peux comprendre que certains abusent dans leur orthographe ou dans leur façon de parler et que donc ca énerve mais je ne pense pas avoir mérité que tu me réponde ainsi, je suis poli je penses, je demande pas qu'on me fasse mes progs, juste un peu d'aide pour que je comprenne et puisse faire, je respecte les gens du forum.

donc j'ai cherché "include exe" et rien ne correspondait
http://www.purebasic.fr/french/search.p ... Rechercher
en dehors de mon post rien de bien significatif...

Donc merci pour tes réponses ainsi qu'à Lepiaf31, avec ça je devrai trouver mon bonheur. :)

Re: Include un exe dans mon programme

Publié : lun. 31/mai/2010 21:57
par Backup
DarkIchigo a écrit : donc j'ai cherché "include exe" et rien ne correspondait
je sais que le moteur de recherche n'est pas tres performant

seulement lorsque je cherche pour des gens comme toi qui "ne trouve pas"
j'essaie plusieurs termes ... et ne me décourage pas a la premiere réponse fausse

enfin , pour l'anecdote j'ai trouvé tout de suite avec "inclure un exe"...

donc soit tu n'as pas cherché (ce qui expliquerai mon agacement)
soit tu n'as pas cherché bien longtemps !

enfin , tu as ta réponse , l'essentiel est là , n'est-ce pas ? :)

Re: Include un exe dans mon programme

Publié : lun. 31/mai/2010 22:18
par DarkIchigo
Dobro a écrit :enfin , tu as ta réponse , l'essentiel est là , n'est-ce pas ? :)
Oui tout à fait, d'ailleur j'ai testé en mettant plusieurs programmes en include, mais j'ai un petit "Out of memory"
est-ce que le compilateur de PB est très limité en taille ou alors j'ai abusé sur les progs (env 250 Mo) ?

Re: [Résolu] Include un exe dans mon programme

Publié : lun. 31/mai/2010 23:16
par Ar-S
Le programme sature vite comme ça, 250 mo ça me parait lourd pour l'include.
J'ai déjà inclus des fichiers mais jamais excédant ~80mo
Pourtant ayant 3,2go de ram utilisable, soit je me suis mal démerdé (j'utilise aussi ?end-?start...) soit pb à tout de même un soucis de ce coté.
Du coup, j'utilise la (très bonne) lib Vbin créator qui permet de créer un container (protégeable par mdp) et mon exe va piocher dedans quand il en a besoin.
Je l'ai utilisé pour stocker des milliers de photos d'archives pour un gars qui fait de la généalogie.

Adresse de la lib pour pb 4.40 : http://www.reelmedia.org/cgi-bin/PurePr ... &sub=ASM44

Tu trouveras de plus amples infos dans l'archive (l'aide, le createur de bin etc...)

Re: [Résolu] Include un exe dans mon programme

Publié : mar. 01/juin/2010 6:10
par lepiaf31
Pour éviter le out of memory, tu peux essayer de faire ça (j'extrais le programme petit à petit au lieu de l'extraire tout d'un coup):

Code : Tout sélectionner

bufferSize = 2048

OpenWindow(0, 0, 0, 200, 200, "Test", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
ButtonGadget(0, 20, 50, 150, 30, "Click")

quit = 0
Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 0
          ;on commence par extraire l'executable:
          CreateFile(0, "test.exe")
          remainingSize = ?finExe-?exe
          pointer = ?exe
          While remainingSize > 0
            If remainingSize < bufferSize
              size = remainingSize
            Else
              size = bufferSize
            EndIf
            WriteData(0, pointer, size)
            pointer + size
            remainingSize - size
          Wend
          CloseFile(0)
          
          ;on lance le fichier extrait
          RunProgram("test.exe")
      EndSelect
    Case #PB_Event_CloseWindow
      quit = 1
  EndSelect
Until quit

DataSection
  exe:
  IncludeBinary "test.exe"
  finExe:
EndDataSection

Re: [Résolu] Include un exe dans mon programme

Publié : mar. 01/juin/2010 7:49
par DarkIchigo
Merci pour vos réponses, si avec ça j'y arrive pas c'est que je suis encore plus nul que je pensais :)

En même temps pour le "Out of memory" je serai pas allé loin je voulais y intégrer 1.3 Go de fichiers :twisted:
je vais tester avec la lib mais ca risque d'être quand même bien lourd ou final, va falloir faire du tri ^^

Re: [Résolu] Include un exe dans mon programme

Publié : lun. 07/juin/2010 16:51
par dayvid
hééééééééé !!!

sa me r'appel quel qu'un moi sa
ba moi par éxemple car j'avais poser
la même question et ont ma aider
vive pure basic, le roi du monde de la programation :mrgreen:

Re: [Résolu] Include un exe dans mon programme

Publié : lun. 07/juin/2010 16:58
par SPH
dayvid a écrit :hééééééééé !!!

sa me r'appel quel qu'un moi sa
ba moi par éxemple car j'avais poser
la même question et ont ma aider
vive pure basic, le roi du monde de la programation :mrgreen:
:idea: Si tu pouvais faire un TOUT PETIT EFFORT sur l'orthographe, on sera tous content :idea:
En ton language : Sit upou vé fer un toupeux titéfor sur lortograf, on seré tousse trè con temps !!

@lepiaf : ton code est tres interessant pour moi qui ne maitrise pas les pointeurs.