Exe en data Section: Enregistrer et lancer un éxécutable

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Exe en data Section: Enregistrer et lancer un éxécutable

Message par falsam »

Cet exemple permet d'enregistrer et lancer un exécutable figurant en data section après l'avoir installer depuis un premier exécutable : Par exemple un setup.

■ Créer un dossier. Enregistrer et créer un exécutable de ce bout de code. (demo.exe)

Code : Tout sélectionner

Enumeration
  #Mainform
EndEnumeration

Define.l Event, GEvent

Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered

Procedure Open_MainForm()
  OpenWindow(#Mainform, 0, 0, 300, 200, "Demo", WindowStyle)
EndProcedure

Open_MainForm()

Repeat
  Event  = WaitWindowEvent(10)
  GEvent = EventGadget()
  Select Event
    Case #PB_Event_Gadget
      Select GEvent
      EndSelect
        
    Case #PB_Event_CloseWindow
      End
  EndSelect
ForEver
■ Enregistrer maintenant ce code dans le même dossier et exécuter le.

Code : Tout sélectionner

EnableExplicit

Define.s TextFile, ExeFile
Define FF, *mem, length.q

ExeFile = SaveFileRequester("Installer sur ... ", "demo.exe", "Exe (*.exe)|*.exe", 0)

If ExeFile
  FF = CreateFile(#PB_Any, ExeFile)
  If FF
   
    WriteData(FF, ?demo, ?demo_end - ?demo)
    CloseFile(FF)
      
    RunProgram(ExeFile)  
  EndIf
EndIf

End

DataSection
  demo:
  IncludeBinary "demo.exe"
  demo_end:
EndDataSection
Pratique pour créer un installateur par exemple.
Dernière modification par falsam le lun. 18/août/2014 16:20, modifié 4 fois.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Exe en data Section: Lancer un exe en datasection

Message par Backup »

ben c'est pas neuf ton truc :roll:
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Exe en data Section: Lancer un exe en datasection

Message par falsam »

Dobro a écrit :ben c'est pas neuf ton truc :roll:
Je n'ai pas dit le contraire. Tu ne radotes jamais toi ?
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Exe en data Section: Lancer un exe en datasection

Message par Backup »

ben alors ça sert a quoi de reecrire un topic deja abordé

ici :
http://www.purebasic.fr/french/viewtopi ... rg#p119763

ici :
http://www.purebasic.fr/french/viewtopi ... =BinToFile

ici :
http://www.purebasic.fr/french/viewtopi ... =BinToFile

et bien sur .... ici

http://www.purebasic.fr/french/viewtopi ... =BinToFile

Merci Flype ;)


falsam a écrit :Tu ne radotes jamais toi ?
non jamais :mrgreen:
Fred
Site Admin
Messages : 2648
Inscription : mer. 21/janv./2004 11:03

Re: Exe en data Section: Lancer un exe en datasection

Message par Fred »

@Drobro: franchement abstiens-toi de poster si c'est juste pour critiquer. Tout code est bon à prendre et ton post n'apporte absolument rien, merci.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Exe en data Section: Lancer un exe en datasection

Message par Backup »

Fred a écrit :@Drobro: franchement abstiens-toi de poster si c'est juste pour critiquer. Tout code est bon à prendre et ton post n'apporte absolument rien, merci.

moi c'est Dobro , merci

ma reponse contient des codes, qui font deja la meme chose, je fait remarquer la redondance ;)
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Exe en data Section: Lancer un exe en datasection

Message par falsam »

Dobro a écrit :ben alors ça sert a quoi de reecrire un topic deja abordé
Parce que les codes qui sont proposés ne sont plus ou pas fonctionnels (Code de 2006 ou Syntaxe incorrecte , etc ....).

Les codes que je propose ne sont pas de simples copier/coller que je balance. Ils sont liés à des questions qui se posent sur le forum par exemple, et sont fonctionnels avec les versions récentes de Pure Basic après quelques corrections.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
case
Messages : 1527
Inscription : lun. 10/sept./2007 11:13

Re: Exe en data Section: Enregistrer et lancer un éxécutable

Message par case »

c'est cool falsam continue de poster des codes :)
ImageImage
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Exe en data Section: Enregistrer et lancer un éxécutable

Message par Ar-S »

En gros on extrait un exe comme tout autre data en recréant le fichier sur le dd. C'est effectivement pratique. Par contre à mon humble avis, les antivirus risquent de pas aimer la chose. (déjà que).
Mais c'est vrai que pour un installeur ou mieux, un désinstalleur ça peu s'avérer pratique (avec un batch au lieux d'un exe ça passerai peut être mieux coté antivérolin).
~~~~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
Répondre