IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Delphi Discussion :

inno setup : 3 questions (icone de raccourci + 2 pour désinstallation)


Sujet :

Outils Delphi

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut inno setup : 3 questions (icone de raccourci + 2 pour désinstallation)
    salut, j'ai 3 questions de type "comment faire" pour inno setup.
    première question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [icons]
    Name: {commondesktop}\Nom-de-mon-raccourci-sur-le-bureau; Filename: Chemin-d'accès-de-ou-le-raccourci-doit-pointer.exe; WorkingDir: {app}
    Dans l'exemple que je viens de donner, je peux créer un raccourci sur mon bureau vers mon logiciel.exe
    Mais j'aimerais savoir comment faire pour que mon icône de bureau pointe toujours vers mon.exe tout en lui attribuant une icône différente .ico

    En effet, l'exécutable .exe de mon logiciel ne contient pas l'icône que j'aimerais donner à mon raccourci bureau.
    Toutefois, je possède l'icône en .ico
    Mais je ne sais pas quoi ajouter afin de pouvoir faire ca.

    Note: Dans la commande que j'ai donné, je n'ai jamais compris à quoi exactement à quoi sert la commande WorkingDir: {app}
    Si vous pouviez me l'expliquer ce serait génial, parce que j'ajoute ca sans savoir exactement son utilité...



    ======================


    J'ai 2 logiciels. Les 2 logiciels utilises des clés registre. Voici les clés de registre qu'utilise le premier logiciel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\VD022025; ValueType: string; ValueName: InstallDirectory; ValueData: {app}
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\VD022025; ValueType: string; ValueName: ExeName; ValueData: Launch.exe
    et voici les clés du deuxième logiciel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\VD033935; ValueType: string; ValueName: InstallDirectory; ValueData: {app}
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\VD033935; ValueType: string; ValueName: ExeName; ValueData: Launch.exe
    J'ai ajouté à mon fichier .iss du premier logiciel la ligne de commande suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\VD022025; Flags: uninsdeletekey
    et pour le second logiciel, la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\VD033935; Flags: uninsdeletekey
    Ce que je cherche à savoir faire, c'est que, j'indiquerais bien la clé suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Root: HKLM; SubKey: SOFTWARE\MonNom; Flags: uninsdeletekey
    Afin de ne laisser aucune trace de mes logiciels lors de la désinstallation. Le problème est qu'avec la commande cité précédemment, les clés du registre DES DEUX logiciels serait effacé au moment de supprimer un seul logiciel.

    Exemple que je veux désinstaller mon premier logiciel, comment faire pour qu'il analyse la clé suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\;
    et que si, seule la clé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\VD022025;
    est présente,, qu'il supprime alors la clé suivante directement afin de ne laisser aucune trace:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Root: HKLM; SubKey: SOFTWARE\MonNom;
    Mais que s'il détecte une clé autre que \VD022025 quoi qu'elle soit, que le logiciel se contente de supprimer seulement la clé suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\VD022025;
    Afin de laisser intacts les clés registre de mes autres logiciels.


    ======================

    Question dans le même genre que la précédente, mais cette fois avec des dossiers et fichier:

    J'ai 2 logiciels, les deux, lors de leurs utilisation, crée des fichiers/dossiers dans le répertoire suivant:
    C:\Documents and Settings\All Users\Application Data\MonNom\

    Par exemple, mon premier logiciel crée le dossier suivant:
    C:\Documents and Settings\All Users\Application Data\MonNom\LOGICIELn111

    Et mon deuxième logiciel crée le dossier suivant:
    C:\Documents and Settings\All Users\Application Data\MonNom\LOGICIELn222

    J'ai ajouté la clé suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [UninstallDelete]
    Type: filesandordirs; Name: "C:\Documents and Settings\All Users\Application Data\MonNom\LOGICIELn111"
    Afin de ne pas affecter le deuxième logiciel s'il est installé.

    Mais j'aimerais que mon logiciel de désinstallation détecte s'il y a la présence d'un autre logiciel.

    De cette manière, je pourrais faire que la désinstallation supprime le dossier suivant:
    C:\Documents and Settings\All Users\Application Data\MonNom

    Afin de ne laisse aucune trace, tout en laissant se même dossier s'il détecte la présence d'un autre logiciel. Comme par exemple, celui-ci:
    C:\Documents and Settings\All Users\Application Data\MonNom\LOGICIELn222

  2. #2
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    bonjour, tu as lu l'aide de inno setup?

    Pour l'icône regarde
    Setup Script Sections - Icons - IconFilename

    pour les clefs:
    Setup Script Sections - Registry - uninsdeletekeyifempty
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Root: HKLM; SubKey: SOFTWARE\MonNom; Flags: uninsdeletekeyifempty
    pour les dossiers:
    Setup Script Sections - UninstallDelete - dirifempty

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [UninstallDelete]
    Type: filesandordirs; Name: "C:\Documents and Settings\All Users\Application Data\MonNom\LOGICIELn111"
    Type: dirifempty; Name: "C:\Documents and Settings\All Users\Application Data\MonNom"
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    merci, pour les fichiers et dossiers ca fonctionne bien. par contre, pour les clés de registre, ca ne fonctionne pas.

    j'ai essayé ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\VD022025; Flags: uninsdeletekey
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs; Flags: uninsdeletekeyifempty
    Root: HKLM; SubKey: SOFTWARE\MonNom; Flags: uninsdeletekeyifempty
    et j'ai aussi essayé ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\VD022025; Flags: uninsdeletekey
    Root: HKLM; SubKey: SOFTWARE\MonNom; Flags: uninsdeletekeyifempty
    alors que la seule clé sous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\
    était la clé:
    mais les 2 clés suivante reste et ne se supprime pas de la base de registre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Root: HKLM; SubKey: SOFTWARE\MonNom
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs
    seul la clé
    se supprime.

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 691
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 691
    Points : 13 121
    Points
    13 121
    Par défaut
    Inverse l'ordre de tes clés .

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Inverse l'ordre de tes clés .
    merci, ca fonctionne, et je suis surpris, puisqu'il me semble que ca aurait été plus logique dans cet ordre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\VD022025; Flags: uninsdeletekey
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs; Flags: uninsdeletekeyifempty
    Root: HKLM; SubKey: SOFTWARE\MonNom; Flags: uninsdeletekeyifempty
    mais tu avais raison, c'est bien dans cet ordre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Root: HKLM; SubKey: SOFTWARE\MonNom; Flags: uninsdeletekeyifempty
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs; Flags: uninsdeletekeyifempty
    Root: HKLM; SubKey: SOFTWARE\MonNom\InstalledSKUs\VD022025; Flags: uninsdeletekey
    ce qui est étrange, c'est que pour les fichiers et dossiers ca a fonctionné dans l'ordre inverse.

    pour ce qui est des icônes, j'ai réussit à trouver la solution dans le menu d'aide et j'ai mon raccourci avec son icône personnalisé.

  6. #6
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    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 : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    La raison c'est expliqué dans
    Other information -> Installation Order je cite:
    All entries are processed by the installer in the order they appear in a section.
    Changes are undone by the uninstaller in the opposite order in which the installer made them. This is because the uninstall log is parsed from end to beginning.
    In this example:
    [INI]
    Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Flags: uninsdeletesectionifempty
    Filename: "{win}\MYPROG.INI"; Section: "InstallSettings"; Key: "InstallPath"; String: "{app}"; Flags: uninsdeleteentry
    the installer will first record the data for first entry's uninsdeletesectionifempty flag in the uninstall log, create the key of the second entry, and then record the data for the uninsdeleteentry flag in the uninstall log. When the program is uninstalled, the uninstaller will first process the uninsdeleteentry flag, deleting the entry, and then the uninsdeletesectionifempty flag, deleting the section.
    Note that the uninstaller processes [UninstallRun] and [UninstallDelete] entries in the same order they appear in the script (not in reverse order).
    certe ceux qui ne parle pas anglais c'est dur.
    en gros:
    l'installation écrit dans un fichier les actions dans l'ordre qu'elles apparaissent dans le script, et à la désinstallation elles sont exécutées en commençant par la dernière donc dans le sens inverse du script, à l'exception des deux sections [UninstallRun] et [UninstallDelete] qui elle sont exécuté dans l'ordre où elles apparaissent dans le script.

    il faut donc que les clés de registre avec un flags uninsdeletesectionifempty soient écrites sous le nom de la section puis ensuite il faut écrire les autres clés
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  7. #7
    Candidat au Club
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par ouiouioui Voir le message
    l'installation écrit dans un fichier les actions dans l'ordre qu'elles apparaissent dans le script, et à la désinstallation elles sont exécutées en commençant par la dernière donc dans le sens inverse du script, à l'exception des deux sections [UninstallRun] et [UninstallDelete] qui elle sont exécuté dans l'ordre où elles apparaissent dans le script.
    voilà qui explique tout, je comprends maintenant, donc les commandes UninstallRun et UninstallDelete sont lu dans le bon ordre, alors que les autres sont lu en commencant par le dernier. c'est vrai que c'est moins évident pour quelqu'un qui comprend pas tout à fait l'anglais

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/09/2012, 21h09
  2. Réponses: 9
    Dernier message: 23/03/2010, 11h10
  3. Réponses: 1
    Dernier message: 14/12/2009, 17h20
  4. Réponses: 2
    Dernier message: 07/02/2009, 12h15
  5. [Inno setup/IsTool]Diverses questions
    Par marsup54 dans le forum Installation, Déploiement et Sécurité
    Réponses: 14
    Dernier message: 18/07/2006, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo