[Résolu] Include un exe dans mon programme

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
DarkIchigo
Messages : 62
Inscription : lun. 22/mars/2010 11:34

[Résolu] Include un exe dans mon programme

Message 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.
Dernière modification par DarkIchigo le lun. 31/mai/2010 20:15, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Include un exe dans mon programme

Message 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 ! ;)
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

Re: Include un exe dans mon programme

Message 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.
DarkIchigo
Messages : 62
Inscription : lun. 22/mars/2010 11:34

Re: Include un exe dans mon programme

Message 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. :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Include un exe dans mon programme

Message 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 ? :)
DarkIchigo
Messages : 62
Inscription : lun. 22/mars/2010 11:34

Re: Include un exe dans mon programme

Message 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) ?
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

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

Message 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...)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
lepiaf31
Messages : 510
Inscription : dim. 25/mars/2007 13:44
Localisation : Toulouse, France
Contact :

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

Message 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
DarkIchigo
Messages : 62
Inscription : lun. 22/mars/2010 11:34

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

Message 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 ^^
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

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

Message 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:
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
SPH
Messages : 4947
Inscription : mer. 09/nov./2005 9:53

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

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

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Répondre