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

Delphi Discussion :

lancer mon application via le sélectionneur de programmes


Sujet :

Delphi

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Par défaut lancer mon application via le sélectionneur de programmes
    Salut tout le monde,
    J'achève une petite application toute bête (un petit éditeur façon notepad++). Tout est presque parfait sauf un truc : je n'arrive plus à ouvrir un fichier (par exemple un .txt) par un clic-droit->sélectionner le programme. Je sélectionne bien mon exécutable mais rien ne se passe et le fichier s'ouvre avec le notepad traditionnel. Quelqu'un a-t-il déjà été confronté à ce genre de problème ?

    ps: je suis pas sûr mais je crois que ce bug est apparu après que j'ai inséré une icône à mon application.

    MERCI !!!

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Tu géres bien la ligne de commande ?
    Regarde l'association de l'extension .txt dans la registry.

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Par défaut
    Bonsoir,
    J'ai vérifié, je gère bien la ligne de commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
      // Gestion de l'ouverture de l'application
      if ParamStr(1) <> '' then begin
        OpenNewNote(ParamStr(1));
      end else begin
        if pcNotepad.PageCount = 0 then
          AddTabNote();
      end;
    Par contre je n'ai pas compris quand tu as parlé du 'registry'. Tu peux m'en dire plus stp ?

    merci

  4. #4
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par krokmitaine
    Par contre je n'ai pas compris quand tu as parlé du 'registry'. Tu peux m'en dire plus stp ?
    Je parlais de la base de registre, regarde cette clé
    HKEY_CLASSES_ROOT\.txt

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Par défaut
    Je suis désespéré ...
    Voilà trois soirs entiers que je passe sur ce bug.
    Je craque.
    J'ai tout vérifié : la base de registre, toutes mes fonctions, les fichiers dof, dpr, etc... rien n'y fait je ne parviens toujours pas à ouvrir un document directement avec mon application.

    Si une bonne âme charitable veut bien se pencher sur la question, il trouvera mes sources à l'adresse suivante : http://pepitooffice.free.fr/pepito_notepad/src/Pepito_Notepad_dev.rar


    petite précision, je travaille sous delphi 7 entreprise edition.

    Merci et pardon du dérangement ...
    Cordialement.

  6. #6
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 064
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 064
    Par défaut
    Yep !
    J'ai tout vérifié
    Pas tout, je pense !

    J'ai juste à peine joué avec l'exe et "léponge.txt", lancé depuis une boîte DOS, et au final j'ai une entrée dans l'ini et quand je relance l'exe j'ai 2 onglets avec léponge.txt. Pas top...

    En plus, le menu "Affichage" me marque "Afficher la barre d'adresse" alors qu'elle est déjà affichée, au premier lancement, car après ça s'arrange il me semble.
    [edit]
    Et aussi, "Sélectionner tout" n'est pas actif ! Me faut modifier le texte pour l'activer ! Nawak ! [/edit]

    « 100 fois sur le métier remets-toi à l'ouvrage », qu'ils disaient...
    --
    jp

    Ah, j'allais oublier : me suis retrouvé sur ton site, très joli, mais des liens bad (en bas) ou carrément non implémentés, à gauche.

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Par défaut
    Ah oui ! Mais ça c'est des autres petits bugs à corriger par la suite qui ne tiennent plus de la pratique que du bug à l'état pur. Mais ce que je n'arrive pas (plus) à faire, c'est de faire un clic-droit sur un texte, de cliquer sur l'option "ouvrir avec" -> "choisir le programme" et de le sélectionner dans l'arborescence. Quand je sélectionne le chemin de l'exécutable et que je fais "ok", seule apparait la liste des applications avant sélection. Mon exécutable n'apparait nulle part. Je ne peux donc pas le choisir comme application par défaut pour un type de fichier donné. C'est plus clair ? Le reste c'est des broutilles comme il y en aura toujours dans tous les logiciels. En tout cas merci de me les avoir fait remarqué !


    Cordialement.

    ps: pour le site, c'est que j'en avais tellement marre de ce bu que j'ai préféré passer à autre chose pour l'instant même si j'avoue que j'ai eu vite la flemme de mettre tous lesliens et que certains modules ne sont pas du tout encore fini (pas commencé ? )

  8. #8
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 064
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 064
    Par défaut
    Quant au problème d'origine,
    je ne parviens toujours pas à ouvrir un document directement avec mon application
    , j'ai fait la manip suivante :
    • j'ai copié l'Exe dans mon dossier "SendTo" ;
    • j'ai fait sur TODO.txt "Clic droit / Envoyer vers / Pepito.exe"

    et ça a fonctionné.

    Donc pas de problèmes avec ParamStr et ce genre de choses.
    Je pense que c'est bien un souci d'enregistrement des .txt vis à vis de ton exe.
    Si je devais faire, je ferais "Maj Clic-droit" sur un .txt, et je choisirais "Ouvrir avec..." et je ferais pointer sur ton exe en activant "Toujours ouvrir avec".
    Valà,
    --
    jp
    [edit] Oops, croisement de posts. Si tu es sous XP, je crois qu'il faut fouiller plus loin dans cette histoire d'"Ouvrir avec..."
    Mon exécutable n'apparait nulle part
    Je crois qu'il y a un bouton Parcourir [/edit]

  9. #9
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Par défaut
    Ah ca pour parcourir, je parcoure !!!
    Mais rien n'y fait. Je suis défait...
    Pourtant quand je recrée un projet avec un mémo qui charge un texte quand on l'ouvre en le passant en paramètre, je ne rencontre aucune difficulté.

    Je ne vois qu'une seule solution pour l'heure, redémarrer d'un projet from scratch et de faire des copiers-coller jusqu'à découvrir la procédure coupable.
    ++

  10. #10
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 064
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 064
    Par défaut
    un mémo qui charge un texte quand on l'ouvre en le passant en paramètre, je ne rencontre aucune difficulté
    Ben vi puisque le 'blème est pas là !

    Tente ça, mais je suis sous 2K, ça risque d'être différent :
    Explorateur, menu Outils, "Options des dossiers", Onglet "Types de fichiers", tu cherches le TXT et tu cliques sur "Modifier" et tu parcours jusqu'à ton bignou.

    Si ça ne fonctionne pas, ya un gros souci avec ta base de registre, parce que c'est comme ça que j'ai fait il y a qq années pour un truc similaire (en plus simple) au tien, en D3/D6 sous 98.
    --
    jp

  11. #11
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Sous XP dans l'explorateur tu fais :
    clic-droit sur le fichier.txt
    Ouvrir-avec
    Choisir le programme ...
    Parcourir

    Tu peux utiliser regmon de sysinternals pour trapper toutes les modifications dans la base de registre qui sont faite suite à cette manipulation .
    Là ça fonctionne le code de ton appli n'est pas en cause sur ce point là.

  12. #12
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Par défaut
    Laurent Dardenne a dit :
    clic-droit sur le fichier.txt
    Ouvrir-avec
    Choisir le programme ...
    Parcourir
    C'est ce que je me tue à faire, mais sans résultat.

    Voilà un programme de test qui marche quand je fais "ouvrir avec...":
    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
    unit test_open_txt;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
     
    type
      TForm1 = class(TForm)
        GroupBox1: TGroupBox;
        mo: TMemo;
        procedure FormCreate(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      if ParamCount > 0 then begin
        mo.Lines.LoadFromFile(ParamStr(1));
      end;
    end;
     
    end.
    L'exécutable que j'obtiens s'ouvre parfaitement avec tout type de fichier (.txt, .hmtl, .c, .h, etc...). Donc je pense pas que le problème vienne de mon registry.

    J'ai dû faire une fausse manip dans les options à un quelconque moment, c'est tout ce que je vois.

  13. #13
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par krokmitaine
    Donc je pense pas que le problème vienne de mon registry.
    Utilise regmon lors de cette manip, tu auras un peu plus d'infos sur les échecs d'i/o sur les clés.
    Que donne la recherche, dans la base de registre, d'une occurence de ton nom de programme ?

  14. #14
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Par défaut
    J'ia utilisé regmon. Pour le .txt, j'ai bien le nom de moin application qui apparait dans la liste des programmes à l'ouverture. Je vais me repencher sur mon code ce soir. (Il n'ya plus que ça qui peut planter c'est obligé !)

    En tout cas merci pour le tuyau !
    ++

  15. #15
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 064
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 064
    Par défaut
    Yop !
    J'ia utilisé regmon. Pour le .txt, j'ai bien le nom de moin application qui apparait dans la liste des programmes à l'ouverture.
    Pas besoin de regmon pour savoir ça : tu fais comme je t'ai dit,
    Explorateur, menu Outils, "Options des dossiers", Onglet "Types de fichiers", tu cherches le TXT
    et normalement ça doit t'afficher avec quoi les TXT s'ouvrent.
    Attention aux chemins, si tu déplaces ton exe c'est foutu, faut refaire l'association.
    Il n'ya plus que ça qui peut planter c'est obligé !
    Ben c'est pas gagné, puisque, comme je le disais hier soir, si dans un boîte DOS je tape "Pepito_Notepad.exe TODO.txt" (ou léponge.txt) ça fonctionne...

    Mes 2 cts,
    --
    jp

  16. #16
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    166
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 166
    Par défaut
    Bon, j'ai recrée un projet dans lequel j'ai repris tout mon code et... j'ai le même problème ! Mais cette fois j'ai découpé les choses et j'ai enfin pu cerner le bug . Tout s'est passé à merveille jusqu'à ce que je veuille finaliser mon application. Dès que j'ai commencé à rajouter une icône à mon programme, là mon programme n'apparaissait plus dans les programmes sélectionnables pour ouvrir un fichier.

    Je me suis dit : "je n'ai donc qu'à enlever l'icône dansProjet->Options->Application->Icone". Et là c'est le drame. Impossible d'y parvenir ! Si quelqu'un sait comment faire...

    Sinon pour l'instant je me contente d'une icône Delphi mais ça fait pas très professionnel quand même.

  17. #17
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 064
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 064
    Par défaut
    Salut !
    Dès que j'ai commencé à rajouter une icône à mon programme, là mon programme n'apparaissait plus dans les programmes sélectionnables pour ouvrir un fichier.
    ? ? ?
    Pour le truc dont je te parlais plus bas, j'ai créé une icône de toute pièce et tout a toujours bien fonctionné.
    Et franchement, je ne vois pas le rapport, ou alors tu utilises une icône moisie ? Taille non standard, trop de couleurs, que sais-je ?
    J'ai pas pu creuser plus avec ta source, j'ai pas XP et ton truc veut un XPActionList ou qqchse comme ça, et donc je ne peux pas le compiler et grrrr !
    Mes 2 cts,
    --
    jp

Discussions similaires

  1. impossible de lancer mon application via jar ou ant
    Par bobkilla dans le forum Langage
    Réponses: 8
    Dernier message: 25/06/2008, 15h53
  2. Lancer une application via la console ?
    Par tintin72 dans le forum Applications et environnements graphiques
    Réponses: 22
    Dernier message: 07/08/2007, 10h25
  3. Impossible de lancer mon application
    Par lvr dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 26/04/2007, 10h11
  4. [PHP-JS] Comment lancer mon application
    Par Maria1505 dans le forum Langage
    Réponses: 7
    Dernier message: 19/12/2006, 00h42
  5. Lancer mon application En arriere plan
    Par tarek.seg dans le forum Delphi
    Réponses: 1
    Dernier message: 03/11/2006, 10h24

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