Précédent   Forum des professionnels en informatique > Environnements de développement > Delphi > Outils
Outils Tout ce qui concerne les outils tiers utilisés avec Delphi (Inno Setup, GExperts, CVS...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2012, 17h21   #1
Invité de passage
 
Inscription : septembre 2009
Messages : 30
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 30
Points : 0
Points : 0
Par défaut Inno setup, un peu plus loins que la faq

Bonjour,

Je suis débutant en ce qui concerne delphi et inno setup.

Je suis nouveau dans mon entreprise, et mon travail est de faciliter le déploiement des logiciels
et de remplacer le logiciel utilisé actuellement pour compiler nos logiciel sous forme d'installer.

La personne que je remplace (départ à la retraite) aurait voulu que l'entreprise investisse,
si possible dans une solution plus récente avec support,
car plus envie de s'emmerder à comprendre quelque chose.

Du fait, mon entreprise à laisser trainer jusqu'au départ à la retraite le changement,
voila pourquoi je viens à vous concernant InnoSetup.

Aujourd'hui bien que programmeur VC++ / VB,
on me confie cette tâche sans outils avec l'obligation de faire du gratuit.

Bien que j'ai déjà utiliser à titre personnel inno setup, j'ai regarder ce qui existait d'autre,
et j'ai regarder quelle solution serait la mieux placée.

Mon choix c'est porté sur innosetup car l'assistant permet de faire les bases,
pour le reste je viens m'informer ici.

Actuellement il y à des choses que je n'ai pas réussis à faire :

- utilisation de la section [code] pour définir le fichier à lancer dans la section [run],
le tout en fonction du type d'os, 32bits / 64bits.
- enregistrement de fichiers dans le registre
(j'ai des configuration de logiciel sous forme de .reg faisant plus de 50 lignes).
- récupération du répertoire d'installation saisie et copie
et/ou remplacement de fichier dans le répertoire d'installation du logiciel
(remplacement de fichier ini de configuration / ajout de module / etc ...)
- utilisation de sérial, avec possibilité de passer le serial en paramètre.

Pour certain quelques unes de ces questions vont sembler simple,
je n'ai jamais utiliser autre chose que l'assistant ni coder quoi que se soit en delphi,
c'est pourquoi je vous pose mes problème aujourd'hui.

Merci à tout ceux qui prendrons le temps de donné une réponse, cordialement.
enzo68290 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 18h23   #2
Membre émérite
 
Avatar de ouiouioui
 
Homme Alexandre
Administrateur systèmes et réseaux
Inscription : août 2006
Messages : 831
Détails du profil
Informations personnelles :
Nom : Homme Alexandre
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2006
Messages : 831
Points : 987
Points : 987
Envoyer un message via MSN à ouiouioui
Salut, déjà tout ce que tu énumère est faisable.
section run pourquoi savoir si 32 ou 64, section files plutôt tu installe la version 32 ou 64
Code :
1
2
3
4
 
[Files]
Source: "MyProg32.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Flags: ignoreversion; Check: not iswin64;
Source: "MyProg64.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Flags: ignoreversion; Check: iswin64;
pour les reg si tu ne veux/peux pas utiliser la section registry, section run tu peux faire un reg import mais du coup à la désinstallation faudra spécifier quelle clefs effacer.
Code :
Filename: "reg"; Parameters: "import {app}\test.reg"; Description: "import .reg"; Flags: shellexec
pour les 2 autres questions c'est vague, section code pour avoir le dossier d'installation c'est
Code :
ExpandConstant('{app}');
pour le serial il existe une option [Setup]: UserInfoPage à adapter selon le besoin.
__________________
Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.
ouiouioui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 19h09   #3
Invité de passage
 
Inscription : septembre 2009
Messages : 30
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 30
Points : 0
Points : 0
Par défaut Suite

Merci pour tes réponses précédente, voici les précisions demandées :

- concernant le sérial, je voudrais que lors de l'installation le client puisse saisir la clef de son logiciel qu'il aurait acheté, clef qui serait différente par client.

Je pense que ceci s'applique à la section [code] ?

- concernant la question suivante, je souhaiterais rajouter / remplacer des fichier la ou l'utilisateur à installer son application, à la fin.

par exemple, remplacer un fichier ini dans le répertoire ou l'utilisateur à installer son logiciel

ou copier un fichier plugin etc ...
enzo68290 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2012, 20h03   #4
Membre émérite
 
Avatar de ouiouioui
 
Homme Alexandre
Administrateur systèmes et réseaux
Inscription : août 2006
Messages : 831
Détails du profil
Informations personnelles :
Nom : Homme Alexandre
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2006
Messages : 831
Points : 987
Points : 987
Envoyer un message via MSN à ouiouioui
pour le serial utilise [Setup]: UserInfoPage et sa par exemple
Code :
1
2
3
4
5
6
7
8
[Run]
Filename: "{app}\{#MyAppExeName}"; Parameters: "{code:GetSerial}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent
 
[Code]              
function GetSerial(Param: String): String;
begin
  Result := WizardForm.UserInfoSerialEdit.Text;
end;
pour la copie etc, à la fin de l'install faut faire sa la :
Code :
1
2
3
4
5
6
7
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall then
  begin
  //ici
  end;
end;
__________________
Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.
ouiouioui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 12h47   #5
Invité de passage
 
Inscription : septembre 2009
Messages : 30
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 30
Points : 0
Points : 0
Par défaut Merci

Merci pour toutes tes réponses très constructive, je vais devoir m'y mettre pour essayé, pas tout de suite malheureusement mais jte ferais un retour dès que possible.

Merci encore pour toutes les réponses.
enzo68290 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 14h47   #6
Invité de passage
 
Inscription : septembre 2009
Messages : 30
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 30
Points : 0
Points : 0
Par défaut Début

Voila, je me suis lancer dans la création de mes premiers setup évolutif.

En fait, j'utilise la section run pour installer ces logiciels, des setup existent déjà, je les inclus dans les miens de façon silencieuse pour gagner du temps et ne pas refaire ce qui existe déjà et fonctionne.

Autour de ça mon script inno setup dois installer un theme, ce theme se trouvent dans :

%appdata%\roaming\motogest\themes

(chaque nouvelle version utilise un theme, pour 2012 je dois ajouter le theme en cours).

J'aurais à faire aussi des plugins, cela se basera sur le même modèle.

En suite, dans le dossier de l'application je copie le fichier.ini qui charge le theme.


J'ai donc élaboré du code en ne connaissant pas trop delphi au départ, ce code plante.

voici le bout de code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
procedure CurStepChanged(CurStep: TSetupStep);
var 
  foldertest: String;
begin
 
 
  if CurStep = ssPostInstall then
  begin
  foldertest:= {userappdataappdata} + '\Roaming\mogogest\Themes';
  if not DirectoryExists(foldertest) then
    CreateDir(foldertest);
 
 
  if not iswin64 then
    foldertest = {pf} + '\motogest\themes';
    if not DirectoryExists(foldertest) then
      CreateDir(foldertest);
 
 
  else
    foldertest = {pf64} + '\mogogest\themes';
    if not DirectoryExists(foldertest) then
      CreateDir(foldertest);
  end;
end;  
 
function CopyFile(Source, Destination: String ) : boolean;
var
  fos : TSHFileOpStruct;
begin
  FillChar(fos, SizeOf(fos),0);
  with fos do
  begin
    wFunc := FO_COPY;
    pFrom := PChar(Source+#0); 
    pTo   := PChar(Destination+#0); 
    fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT;
  end;
  result := (0 = ShFileOperation(fos));
end;
 
end;
J'ai déjà inclu la fonction qui me permettra de copier le fichier ini et les themes dans leurs dossier respectif.

A savoir qu'un thème va retrouver une partie dans roaming\motogest (la partie personnalisable par l'utilisateur), l'autre partie va se trouver dans program files x86\motogest\themes.

Pour le moment je n'essaye que de créer les dossiers s'ils n'existent pas, ça ne fonctionne pas, si quelqu'un peut me donner des tuyo pour la suite c'est bienvenue.
enzo68290 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 15h37   #7
Membre émérite
 
Avatar de ouiouioui
 
Homme Alexandre
Administrateur systèmes et réseaux
Inscription : août 2006
Messages : 831
Détails du profil
Informations personnelles :
Nom : Homme Alexandre
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2006
Messages : 831
Points : 987
Points : 987
Envoyer un message via MSN à ouiouioui
Pourquoi faire sa dans la section code, utilise la section files sa devrai suffire à te lire.
__________________
Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.
ouiouioui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 16h21   #8
Invité de passage
 
Inscription : septembre 2009
Messages : 30
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 30
Points : 0
Points : 0
C'est pas bête, je n'y avais pas pensé.

Si le répertoire existe pas, inno setup fonctionne comment ?
enzo68290 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 17h47   #9
Membre émérite
 
Avatar de ouiouioui
 
Homme Alexandre
Administrateur systèmes et réseaux
Inscription : août 2006
Messages : 831
Détails du profil
Informations personnelles :
Nom : Homme Alexandre
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Administrateur systèmes et réseaux
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2006
Messages : 831
Points : 987
Points : 987
Envoyer un message via MSN à ouiouioui
la section files crée les dossiers bien sûr avant de mettre les fichiers dedans.
pour des dossiers vide regarde la section dirs
__________________
Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.
ouiouioui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h40.


 
 
 
 
Partenaires

Hébergement Web