Lancer un exe dans une boite de dialogue

Résolu/Fermé
todovski - 10 févr. 2009 à 16:44
 farehnasreddine - 25 févr. 2010 à 16:59
Bonjour,

Je souhaite exécuter un programme en mode console dans une boite de dialogue
J'ai vu que l'on pouvait utiliser la commande system() mais je n'arrive pas à l'utiliser correctement.
J'ai rentré la commande suivante:

system("C:\Users\Boune\Documents\cours M2\Projet\JPEG2000\jasper\jasper-1.900.1\src\msvc\Win32_Debug\jasper --input feep.pnm --output toto1.jp2 --output-format jp2")

jasper --input feep.pnm --output toto1.jp2 --output-format jp2 : corresponds aux parametres que je dois rentrer pour exécuter le programme.

Normalement en exécutant cette ligne une image toto1.jp2 doit être créer mais la sa ne marche pas
Pourriez vous m'aider?
A voir également:

5 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
16 févr. 2009 à 11:03
remove(const char*)
dans stdio.h ou stdlib.h ("man remove" pour en savoir plus)
Si tes boîtes sont dans un même processus, il y a plus simple que de passer par un fichier.
1
farehnasreddine
25 févr. 2010 à 16:59
bonjour,
je tape :

cd C:\Documents and Settings\Administrateur\Bureau\fareh\jasper-1.900.1.uuid\jasper-1.900.1.uuid\src\msvc\win32_debug

puis
jasper -f image.jpg -F image.jp2 -T jp2
sortie:
1_image.jp2(0k):vide
2_error: JPEG encoder not available
3 error : can not encode image


y'a t'il des solutions pour resoudre ce probleme
?
merci d'avance
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
10 févr. 2009 à 16:49
Oui, attention au "\" dans les chaines de caractères en C, car la backslash sert de caractère d'échappement, c'est à dire que le programme cherchera à interpréter la lettre qui suit comme une commande. il faut mettre "\\" si tu veux afficher le caractère donc system("c:\\Users\\...")
0
Voila ce que j'ai rentré mais sa ne marche toujours pas

system("C:\\Users\Boune\\Documents\\cours M2\\Projet\\JPEG2000\\jasper\\jasper-1.900.1\\src\\msvc\\Win32_Debug\\jasper --input feep.pnm --output t.jp2 --output-format jp2");
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
10 févr. 2009 à 17:13
je ne sais pas si c'est ça, mais tu en a oublié un :
system("C:\\Users\\Boune\\Documents\\cours M2\\Projet\\JPEG2000\\jasper\\jasper-1.900.1\\src\\msvc\\Win32_Debug\\jasper --input feep.pnm --output t.jp2 --output-format jp2");
Sinon, récupère le code de retour de system et affiche le voir ce qu'il vaut.
0
Re bonjour,

Bon tu avais raison j'avais oublié un "/" maintenant fonctionne. Merci
Par contre je voulais savoir si on pouvait inclure une variable dans les parametre system()?
En fait je voudrais savoir si je pouvais avoir quelque chose qui ressemble à sa:

system("C:\\lo\\jasper --input "ma_variable1" --output "ma_variable2" --output-format "variable3"");
Merci d'avance
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
12 févr. 2009 à 14:59
Le prototype de system est system(const char *), donc ce qu tu veux faire n'est pas possible en C aussi facilement.
Il faut créer une chaine de caractère (Vsys par exemple) la remplir et la passer à system() (system(Vsys)).
Pour cela le plux simple est d'utiliser sprintf().
Il serait plus facile de faire ce que tu veux faire avec un langage plus "évolué" genre python ou perl.
0
le probleme c'est que je ne peut utiliser que du C++ car j'utilise des boites de dialogue.

En fait je voudrais que l'on puisse choisir le nom d'une image que l'on veut compresser puis mettre ce nom dans la ligne de commande :

system("C:\\lo\\jasper --NOM_IMAGE --output momo.jp2 --output-format jp2");
Donc il faudrait que je creer une chaine de caractere?
Je ne voit pas trop comment faire ?
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297 > todovski
12 févr. 2009 à 15:52
Là, c'est les bases !!
prends des cours, je ne vais pas tout t'expliquer ici.
Mais si tu fait du C++, utilise la STL et std::string, c'est plus simple, ça permet la concaténation :
std:: string c1,c2,c3;
system((c1+c2+c3).c_str())
0
todovski > Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023
14 févr. 2009 à 19:03
Bonjour,

Bon j'ai reussi à lancer l'application.
Merci
Par contre j'ai encore un autre probleme, j'ai deux boites de dialogues, j'ai une variable dans ma premiere boite que je voudrais recuperer dans la deuxieme, le probleme c'est que lorsque je ferme la premiere boite pour repasser dans la deuxieme la variable repasse à zero.
merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
16 févr. 2009 à 08:22
Il n'y a pas assez de détails sur ton application pour que l'on puisse te répondre.
Qu'appelle tu "boite de dialogue" ?
0
Bonjour,

J'utilise des boites de dialogues avec les MFC, mais la probleme des variables est resolu, je les stockent dans un fichier .txt et je les recupere ensuite. Par contre je voudrais savoir si il exister une autre methode pour supprimer un fichier ici un .txt? Moi j'utilise la commande : system(del "nom fichier")
Mais elle me convient pas.
Cordialement,
0