RENDRE LES EXE VB AUTONOME (SANS RUNTIME - MSVBVM60.DLL, VB6FR.DLL)

cs_khalilo Messages postés 71 Date d'inscription jeudi 17 janvier 2002 Statut Membre Dernière intervention 12 mai 2004 - 3 juin 2002 à 21:38
veloce35 Messages postés 27 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 18 avril 2010 - 18 avril 2010 à 09:40
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/1502-rendre-les-exe-vb-autonome-sans-runtime-msvbvm60-dll-vb6fr-dll

veloce35 Messages postés 27 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 18 avril 2010
18 avril 2010 à 09:40
Super le programme, Damien1 j'ai juste changer le chemin C:\Windows\Bureau\C_Runner_VB.exe en
C:\moi\C_Runner_VB.exe pour que cela fonctionne sinon Erreur chemin d'accés introuvable.
10/10

veloce35
Sinsitrus Messages postés 849 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 21 août 2015
16 févr. 2007 à 10:14
Je monte vérifier je re xd
cs_ABF Messages postés 227 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 26 avril 2012
24 janv. 2007 à 20:19
> Code et indentation à revoir
> Chemin relatif
> ...
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
12 juil. 2006 à 02:02
J'ai oublié l'adresse 'ou ai-je la tête :s)

http://www.codyx.org/snippet_variables-environnement_161.aspx
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
12 juil. 2006 à 01:59
RPG3000 > La commande Environ("TEMP") ou Environ("TMP") renverra ton dossier temporaire quelque soit la lettre du disque dur et son emplacement.

Pour avoir la lettre du disque sur lequel est installé le systeme, tu peux faire Environ("HOMEDRIVE")

Les variables d'environnement c'est bien pratique quand on veut faire rapide.

Je te renvois à un code qui permet de lister ces variables, ca peut toujours servir :)
RPG3000 Messages postés 56 Date d'inscription jeudi 22 juillet 2004 Statut Membre Dernière intervention 4 janvier 2008
11 juil. 2006 à 18:49
ah wai et supposons que mon disk systeme soit pas c: et que le dossier temp ne se trouve pas dans windows mais dans system32 ?
cortex01 Messages postés 1 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 8 janvier 2006
8 janv. 2006 à 07:15
cortex01:j ai bien installe ton programme ainsi que les 2 dll(msvbvm60.dll et vb6fr.dll)mais lorsque j execute makevbexe il m annonce que je ne puis continuer l installation car mon chemin'76' est toujours invalide la je ne comprend plus, etant novice toute aide me serait utile merci d avance
cs_toniou Messages postés 17 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 24 janvier 2005
7 nov. 2005 à 18:28
houlala!!!
C loin tt ça!
merci kan meme pour la solution.
bonne continuation.

++
cs_mti Messages postés 51 Date d'inscription mardi 28 juin 2005 Statut Membre Dernière intervention 29 mars 2008
6 nov. 2005 à 21:25
toniou:
Moi aussi j'ai le même problème j'ai regardé le code source l'érreur vient de là:

newfich = "C:\Windows\Bureau\C_Runner_VB.exe" 'ON EST OBLIGE DE METTRE TON PROG DANS C:\WINDOWS\BUREAU POUR QUE CA MARCHE SINON
nom_Cprog = "C_Runner_VB.exe"
nom_dll1 = "Msvbvm60.dll"
nom_dll2 = "Vb6fr.dll"
nom_exe = Dir.Path & "" & File.FileName
'nom = File.FileName

Open newfich For Binary As #1'CA PLANTE ICI CAR VB NE TROUVE PAS TON PROG là où IL LE CHERCHE.
Open nom_Cprog For Binary As #2
Open nom_dll1 For Binary As #3
Open nom_dll2 For Binary As #4
Open nom_exe For Binary As #5


Voilà pour l'explication donc soit vous mettez son prog dans c:\windows\bureau même si vous avez xp ;-) soit vous modifiez le chemin d'accès dans le code source.
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
14 sept. 2004 à 18:05
J'ai pas tout suivi la lol !
aathiaw Messages postés 7 Date d'inscription jeudi 5 février 2004 Statut Membre Dernière intervention 14 septembre 2004
14 sept. 2004 à 17:41
tu es superb je ne peux rien te dire de plus
cs_PaTaTe Messages postés 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
23 juil. 2004 à 19:35
g sur veoler les posts et voila :

