Membres inscrits :2359
Membres en ligne : 0
Invités en ligne : 4


|
Conversation (Résolue) : Ouvrir un fichier par wxCmdLineParser |
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)
|
|
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1390
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à ... et effectivement, depuis le temps, ce n'est plus tellement nouveau....
|
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
|
|
|