Plusieurs *.exe dans un seul ???
Plusieurs *.exe dans un seul ???
Bonjour,
j'aimerai savoir si il est possible de "rassembler" plusieurs programmes *.exe interdépendants en un seul ?
Par exemple, un programme "maitre" principal.exe déclenchant des programmes "esclaves" autonomes: esclave1.exe, esclave2.exe, esclave3.exe.
Le but étant d'obtenir qu'un seul exe. Dans l'exemple, ci-dessus, ne resterait que principal.exe avec les 3 autres programmes "cachés".
Désolé si la question vous semble curieuse...
j'aimerai savoir si il est possible de "rassembler" plusieurs programmes *.exe interdépendants en un seul ?
Par exemple, un programme "maitre" principal.exe déclenchant des programmes "esclaves" autonomes: esclave1.exe, esclave2.exe, esclave3.exe.
Le but étant d'obtenir qu'un seul exe. Dans l'exemple, ci-dessus, ne resterait que principal.exe avec les 3 autres programmes "cachés".
Désolé si la question vous semble curieuse...
- microdevweb
- Messages : 1800
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Plusieurs *.exe dans un seul ???
Bonjour, il est possible de lancer plusieurs exécutables et qu'il peuvent même communique entre eux avec les runtime.
On peut également créer des dll qui sont compilé et un peux comme des exécutables.
La troisième solution est également de diviser certaines parties de sont programme en threads (attention qu'il est nécessaire de les synchroniser, je compte faire prochainement un tuto la dessus).
Maintenant la meilleur solution dépend de ton problème à résoudre. Mais je penses que le multi-threads serait la solution la plus adaptée.
Un thread est un processus indépendant et non bloquant, il peut accéder cependant au variables globales et on lui passe en paramètre une variable qui peut être par exemple un pointeur sur une structure.
On peut également créer des dll qui sont compilé et un peux comme des exécutables.
La troisième solution est également de diviser certaines parties de sont programme en threads (attention qu'il est nécessaire de les synchroniser, je compte faire prochainement un tuto la dessus).
Maintenant la meilleur solution dépend de ton problème à résoudre. Mais je penses que le multi-threads serait la solution la plus adaptée.
Un thread est un processus indépendant et non bloquant, il peut accéder cependant au variables globales et on lui passe en paramètre une variable qui peut être par exemple un pointeur sur une structure.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
Re: Plusieurs *.exe dans un seul ???
sinon tu peux aussi grouper tout tes programmes dans un Executable
au moment du lancement, l'executable "pond" les programmes dans son dossier
ainsi sur le disque dur on se retrouve avec le programme principale, et les executables "pondu"
il peux les lancer (Runprogram()) , et lorsqu'on quitte le programme principal
il efface les executables (et avant s'occupe de les virer de la Ram ) ... il ne reste que le programme principal !
bien sur tout ceci sera tres mal vu par la plupart des anti-virus ...
un executable qui contient une ou plusieurs executable ressemble etrangement a un virus ..
au moment du lancement, l'executable "pond" les programmes dans son dossier
ainsi sur le disque dur on se retrouve avec le programme principale, et les executables "pondu"
il peux les lancer (Runprogram()) , et lorsqu'on quitte le programme principal
il efface les executables (et avant s'occupe de les virer de la Ram ) ... il ne reste que le programme principal !
bien sur tout ceci sera tres mal vu par la plupart des anti-virus ...
un executable qui contient une ou plusieurs executable ressemble etrangement a un virus ..
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: Plusieurs *.exe dans un seul ???
tu trouvera ici un moyen d'executer un executable incorporé en datasection
https://www.purebasic.fr/french/viewtop ... =6&t=14704
https://www.purebasic.fr/french/viewtop ... =6&t=14704
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Re: Plusieurs *.exe dans un seul ???
Merci pour toutes les pistes évoquées...
Je vais explorer tout cela maintenant !
Je n'ai jamais "créer" une DLL, ce sera ,peut-être, l'occasion.
Je vais explorer tout cela maintenant !
Je n'ai jamais "créer" une DLL, ce sera ,peut-être, l'occasion.
Dernière modification par PhM le sam. 11/janv./2020 10:46, modifié 1 fois.
Re: Plusieurs *.exe dans un seul ???
sinon pour "pondre" un executable
tu peux utiliser ce vieux code de Flype :
tu peux utiliser ce vieux code de Flype :
Code : Tout sélectionner
; Façon Flype en procedure
Procedure.l BinToFile(FileName.s, *BinStart, *BinEnd)
Protected id.l = CreateFile(#PB_Any, FileName)
If id
WriteData(id, *BinStart, *BinEnd - *BinStart)
CloseFile(id)
EndIf
EndProcedure
BinToFile("c:\bin1.exe", ?BIN_START1, ?BIN_END1) ; ceci fait appel a la procedure qui va "pondre" les executables inclu
BinToFile("c:\bin2.exe", ?BIN_START2, ?BIN_END2)
DataSection
BIN_START1: IncludeBinary "TEST1.EXE" : BIN_END1: ; <<<<- ici on inclu les executables dans notre programme
BIN_START2: IncludeBinary "TEST2.EXE" : BIN_END2: ; <<<<- ici on inclu les executables dans notre programme
EndDataSection
Dernière modification par Zorro le sam. 11/janv./2020 10:49, modifié 1 fois.
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
- microdevweb
- Messages : 1800
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Plusieurs *.exe dans un seul ???
Maintenant si tu décris en gros le design de ton soft, on pourra mieu t'aider
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
Re: Plusieurs *.exe dans un seul ???
C'est OK merci, j'ai toutes les pistes à explorer que je souhaitais...
La méthode :
; Façon Flype en procédure
semble extrêmement intéressante...
La méthode :
; Façon Flype en procédure
semble extrêmement intéressante...
Re: Plusieurs *.exe dans un seul ???
Comme l'a précisé Zorro, inutile de dire que les AV vont bloquer ce genre de méthode (génération d'EXE).PhM a écrit : j'aimerai savoir si il est possible de "rassembler" plusieurs programmes *.exe interdépendants en un seul ?
Par exemple, un programme "maitre" principal.exe déclenchant des programmes "esclaves" autonomes: esclave1.exe, esclave2.exe, esclave3.exe.
Le but étant d'obtenir qu'un seul exe.
Le système le plus propre est celui qui est utilisé par les programmes commerciaux pour garder l'empreinte mémoire la plus faible:
- Un petit EXE qui sert de lanceur
- Des EXE dans le même répertoire
- Le tout packagé (par exemple avec l'excellent InnoSetup) Un seul raccourci vers l'EXE principal
- Kwai chang caine
- Messages : 6962
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: Plusieurs *.exe dans un seul ???
Et si les autres exe sont zippés ou compacté par le format PB ?Marc56 a écrit :Comme l'a précisé Zorro, inutile de dire que les AV vont bloquer ce genre de méthode
Penses tu que ce sera toujours aussi mal vu ?
- microdevweb
- Messages : 1800
- Inscription : mer. 29/juin/2011 14:11
- Localisation : Belgique
Re: Plusieurs *.exe dans un seul ???
Pour moi,
Si il s'agit de partager des ressources la librairie dynamique (dll / so) est le solution car elle peut-être utilisée par plusieurs exe et n'est chargée q'une seul fois.
Pour un soft modulaire, plusieurs exécutables installé par un installateur.
Pour du multitâche, le multi threading est la solution la plus adaptée.
Donc tout dépend de ce que l'on veux faire.
Maintenant n'oublions pas que la force de Pb est de pouvoir tout contenir dans un simple exécutable sans dépendance.
Si il s'agit de partager des ressources la librairie dynamique (dll / so) est le solution car elle peut-être utilisée par plusieurs exe et n'est chargée q'une seul fois.
Pour un soft modulaire, plusieurs exécutables installé par un installateur.
Pour du multitâche, le multi threading est la solution la plus adaptée.
Donc tout dépend de ce que l'on veux faire.
Maintenant n'oublions pas que la force de Pb est de pouvoir tout contenir dans un simple exécutable sans dépendance.
Dernière modification par microdevweb le lun. 13/janv./2020 10:14, modifié 1 fois.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Work at Centre Spatial de Liège
Re: Plusieurs *.exe dans un seul ???
Sans connaître ton projet il est difficile de te répondre de façon juste.
L'incorporation inter exe cité par Zorro est pratique à l’exécution car parait plus "propre".
Mais il est clair que les AV risquent de faire la tronche. (peut être un peu moins si archivé KCC, mais ça demande en plus de désarchiver le truc à chaque lancement.)
En revanche, cette méthode sera pénible lorsque tu devras mettre à jour un des exe. Tu seras obligé de tout recompiler.. Donc à toi de juger selon ton projet.
L'incorporation inter exe cité par Zorro est pratique à l’exécution car parait plus "propre".
Mais il est clair que les AV risquent de faire la tronche. (peut être un peu moins si archivé KCC, mais ça demande en plus de désarchiver le truc à chaque lancement.)
En revanche, cette méthode sera pénible lorsque tu devras mettre à jour un des exe. Tu seras obligé de tout recompiler.. Donc à toi de juger selon ton projet.
~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
Re: Plusieurs *.exe dans un seul ???
Bonjour,
Désolé si je me greffe.
Dans la problématique d'appeler un .exe à partir d'un autre genre un menu.exe qui appelle un clients.exe et un produits.exe par exemple, peut-on comme en quickbasic partager des variables avec l'instruction COMMON mavariablepartagee présente dans tous les exe et en appelant les programmes à partir de MENU.EXE par un CHAIN 'CLIENTS.EXE' ou CHAIN 'PRODUITS' par exemple ?
Désolé si je me greffe.
Dans la problématique d'appeler un .exe à partir d'un autre genre un menu.exe qui appelle un clients.exe et un produits.exe par exemple, peut-on comme en quickbasic partager des variables avec l'instruction COMMON mavariablepartagee présente dans tous les exe et en appelant les programmes à partir de MENU.EXE par un CHAIN 'CLIENTS.EXE' ou CHAIN 'PRODUITS' par exemple ?
Re: Plusieurs *.exe dans un seul ???
@bpapon60
Non.
Tu peux cependant passer des paramètres d'un exe à l'autre.
Voir ce topic récent : https://www.purebasic.fr/french/viewtop ... =1&t=17934
Non.
Tu peux cependant passer des paramètres d'un exe à l'autre.
Voir ce topic récent : https://www.purebasic.fr/french/viewtop ... =1&t=17934
~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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