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

C++Builder Discussion :

Lancement de l'application par un fichier et association d'une icone


Sujet :

C++Builder

  1. #1
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut Lancement de l'application par un fichier et association d'une icone
    Bonjour à tous

    Dans mon logiciel, j'ouvre des fichiers de profils pour paramétrer l'exécution.
    J'aimerais pouvoir lancer le logiciel également en cliquant directement sur les fichiers de profils.

    J'ai donc fait des recherches et j'ai trouver ceci
    Comment lancer une application à partir du fichier d'entrée?

    Ma question, j'aimerais associé une icone a ces fichiers

    Comment puis-je faire.

    Et deuxième question, est ce que c'est possible que ce soit une icone ressource de mon application ou est-ce qu'il faut que je déploie également le fichier ico.

    Merci d'avance pour votre aide

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Points : 179
    Points
    179
    Par défaut
    Bonjour,
    Comme souvant, tout est expliqué dans la faq.
    Il faut associer l'extension de ton fichier profil, à ton programme.
    Tout est ici.
    Cordialement,
    Benjamin

  3. #3
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Merci à toi mais ce n'est pas ca ma question.

    Le lancement de l'application, je sais le faire, grace au lien que j'ai mis dans mon post. Il faut ajouter des clé dans la base de registre.

    Mon souci, c'est d'associer une icone à mon fichier. car avec l'association de fichier, cela affecte bien une icone (une page blanche avec l'icone de l'application au centre), mais moi je voudrais associer une icone spécifique.

  4. #4
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Salut,
    La fonction LoadIcon te permet de charger une icone de ta ressource.

    Pour modifier l'icone d'un fichier, il faut ouvrir sa ressource et modifier l'icone 0.

  5. #5
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Ce que je veux, c'est affecter une icone à tous les fichiers du type.

    On peut pas comme on le fait pour l'association du type avec l'application, insérer une clé dans la base de registre avec l'icone correspondante.

    Exemple

    Dans word :
    les fichiers .doc on une icone
    les fichiers .dot (modèle de document) on une autre icone

    J'aimerais pouvoir faire pareil car j'ai deux types de fichiers que pourrons s'ouvrir avec mon application.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 190
    Points : 179
    Points
    179
    Par défaut
    Re,
    Sur la même page du lien que je t'ai donné, il y a une catégorie "Comment associer une icône à une extension de fichier ?".
    Ce n'est pas ce que tu veux faire?
    Cordialement,
    Benjamin

  7. #7
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Si c'est bien ca que je veux faire, je l'avais pas vu.

  8. #8
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Par contre je n'ai pas de réponse concernant la deuxième partie de ma question.

    Est-ce que l'on peut référencer dans l'icone, une icone ressources de mon application, ou il faut que je déploie le fichier Ico et ensuite le référencer.

  9. #9
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Tu peux linker avec une icône dans ton exe:
    "C:\Program Files\Mon Logiciel\logiciel.exe",2
    Ici c'est le deuxième icône du fichier

  10. #10
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    En fait, j'ai trouvé plus simple pour créer les associations de fichiers et d'icones.

    J'utilise innosetup pour déployer mon application et j'ai vu qu'on pouvait créer des association directement dans l'installeur. Je suis en train de tester.

    Par contre concernant les icones inclusent dans l'exe, comment faire pour qu'elles soient toutes accessible car j'ai créer 2 icones en plus de celle de l'application dans la ressources de mon appli et quand je veux y accéder, je n'ai accès qu'a la première.

  11. #11
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Bon alors l'association de fichiers et d'icones fonctionne avec l'installeur créer avec innosetup. (Icones présente dans le dossier de l'application)

    Par contre je n'arrive pas a récupérer le nom du fichier avec lequel j'ai lancer l'application.
    Quand je teste les paramètres dans le OnCreate de ma form, il ne me donne qu'un seul paramètre qui est le chemin de l'exe. (ParamCount = 1)

    Voilà les clé que j'ajoute pour l'association
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    [Registry]
    Root: HKCR; SubKey: .qpr; ValueType: string; ValueData: ProfilQuestions; Flags: uninsdeletekey
    Root: HKCR; SubKey: ProfilQuestions; ValueType: string; ValueData: Profil de Questions; Flags: uninsdeletekey
    Root: HKCR; SubKey: ProfilQuestions\Shell\Open\Command; ValueType: string; ValueData: """{app}\Questions.exe"" ""%1"""; Flags: uninsdeletevalue
    Root: HKCR; Subkey: ProfilQuestions\DefaultIcon; ValueType: string; ValueData: {app}\Profil.ico,0; Flags: uninsdeletevalue
    Root: HKCR; SubKey: .qpc; ValueType: string; ValueData: ProfilsQuestionsC; Flags: uninsdeletekey
    Root: HKCR; SubKey: ProfilsQuestionsC; ValueType: string; ValueData: Profil de Questions Compressé; Flags: uninsdeletekey
    Root: HKCR; SubKey: ProfilsQuestionsC\Shell\Open\Command; ValueType: string; ValueData: """{app}\Questions.exe"" ""%1"""; Flags: uninsdeletevalue
    Root: HKCR; Subkey: ProfilsQuestionsC\DefaultIcon; ValueType: string; ValueData: {app}\ProfilCompresse.ico,0; Flags: uninsdeletevalue

  12. #12
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Je viens d'essayer d'afficher la valeur de ParamStr(1) pour voir au risque de faire planté mon programme, et pourtant cela contient bien le chemin du fichier avec lequel j'ai lancé l'application

    ParamCount ne me renvoit que 1 je comprend pas.

  13. #13
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Je viens de me rendre compte que ParamCount ne renvoit pas le nombre d'index disponnible pour la fonction ParamStr mais bien le nombre de paramètre effectif. C'est à dire que le ParamStr(0) qui est le chemin de l'application n'est pas pris en compte dans ParamCount.

    Sinon j'ai un autre souci qui vient d'apparaitre.

    Quand je lance l'application avec un fichier que j'ai associé, cela doit normalement réaliser un affichage à l'écran. Or cet affichage plante.

    En fait la fenêtre n'étant pas affiché quand je lance mon profil dans la fonction OnCreate, l'affichage ne peut pas se faire.

    Dans quelle fonction de la Form pourrais-je mettre le lancement de mon profil pour que celui-ci s'affiche ?

  14. #14
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    En fait, vu que je réalise des affichages, je viens de mettre le code dans la fonction OnPaint et cela fait exactement ce que je veux.

    Sinon je suis toujours prenneur pour savoirs comment mettre plusieurs icones dans l'exe de mon application et de pouvoir y accéder.

  15. #15
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par kurul1
    En fait, vu que je réalise des affichages, je viens de mettre le code dans la fonction OnPaint et cela fait exactement ce que je veux.

    Sinon je suis toujours prenneur pour savoirs comment mettre plusieurs icones dans l'exe de mon application et de pouvoir y accéder.
    Il suffit que tu rajoutes tes icônes dans ton fichier resource (.RC).

    Si tu veux utiliser des icônes pour Vista le compilateur ne compile pas les fichiers avec des icônes 256x256 avec compression PNG. Donc tu dois les ajouter toi même avec un éditeur de ressource comme Resource Hacker: http://www.angusj.com/resourcehacker

  16. #16
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Dans ton fichier resource (RC) tu dois mettre du code comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ///////////////////////////////
    //
    // Icônes
    //
    ///////////////////////////////
    2 ICON icone2.ico
    3 ICON icone3.ico
    4 ICON icone4.ico
    5 ICON icone5.ico
    N'oublie pas d'inclure ton fichier RES à ton projet BCB.

  17. #17
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    En fait, j'ai ajouté des icones grâce à l'editeur d'image de Borland.

    J'ai ouvert le fichier Res, et j'y ai ajouté des icones en plus de celle portant le nom Mainicon qui est celle par défaut de l'application mais je n'arrive pas à accéder aux autres icones.

    Je n'ai accès justement qu'a la première icone.

  18. #18
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Salut,
    tu peux utiliser un TImageList et charger au préalable tes icônes, cela aura le même effet que si tu les chargeais en ressource et l'accès sera plus simple.

    Sinon, la fonction LoadIcon que je t'avais donné te permet d'avoir accès aux icônes de ta ressource:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    HICON icon = LoadIcon( HInstance,MAKEINTRESOURCE(1));
    if(icon != NULL)  DrawIcon(Form1->Handle,10,10,icon);
    else              ShowMessage("Error " + IntToStr(GetLastError()));
    ici j'ai mis le numéro 1, mais il te faudra rentrer le bon numéro ( 2, 3, 4 ou 5 dans l'exemple donné par Crayon).

  19. #19
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    En fait j'ai créé un fichier rc comme celui que tu as proposé Crayon et maintenant dans innosetup, lorsque je veux créer mon association de fichier. je peux sélectionner l'icone à partir du fichier exe de mon application. C'est exactement ce que je voulais.

    Bandy Boy, je ne veux pas accéder par programme a mes icones, je veux créer une association de fichier et leur affecter une icone et ansi pouvoir lancer mon application en double cliquant sur ces fichiers. Ce qui fonctionne parfaitement avec innosetup.

    Merci à tous pour votre aide.

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

Discussions similaires

  1. Protection des applications par un fichier INI
    Par minooo dans le forum Forms
    Réponses: 15
    Dernier message: 08/10/2012, 19h28
  2. Réponses: 16
    Dernier message: 02/09/2011, 20h22
  3. Application par defaut pour un type de fichier
    Par g_barthe dans le forum Général Python
    Réponses: 5
    Dernier message: 03/09/2008, 20h13
  4. Réponses: 2
    Dernier message: 21/08/2008, 18h34
  5. [Système] Lancement d'application par PHP
    Par Syntax-ERROR dans le forum Langage
    Réponses: 1
    Dernier message: 10/01/2007, 11h55

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