Faire facilement un assistant d'installation automatique

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Faire facilement un assistant d'installation automatique

Message par Octavius »

Le principe est simple, il faut inclure l'ensemble des fichiers qu'on veut installer dans l'exécutable avec includebinary et ensuite l'installation se fait en créant des fichiers grâce à la lecture byte à byte de la datasection.

Code : Tout sélectionner

;Installer facilement un fichier
;Spartakus le 13/02/08

CreateFile(0,"Image2.PNG") ;Nom du fichier extrait
Bin.b=0                   ;Un octet

For i=?Debut To ?Fin     ;Lecture des datas octet par octet
  Bin=PeekB(i)
  WriteByte(0,Bin)
Next

DataSection

Debut:
  IncludeBinary "Image1.PNG"  ;Fichier inclus dans l'exécutable qu'il faut installer
Fin:

EndDataSection
Voilà, je poste ce code parce que j'ai déjà vu des sujets où les gens se prennent la tête avec ce genre chose, avec des codes monstrueux, alors qu'il existe un principe simple. Ca peut aider les débutants, en tout cas moi ça m'aurait bien aidé de tomber tout de suite sur un truc comme ça! :lol:

Fonctionne avec tout type de fichiers, exécutables compris.
ATHOW
Messages : 226
Inscription : mer. 29/déc./2004 16:54

Message par ATHOW »

Merci pour ce code (pas encore testé, je suis au boulot, mais c'est suffisament clair en tout cas).
Par contre, je tiens à formuler un bémol : ton installation revient en fait au même principe qu'une archive : après tout, entre double-cliquer sur un exe qui extrait des données, et extraire les fichiers d'une archive Zip ou autre, c'est exactement la même chose.
Une installation, c'est aussi modifier les registres, faire les associations entre type de fichiers et l'application, créer des raccourcis, ajouter l'application dans la liste des programmes de l'OS, faire le désinstalleur qui vire tout proprement y compris lui-même.... C'est souvent là-dessus que les gens (moi en tout cas) "se prennent la tête", et préférent utiliser des installeurs tout fait.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Faire facilement un assistant d'installation automatique

Message par djes »

Octavius a écrit :Le principe est simple, il faut inclure l'ensemble des fichiers qu'on veut installer dans l'exécutable avec includebinary et ensuite l'installation se fait en créant des fichiers grâce à la lecture byte à byte de la datasection.

Code : Tout sélectionner

;Installer facilement un fichier
;Spartakus le 13/02/08

CreateFile(0,"Image2.PNG") ;Nom du fichier extrait
Bin.b=0                   ;Un octet

For i=?Debut To ?Fin     ;Lecture des datas octet par octet
  Bin=PeekB(i)
  WriteByte(0,Bin)
Next

DataSection

Debut:
  IncludeBinary "Image1.PNG"  ;Fichier inclus dans l'exécutable qu'il faut installer
Fin:

EndDataSection
Voilà, je poste ce code parce que j'ai déjà vu des sujets où les gens se prennent la tête avec ce genre chose, avec des codes monstrueux, alors qu'il existe un principe simple. Ca peut aider les débutants, en tout cas moi ça m'aurait bien aidé de tomber tout de suite sur un truc comme ça! :lol:

Fonctionne avec tout type de fichiers, exécutables compris.
Pourquoi tu écris octet par octet alors que tu as Writedata()?
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Je rejoins l'avis d'ATHOW, créer un exe pour copier coller un fichier exe, c'est illogique Mr Spock, autant distribuer l'exe lui-même.

Le zip est plus intéresssant si on ne veut pas passer par un vrai installateur.
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Re: Faire facilement un assistant d'installation automatique

Message par Octavius »

djes a écrit :Pourquoi tu écris octet par octet alors que tu as Writedata()?
Ben j'y ai pas pensé! :oops:

Pour répondre à ATHOW et nico, le but de ce petit bout de code n'était pas de faire un vrai beau installeur mais pour aider les débutants à commencer à tâter le terrain. Je m'explique : si je poste sur un forum "comment on fait pour coder un installeur", t'as 9 chances sur 10 que les vétérans du forum rentrent tout de suite dans les détails, à parler registres, etc. alors que le débutant, lui, en fait il comprend même pas comment on utilise les pointeurs mémoire et WriteData().

Si je poste ce bout de code dans Trucs et astuces, c'est juste parce que moi en tant que débutant j'aurais bien aimer l'y trouver.

Je suis prenneur d'ailleurs si tu veux bien poster des trucs pour pouvoir modifier les registres! (avec l'explication de ce que c'est exactement un registre et à quoi ça sert! :oops: )
Répondre