DamienI > pour recuperer le chemin du rep temporaire on peux faire ca en une ligne sans declarer d'API et compatible Win9x & 2000/XP :

RepertoireTemporaire=Environ$("TEMP")


Pour ce qui est du titre il TOTALEMENT FAUX !

UN PROG QUI REND VOS EXE VB AUTONOME ( SANS RUNTIME CAD NI MSVBVM60.DLL, NI VB6FR.DLL)

hmmm, il dépend TOUJOURS des runtimes puiske tu passe par un prog en C pour les mettre non ?

Donc Il dépends toujours des runtimes et en plus tu le fait dependre d'un autre programme qui sans lui il faudrais kan meme installer les runtimes VB

CQFD

Si tu veux faire un programme vraiement autonome n'utilise pas VB car c'est impossible sans accrochage. Ya bien des solution ki existent mais y a toujours dependance meme si c un joiner d'EXE ...

Une vrai solution SANS runtime n'est donc pas possible !

@++
LeFoUvErT Messages postés 4 Date d'inscription samedi 17 juillet 2004 Statut Membre Dernière intervention 28 janvier 2005
17 juil. 2004 à 23:30
nehoss a raison, dans le code VB il faut modifier une adresse (qui doit sans doute dater de l epoque win98) au lieu de laisser newfich= "c:windows\bureau\machinchose"
tu doit mettre
newfich="c:\windows\documents and settings\nom_de_ton_compte_XP\bureau\machinchose"
toujours est il que l idée est bonne mais moi aussi j ai un pb :
ca me créé bien le exe modifier sur le bureau mais oh surprise
qd je lance cet exe... il y a juste lancement du prog en cours
suivi d une fenetre dos (qui disparait aussi sec mais ca c est normal si je ne me trompe pas)
et puis.........plus rien
qd je vais voir dans le fichier temp j ai bien mes DLL qui ont ete decompresser
et aussi ce que je suppose etre sa copie de lui meme
par contre pour la copie de mon exe a moi je peut me brosser je ne l ai pas trouver.... :'( :'(

j ai aussi une deuxieme question a poser:
est ce que ce programme traque les *.OCX qui sont necessaire au bon fonctionnement de certain programme?
si ce n est pas le cas et que Damien I veut bien revenir sur sa programmation, alors il me semble que cela pourrait etre fort pratique/utile
quitte a ce que l utilisateur place lui meme les OCX dans un repertoire specifique pour qu il soit traiter par le programme..
enfin voila... sinon l idee est bonne a mon sens.. mais je n ai pu juger de la qualiter effective car je n ai pas reussi a faire fonctionner les appli transformer..

et... ayer pitier de moi: pardonner mes faute de francais... :') AdRieN
NEHOSS Messages postés 9 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 10 décembre 2005
9 mai 2004 à 22:47
regarde si tu n a pas modifie le chemin d [instal] de windows.
ou ton repertoire temp
moi ca marche j ai xp pro sp1
Le_Tolier Messages postés 1 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 7 avril 2004
7 avril 2004 à 00:08
salut
tres bon prog sauf que chez moi il ne fonctionne pas ! :(
au moment de l assemblage du nouvel exe j ai une erreur d'execution 76 : chemin d acces introuvable .
si quelqu un a un soluce ou si il a le mm prob qu il laisse un mess qu on en parle @+
c3rb3r3 Messages postés 38 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 25 janvier 2006
20 janv. 2004 à 19:25
Effectivement, c'est une très bonne idée.
Pour ma part, j'utilisais un petit soft russe d'empaquetage, il code un exécutable indépendant qui décompresse tous les fichiers sélectionnés auparavant, *.ocx, *.dll, *.*.
Merci beaucoup d'avoir fait ce code, ça permet d'analyser un peu plus en profondeur le fonctionnement.
guth42 Messages postés 27 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 4 juillet 2005
25 août 2003 à 16:43
je n'ai pas la bonne taille pour les DLL (une nouvelle version surement), c'est peut etre aussi ton probleme princegent
il faut ouvrir le fichier Mainrun.cpp et modifier les lignes ou il y a la taille des DLL :
for (i=0; i<1384448; i++)
et
for (ii=0; ii<119568; ii++)
l'idéal serait que DamienI ou un autre bon en VC++ patch son C_Runner_VB.exe pour qu'il lise automatiquement la taille des 2 DLL, ou qu'il la demande à l'utilisateur...
(j'ai essayé mais y a une redefinition de ShellExecuteA et CopyFileA qui me bloque)
princegent Messages postés 3 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 10 juin 2003
23 août 2003 à 20:35
salut DamienI
j suis tres intersser a votre programme mais jarrivais jamais a voir un exe avec des dll inclus veuillez m 'eclairsir le chemain et essaye bien d me xpliquer comment ca marche ton program..je te remercier
salut..
maitrecesar Messages postés 11 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 3 août 2005
5 mai 2003 à 15:36
Salut

je suis debutant en VB et j'aimerai savoir comment executer (la commande et les sources a telecharger pour l'execution) des sources VB sans que j'ai le KIT de VB.

merci d'avance pour votre aide
cs_taz1 Messages postés 1 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 17 avril 2003
17 avril 2003 à 10:29
jtrouve ca génial !!!!

ptdr ;-)
cs_Lapita Messages postés 6 Date d'inscription mercredi 15 janvier 2003 Statut Membre Dernière intervention 18 juillet 2003
31 janv. 2003 à 11:40
Toniou : il y a plusieurs endroits dans les sources ou est indiqué des chemins (pour l'icone, pour les exe, etc.) Tu dois donc modifier tout ca avant de lancer le prog. Lis les messages du dessus, il y en a déjà bcp qui en parle !!
cs_toniou Messages postés 17 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 24 janvier 2005
19 janv. 2003 à 16:32
je comprend pas, le prog ne march po chez moa :( je suis tro nul!!! kan je click sur "assembler mon nouvelle exe" j ai un message d erreur "erreur d'execution '76' chemin d acces introuvable." qq1 peu m aider????
Nektanebos Messages postés 62 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 27 avril 2003
1 janv. 2003 à 10:22
Franchement je comprends pas du tout tu copie le code binaires des dll et du prog à la suite d'un exe en c ?
cs_Delirium Messages postés 30 Date d'inscription vendredi 11 octobre 2002 Statut Membre Dernière intervention 3 mai 2004
21 déc. 2002 à 23:15
mouai sa c bien !! pour le lamers ki von redoubler a faire des virus pourri et troyen !
cs_DamienI Messages postés 17 Date d'inscription vendredi 1 mars 2002 Statut Membre Dernière intervention 10 janvier 2003
6 déc. 2002 à 23:50
'voila le code pour récupérer le chemin de windows
'pour toi moustachu et tt ceux qui veulent porter ma source ss XP,etc...
'pour le reste : le principe n'a pas changé et reste valable ss d'autres OS.
'++ et bonne prog à tous !!!

'API de Windows repertoire finder
Private Declare Function GetWindowsDirectory Lib "Kernel32" Alias "GetWindowsDirectoryA" (ByVal lpbuffer As String, ByVal nSize As Long) As Long

Public Function WinDir() As String
Temp$ = Space$(255)
X% = GetWindowsDirectory(Temp$, Len(Temp$))
WinDir = Left$(Temp$, X%)
cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
5 déc. 2002 à 10:16
Sympa ton code mais le problème est qu'il installe les dll dans un chemin par défaut c:windowssystem et lorsqu'il y a plusieurs OS (le mien est sur d: et sous xp les dll sont dans system32, si le type est sous NT ou 2000 -> c:winnt, etc..)

En tout cas l'idée est très bonne donc bonne note mais je ne sais pas si on peut récupérer le chemin système de windows
Psykroro Messages postés 3 Date d'inscription lundi 22 juillet 2002 Statut Membre Dernière intervention 19 août 2002
25 juil. 2002 à 13:49
Moi jdi ke le C ya rien de plus puissant!
Mais au niveau interface....Pas cool!
La fusion Vb/C est ce qui reste de plus performant mais le seul probleme etait les dll VB...
Résolu par ton Prog!
J'met dix pour l'utilisation de deux language totalement différent et pour l'innovation
lol
cs_Nil Messages postés 85 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 31 décembre 2002
21 juin 2002 à 15:30
Lors d'une installation il faut installer les DLL et pas lors du lancement du programme car tu crée à chaque fois des fichiers, si le gars a 15 progs VB avec ton system, il doit souvent faire des défrag et pas courte !!!

Sinon l'idée est très bonne mais t'aurais du faire ca pour un programme d'installation. On exécute pas des installations tout les jours (la plus-part des gens du moin lol)
cs_DamienI Messages postés 17 Date d'inscription vendredi 1 mars 2002 Statut Membre Dernière intervention 10 janvier 2003
8 juin 2002 à 17:01
Oui, fusion tt le monde en dit du bien, mais je voulais un truc ou j'avais le code. Mais faut savoir que pour les ocx, on peut toujous reprendre la logique du prog en c dans un prog vb. cad que l'on peut faire un prog vb qui fait la même chose pour un prog vb que le prog en C, donc une fois exécuter : un premier prog vb qui désassemble le prog vb final et ses ocx et dll et les enregistre via une commande shell regsvr32 ("nom-du_prog")
J'espère avoir été clair : c'est pas facile en qq lignes...alors je résume :
Bref, autrement dit : on peut faire un prog qui contient:
1 - le prog C ( installe les 2 dll vb et le prog1 VB ) qui lance prog1 VB.
2 - un premier prog VB ( cad prog1 VB ) qui a pour objet d'installer les autres fichiers de dépendances ( ocx et dll ) et de les enregsitrer, mais qui installe aussi LE prog2 VB (qui a besoin des dites dépendances ) et le lance.

Encore autrement dit :
Le prog C : contient lui même et les deux dll et prog1 VB
Le prog1 VB : contient lui même, et contient le prog2 VB et les dll et ocx dont ce dernier a besoin.

On pourrait dire : une sorte de récursion, tt en répétant que seul le premier prog vb nécessite les deux dll vb fondamentales, c'est ça l'intérêt du prog C, de rendre le programmeur vb LIBRE de tout faire avec un seul fichier, car ça : VB NE LE PERMET MALHEUREUSEMENT PAS et c'est ça qui m'énervait ...
A++

DamienI

Bonne prog.....
kllmm Messages postés 35 Date d'inscription jeudi 7 février 2002 Statut Membre Dernière intervention 5 octobre 2003
5 juin 2002 à 10:35
a moi , apparemment ca compile les dll mais pas l'executable VB ... si je passe l'Exe fais avec ton module sur un editeur exadecimal , je vois les DLL mais pas l'executable qui est en VB ... je cherche ou ca fonctionne pas ,mais je trouve pas :-( ........ par contre pour le FUSION , il est pas mal mais faut le crack ... (Si qq l'a suis interress :-)
Bref je cherche encore ou ca marche pas chez moi pour le "Assemblage auto des Runtimes dans un EXE VB" parsque ca m'interresse ce truc .. mais dommage qu'on ne puisse pas inclure les OCX a la difference de Fusion ...Mais DamienI , c'est quant meme pas mal , (l'ide surtout) moi j'aurais pas pu faire cette source :-(
neojoce Messages postés 134 Date d'inscription jeudi 7 février 2002 Statut Membre Dernière intervention 16 juin 2002
5 juin 2002 à 02:12
WWWWWWWWWWWWOOOOOOOOOOOOOOOOOAAAAAAAAAAAAAAAAWWWWWWWWWWWWWWWWWWWWW !!!!!!!!!!!!!1

10/10
CtHuLhU50 Messages postés 10 Date d'inscription vendredi 22 juin 2001 Statut Membre Dernière intervention 16 septembre 2003
4 juin 2002 à 15:07
VB-PowerWrap c pareil ke FUSION ca marche bien mé limité dans le temps é pour trouvé le crack ben c chocho :( !
Neo.balastik Messages postés 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
4 juin 2002 à 13:55
Un des rares softs qui fait ca sans passer par de tels subterfuges, c'est FUSION de Bit-Arts. Allez jeter un oeil ici: http://www.bit-arts.com/

Il n'est pas gratuit mais costaud (y a moyen de le trouver ailleurs...)!

Bonne programmation tout de même et l'idée est sympa.
skrol29 Messages postés 114 Date d'inscription vendredi 3 mai 2002 Statut Membre Dernière intervention 17 novembre 2014
4 juin 2002 à 13:54
L'idée est vraiment bonne mais je te suggère 3 choses :

1 - La possibilité de choisir une extraction dans le répertoire TMP (système) ou dans le rép de l'EXE. Et oui, certaines appli utilisent le App.Path qui est très utile.

2 - Idem pour le déchargement des DLL VB.

3 - Ben faut quand même supprimer les fichiers au déchargement de l'appli, sinon c'est caca. En tout cas si c'est dans le répertoire TMP c'est important.

Skrol29
cs_DamienI Messages postés 17 Date d'inscription vendredi 1 mars 2002 Statut Membre Dernière intervention 10 janvier 2003
4 juin 2002 à 13:25
La différence avec un installeur classique est que là on est le code source. Surtout, les seuls fichiers de bases nécessaires à tout exe compilé en VB sont les deux dll : MSVBVM60.dll et VB6FR.dll, et aucun autre, car les autres votre exe VB pourra les installé lui même ( pareil que mon prog en C par un accès bianire ). encore faut il que vous les ajoutiez à la fin de votre exe VB. Bref, ce lanceur permet de lancer tout vos prog VB. Car aucun prog vb ne peut être autoexec ( sans ces dll installés ). Donc, ce prog contourne cette limite. Ais-je été plus clair ? J'en doute ?
Voyez le code et la lumière sera ! Bonne prog à tous : A++
PS : il est bien sur possible d'enlever la fenêtre C au démarrage, pour cela faut mofifier les paramètres dela wndclass et la rendre invisible, aibsi l'utilisateur ne vera pas le lanceur.
A++ DamienI
apxa Messages postés 188 Date d'inscription mercredi 15 mai 2002 Statut Membre Dernière intervention 25 avril 2009
4 juin 2002 à 12:30
kel difference y a t il entre ton prog et un self extractor ou un installeur classic ?
cs_Jackboy Messages postés 757 Date d'inscription vendredi 7 septembre 2001 Statut Membre Dernière intervention 19 juin 2008
4 juin 2002 à 04:21
Ya pas une source sur ce site qui fait la même chose en tk une bonne idée
cs_SysteM Messages postés 73 Date d'inscription samedi 27 avril 2002 Statut Membre Dernière intervention 14 juillet 2005
4 juin 2002 à 03:15
est que la taille du exe augmente beaucoup ?
Almandric Messages postés 31 Date d'inscription vendredi 21 décembre 2001 Statut Membre Dernière intervention 12 août 2003
3 juin 2002 à 23:10
J'ai pas encore regarder les sources mais je suis sur que c'est bon boulot. Mais dis-moi quel est l'interêt si ce n'est d'éviter d'avoir à donner 2 dll quand on veut donner notre prog? Sachant que bien souvent il y a un ou plusieurs OCX utilisés qui demande un setup ou au moins l'enregistrement dans la base de registre. A moins que tu ne puisses fusionner aussi les OCX dans ton lanceur?
Stebo Messages postés 10 Date d'inscription vendredi 6 octobre 2000 Statut Membre Dernière intervention 5 avril 2005
3 juin 2002 à 22:40
cest bien tu as eu un super concept de melanger le C et VB mais imagine toi ke le prog vb doit automatiquement avoir les vb6fr.dll(ca depende de la version de vb) sinon le prog se lance pas. Donc tu dois inclure dans le prog C les dll de VB. et dans ce cas la autant apprendre a programmer en C.
Est ce ke les progs en C sont automone?
cs_khalilo Messages postés 71 Date d'inscription jeudi 17 janvier 2002 Statut Membre Dernière intervention 12 mai 2004
3 juin 2002 à 21:38
Terrible rien a dire ça merrite bien un ptit 10 meme si j'ai pas encore vu le code!!!!!

@+
Rejoignez-nous