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] Problème d'association d'une extension à mon programme


Sujet :

Outils Delphi

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par défaut [inno setup] Problème d'association d'une extension à mon programme
    Bonjour,

    je suis en train de finaliser un projet de 6mois en C++ et je prépare un installeur avec Inno setup.

    J'ai déjà résolu un problème de workingDir pour le raccourcis bureau grâce à ce site, merci ! Je pense que mon problème actuel ressemble un peu à ceci.

    J'ai réussi à associer un type de fichier (dans mon cas .bdc) à mon programme grâce aux lignes suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [Registry]
    Root: HKCR; Subkey: ".bdc"; ValueType: string; ValueName: ""; ValueData: "BDClipperFile"; Flags: uninsdeletevalue
    Root: HKCR; Subkey: "BDClipperFile"; ValueType: string; ValueName: ""; ValueData: "BDClipper File"; Flags: uninsdeletekey
    Root: HKCR; Subkey: "BDClipperFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\BDClipper.exe,0";
    Root: HKCR; Subkey: "BDClipperFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\BDClipper.exe"" ""%1"""
    Mon problème est le suivant :

    Lorsque je double clic sur l'un de mes fichiers.bdc, le programme s'ouvre mais sans les images (même problème que workingDir). Voici mon fichier .iis complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    43
    44
    45
    46
    47
    48
    49
     
    ; Script generated by the Inno Setup Script Wizard.
    ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
     
    [Setup]
    ; NOTE: The value of AppId uniquely identifies this application.
    ; Do not use the same AppId value in installers for other applications.
    ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
    AppId={{06A04978-25DB-41A5-BD71-62E62DF70323}
    AppName=BDClipper
    AppVerName=BDClipper 1.0
    AppPublisher=Moi
    AppPublisherURL=http://www.aa.ch
    AppSupportURL=http://www.aa.ch
    AppUpdatesURL=http://www.aa.ch
    DefaultDirName={pf}\BDClipper
    DefaultGroupName=BDClipper
    LicenseFile=C:\Documents and Settings\moi\Mes documents\Projet\Code\BDClipper\LICENSE.txt
    OutputDir=C:\Documents and Settings\moi\Mes documents\Projet
    OutputBaseFilename=BDClipper_setup
    Compression=lzma
    SolidCompression=yes
     
    [Languages]
    Name: "french"; MessagesFile: "compiler:Languages\French.isl"
     
    [Tasks]
    Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked;
     
    [Files]
    Source: "C:\Documents and Settings\moi\Mes documents\Projet\Code\BDClipper\release\BDClipper.exe"; DestDir: "{app}"; Flags: ignoreversion
    Source: "C:\Documents and Settings\moi\Mes documents\Projet\Code\BDClipper\img\*"; DestDir: "{app}\img\"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "C:\Documents and Settings\moi\Mes documents\Projet\Code\BDClipper\manuel\*"; DestDir: "{app}\manuel\"; Flags: ignoreversion recursesubdirs createallsubdirs
    Source: "C:\Documents and Settings\moi\Mes documents\Projet\Code\BDClipper\lib\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
    ; NOTE: Dont use "Flags: ignoreversion" on any shared system files
     
    [Icons]
    Name: "{group}\BDClipper"; Filename: "{app}\BDClipper.exe"; WorkingDir: "{app}"
    Name: "{group}\{cm:UninstallProgram,BDClipper}"; Filename: "{uninstallexe}"; WorkingDir: "{app}"
    Name: "{commondesktop}\BDClipper"; Filename: "{app}\BDClipper.exe"; Tasks: desktopicon; WorkingDir: "{app}"
     
    [Registry]
    Root: HKCR; Subkey: ".bdc"; ValueType: string; ValueName: ""; ValueData: "BDClipperFile"; Flags: uninsdeletevalue
    Root: HKCR; Subkey: "BDClipperFile"; ValueType: string; ValueName: ""; ValueData: "BDClipper File"; Flags: uninsdeletekey
    Root: HKCR; Subkey: "BDClipperFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\BDClipper.exe,0";
    Root: HKCR; Subkey: "BDClipperFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\BDClipper.exe"" ""%1"""
     
    [Run]
    Filename: "{app}\BDClipper.exe"; WorkingDir: {app}; Description: "{cm:LaunchProgram,BDClipper}"; Flags: nowait postinstall skipifsilent

  2. #2
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    ça me semble correct pourtant...tu as fais l'essai sur un PC 'frais' (sans install préalable de ton soft) ?
    Autre question : Il se passe quoi quand tu associes 'à la main' dans Windows ?

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 933
    Par défaut
    Si le programme s'ouvre, c'est que l'association est correct !
    Es-tu sûre d'avoir géré convenablement les paramètres dans ton programme C++ ?

  4. #4
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    Si j'ai bien compris ce n'est pas l'association qui pose pb c'est que l'appli n'ouvre pas le fichier cliqué.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par défaut
    Je viens de re tester l'installation sur un pc "frais" mais le problème persiste.

    Donc, le lancement du programme depuis program files : Ca marche

    Le lancement depuis les raccourcis du bureau et menu démarrer : Ca marche

    Depuis mon logiciel, enregistrer une config dans un fichier de montype.bdc : Ca marche !!

    Double cliquer sur un fichier.bdc, ça ouvre bien le logiciel, le fichier.bdc est utilisé pour retrouver une config, ce qui marche aussi très bien. (je ne pense pas qu'il y ait d'erreur dans mon C++)
    Le problème, c'est que dans ce cas de figure, les images du logiciel (icônes de barre d'outils par ex.) ne sont pas affichées.

    Ce genre de problème ressemble beaucoup au problème que j'avais eu quand j'ai fais mon installation sans le workingdir : le raccourcis sur le bureau lançait le prog sans les images.

    Je me demande si il n'y aurait pas un indication à ajouter dans la base de registre dans ma partie de code [Registry], pour indiquer également une sorte de workingdir ???

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 933
    Par défaut
    A ma connaissance, tu ne peux pas!

    Mais le problème est bien dans ton programme où tu ne gère que des chemins relatifs en pensant que le répertoire de travail est toujours celui de ton application.

    Force la racine (ChDir) au démarrage de ton soft et tes problèmes seront résolus.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par défaut
    ok, merci pour la réponse, je vais essayer ça.

    Par contre pour l'utilisation de chdir, je suis obligé de donner un chemin fixe alors ? genre chdir("C:\Program Files\BDClipper"); ?

    Il faudra alors que l'installeur force l'installation dans ce dossier. Je sens qu'avec cette solution je risque de m'attirer plein d'autre problèmes (compatibilité vista, disque local nommé autre chose que c...

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

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 933
    Par défaut
    Par contre pour l'utilisation de chdir, je suis obligé de donner un chemin fixe alors ?
    Pas du tout Il te suffit de récupérer le chemin de ton application. En Delphi, ce serait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChDir(ExtractFilePath(Application.ExeName));

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par défaut
    Yeaaaah merci beaucoup pour les infos, ça m'a dirigé vers la solution à mon problème !

    Effectivement, il suffisait de redéfinir le répertoire courant de mon application en récupérant le répertoire de l'exe. En Qt, pour info, ça se fait comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    QDir::setCurrent(QCoreApplication::applicationDirPath());
    Merci encore ! ++

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

Discussions similaires

  1. [Inno Setup] Problème d'associations de codes
    Par Survivorxs dans le forum Outils
    Réponses: 0
    Dernier message: 29/08/2013, 16h41
  2. Réponses: 6
    Dernier message: 09/11/2011, 13h11
  3. [Inno setup/VB6]Association d'une extension à un logiciel
    Par marsup54 dans le forum Installation, Déploiement et Sécurité
    Réponses: 3
    Dernier message: 27/09/2006, 09h09
  4. Inno setup, probléme
    Par nightcyborg dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 18/04/2006, 14h47
  5. [inno setup/is tool] Version d'une dll.
    Par méphistopheles dans le forum Installation, Déploiement et Sécurité
    Réponses: 6
    Dernier message: 21/02/2006, 22h25

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