draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 4 déc. 2007 à 17:11
Hum wai, mais ca existe deja sur le site...
Regarde dans les sources de "EB avoir le style Xp" (petit exemple tres simple pour ajouter un fichier)
Sinon dans les sources de ShareVb tu trouvera un exemple pour modifier les ressourves version, bitmap et string
Ce sont les sources qui m'ont servie d'exemple pour un generateur d'auto-extratible et pour un generateur de fix de desinfection...
(voir ici un exemple http://systemzeb.free.fr/MakeFixFr.exe)
++
mbodjsystem
Messages postés26Date d'inscriptionjeudi 17 novembre 2005StatutMembreDernière intervention 9 juillet 2008 4 déc. 2007 à 17:00
peux-tu nous donner une petite module stp DRALUORG sur l'API UpdateRessources.
je ne l'ai jamais utilisé !!! :-(
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 4 déc. 2007 à 16:05
Salut a tous,
Il y a l'api UpdateRessources qui est prevu pour ca...
Il te permet d'ajouter ou modifier des ressources de toutes sortes (texte, file, version, images etc..)
Et la relecture depuis l'exe n'en sera que simplifiée...
++
mbodjsystem
Messages postés26Date d'inscriptionjeudi 17 novembre 2005StatutMembreDernière intervention 9 juillet 2008 3 déc. 2007 à 17:27
Oui, par exemple tu peux le faire. c'est une bonne idée.
mais il faut que ce marqueur soit unique dans tout le fichier. il faudra alors trouvez une chaine de caractères spéciales qui marque la fin de la données.
voila par exemple une autre solution.
si tu as le temps, essaie de poster quelques choses sur ca.
il serait interessant de faire ici sur vbfrance un programme qui s'auto extracte les données qu'il contient.
:-)
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 3 déc. 2007 à 17:20
Ben dans ce cas tu dois écrire un marqueur dans le fichier executable pour retrouvé le texte, parce que devoir connaitre sa taille dorigine c'est vraiment pas pratique.
Par exemple en ajoutant un stamp contenant la taille des données(ou de l'executable, ce qui revient au meme) à la fin du fichier tu pourrais retrouvé la position des données sans avoir a changé la constante à chaque fois que tu veux relire un fichier
mbodjsystem
Messages postés26Date d'inscriptionjeudi 17 novembre 2005StatutMembreDernière intervention 9 juillet 2008 3 déc. 2007 à 16:51
oooh !!! là je ne suis pas d'accord.
FileLen ou LOF (Len of file) ne vont pas résoudre le problème. il faut abligatoirement connaitre dès le départ la taille réél du fichier exécutable sans aucune autre données, ensuite tu pourras utiliser ton filelen.
supposons X = taille de départ, alors la taille des données (données ajoutées) sera alors :
FileLen - X = Y octets
D'où le X est une constante qu'il faut connaitre.
je suis parfaitement d'accord sur les put et les get des fichiers binaires.
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 3 déc. 2007 à 16:35
Salut ,
Comme disait EBArtSoft, ouvrir et écrire dans un fichier executable avec Input/output/append c'est suicidaire, tu dois utiliser le mode binaire.
Et pour ce qui est de ta constante, c'est pas très pratique ,non? tu devrais récuperé la taille du fichier avec un FileLen ou simplement un LOF.
L'idée n'est pas nouvelle, mais ta source est simple.
Bonne continuation.
a+
mbodjsystem
Messages postés26Date d'inscriptionjeudi 17 novembre 2005StatutMembreDernière intervention 9 juillet 2008 2 déc. 2007 à 15:41
merci pour les suggestions EBARTSOFT !
au niveau du code source, vous remarquerez qu'on a déclaré une constante Const TailleEXE = 24576
la valeur 24576 est obtenue en faisant un clic droit puis propriété apres la compilation du projet sur le fichier exécutable généré.
cette constante marque la taille exacte du fichier exécutable (la taille des données à instruction machine), ensuite à partir de 24576+1, on peut ajouter tout ce que l'on veut :
- image, fichier son, fichier texte, etc.
donc pour extraire l'information ajouter au fichier exécutable, on va partir de 24576 jusqu'à la taille actuelle du fichier....
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 2 déc. 2007 à 13:49
Bon je me suis relu et je me suis aperçu que ma remarque n'etait pas tres constructive alors pour pas que l'on m'accuse de je ne sais quoi voila mes propositions :
- Place ton API dans la form
- Remplace "Print" par "Get #1" (mode d'ouverture binary)
Voila comme ça c'est plus clair
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 2 déc. 2007 à 13:47
Le module bas ne sert a rien de plus le "print #" ya pas mieu pour flingué un fichier binaire.
4 déc. 2007 à 17:11
Regarde dans les sources de "EB avoir le style Xp" (petit exemple tres simple pour ajouter un fichier)
Sinon dans les sources de ShareVb tu trouvera un exemple pour modifier les ressourves version, bitmap et string
Ce sont les sources qui m'ont servie d'exemple pour un generateur d'auto-extratible et pour un generateur de fix de desinfection...
(voir ici un exemple http://systemzeb.free.fr/MakeFixFr.exe)
++
4 déc. 2007 à 17:00
je ne l'ai jamais utilisé !!! :-(
4 déc. 2007 à 16:05
Il y a l'api UpdateRessources qui est prevu pour ca...
Il te permet d'ajouter ou modifier des ressources de toutes sortes (texte, file, version, images etc..)
Et la relecture depuis l'exe n'en sera que simplifiée...
++
3 déc. 2007 à 17:27
mais il faut que ce marqueur soit unique dans tout le fichier. il faudra alors trouvez une chaine de caractères spéciales qui marque la fin de la données.
voila par exemple une autre solution.
si tu as le temps, essaie de poster quelques choses sur ca.
il serait interessant de faire ici sur vbfrance un programme qui s'auto extracte les données qu'il contient.
:-)
3 déc. 2007 à 17:20
Par exemple en ajoutant un stamp contenant la taille des données(ou de l'executable, ce qui revient au meme) à la fin du fichier tu pourrais retrouvé la position des données sans avoir a changé la constante à chaque fois que tu veux relire un fichier
3 déc. 2007 à 16:51
FileLen ou LOF (Len of file) ne vont pas résoudre le problème. il faut abligatoirement connaitre dès le départ la taille réél du fichier exécutable sans aucune autre données, ensuite tu pourras utiliser ton filelen.
supposons X = taille de départ, alors la taille des données (données ajoutées) sera alors :
FileLen - X = Y octets
D'où le X est une constante qu'il faut connaitre.
je suis parfaitement d'accord sur les put et les get des fichiers binaires.
3 déc. 2007 à 16:35
Comme disait EBArtSoft, ouvrir et écrire dans un fichier executable avec Input/output/append c'est suicidaire, tu dois utiliser le mode binaire.
Et pour ce qui est de ta constante, c'est pas très pratique ,non? tu devrais récuperé la taille du fichier avec un FileLen ou simplement un LOF.
L'idée n'est pas nouvelle, mais ta source est simple.
Bonne continuation.
a+
2 déc. 2007 à 15:41
au niveau du code source, vous remarquerez qu'on a déclaré une constante Const TailleEXE = 24576
la valeur 24576 est obtenue en faisant un clic droit puis propriété apres la compilation du projet sur le fichier exécutable généré.
cette constante marque la taille exacte du fichier exécutable (la taille des données à instruction machine), ensuite à partir de 24576+1, on peut ajouter tout ce que l'on veut :
- image, fichier son, fichier texte, etc.
donc pour extraire l'information ajouter au fichier exécutable, on va partir de 24576 jusqu'à la taille actuelle du fichier....
2 déc. 2007 à 13:49
- Place ton API dans la form
- Remplace "Print" par "Get #1" (mode d'ouverture binary)
Voila comme ça c'est plus clair
2 déc. 2007 à 13:47
@+