wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 3
Pub hébergeur
Pourquoi cette pub ?

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Ouvrir un fichier par wxCmdLineParser
Conversation (Résolue) : Ouvrir un fichier par wxCmdLineParser
04-07-2015 05:37:02  Ouvrir un fichier par wxCmdLineParser #1
ajm (Membre)
Inscrit le : 16-03-2011
Messages: 82
Snippets: 0
Tutoriels: 0
Hors ligne
Mon objectif est d’ouvrir un fichier avec mon application par un double clic sur celui-ci sur l'explorateur Windows. J'ai doc le code suivant:

TestApp.cpp

Code wxWidgets:

 
#include "CMD_OpenApp.h"
 
//(*AppHeaders
#include "TestMain.h"
#include <wx/image.h>
//*)
 
IMPLEMENT_APP(CMD_OpenApp);
 
bool CMD_OpenApp::OnInit()
{
    bool wxsOK = true;
    wxInitAllImageHandlers();
    if ( wxsOK )
    {
        CMD_OpenFrame* Frame = new CMD_OpenFrame(0);
        Frame->Show();
        SetTopWindow(Frame);
 
        wxCmdLineParser parser(argc,argv);
        parser.AddOption(_T("o"),_T("file"),_T("Path of the file"),wxCMD_LINE_VAL_STRING);
 
        parser.Parse(false);
        wxString MyFileName=_T("");
        if (parser.Found(_("o"),&MyFileName))
        {
            Frame->OpenTextFile(MyFileName);
        }
    }
    return wxsOK;
}
 


Pour mon test, voici la ligne de commande:

C:\TEST\Test.exe -o C:\TEST\Test.txt
Avec cette commande le fichier text s'ouvre

Mon problème c'est que je veut ouvrir le ficher sans le '-o' devant cad:
"C:\TEST\Test.exe" "C:\TEST\Test.txt"
Avec cette linge de commande j'ai une erreur suivant: "Unexpected parameter 'C:\TEST\Test.txt'"

Dernière modification par ajm (04-07-2015 05:38:00)

04-07-2015 07:06:37  Re: Ouvrir un fichier par wxCmdLineParser #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1367
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Salut.

Essaye d'utiliser "AddParam" plutôt que "AddOption".

C'est ce que j'ai fait pour un petit utilitaire : la seule différence avec ton cas étant que je peux accepter plusieurs fichiers, j'ai donc ajouté les flags "multiple" et "optional" :

Code wxWidgets:

m_parser.AddParam(_T("files"), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_MULTIPLE | wxCMD_LINE_PARAM_OPTIONAL);


@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
04-07-2015 11:55:41  Re: Ouvrir un fichier par wxCmdLineParser #3
ajm (Membre)
Inscrit le : 16-03-2011
Messages: 82
Snippets: 0
Tutoriels: 0
Hors ligne
Merci beaucoup Xav, c'est résolue. Voici le mis à jours de mon code.

Code wxWidgets:

 
bool CMD_OpenApp::OnInit()
{
    bool wxsOK = true;
    wxInitAllImageHandlers();
    if ( wxsOK )
    {
        CMD_OpenFrame* Frame = new CMD_OpenFrame(0);
        Frame->Show();
        SetTopWindow(Frame);
 
        wxCmdLineParser parser(argc,argv);
        parser.AddParam(_T("files"), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_MULTIPLE | wxCMD_LINE_PARAM_OPTIONAL);
 
        parser.Parse(false);
        if (parser.GetParamCount())
        {
            Frame->OpenTextFile(parser.GetParam(0));
        }
    }
    return wxsOK;
}
 


Bye
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Ouvrir un fichier par wxCmdLineParser