Probleme affichage de cmd.exe en c [Résolu]

Messages postés
10
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
25 septembre 2014
- - Dernière réponse : nevermind79
Messages postés
10
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
25 septembre 2014
- 21 mai 2010 à 21:15
Salut à tous alors voila mon problème:
je programme en c sous dev c++ et mon programme lance un autre executable.
Il le lance grave à system("prog.exe");
Le problème, c'est le cmd.exe qui apparait au lancement du programme prog.exe.
Comment empecher ca?

Merci :)
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
10
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
25 septembre 2014
3
Merci
Voila j'ai trouvé :-D
Dans le main:

FreeConsole();
STARTUPINFO siStartupInfo;
PROCESS_INFORMATION piProcessInfo;

memset(&siStartupInfo, 0, sizeof(siStartupInfo));
memset(&piProcessInfo, 0, sizeof(piProcessInfo));
CreateProcess(NULL,"Prog.exe",0,0,FALSE, CREATE_DEFAULT_ERROR_MODE,0,0&siStartupInfo,&piProcessInfo);

Merci de ton aide

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 145 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nevermind79
Messages postés
2674
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
0
Merci
Salut,

Si prog.exe est une application mode console, il est normal que la console ce lance.
Si tu veux masquer ton programme tu peux toujours passer par l'API ShellExecute, ou CreateProcess,...

Au pire avec un FindWindow et un ShowWindow tu devrait t'en sortir.

Autrement si tu as le code source de prog.exe, tu peux lui spécifier de démarrer en mode "caché".

Shell
Commenter la réponse de DeAtHCrAsH
Messages postés
10
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
25 septembre 2014
0
Merci
Prog.exe n'est pas un programme console et je n'ai pas son code source.
La console qui se lance, c'est celle 'c:\windows\system32\cmd.exe' et elle ne sert absolument a rien,...
et tu peux m'expliquer createprocces et shellexecute stp? ou me passer un petit lien avec exemple ca serait sympa ^^^^ merci
Commenter la réponse de nevermind79
Messages postés
2674
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
0
Merci
Si prog.exe n'est pas une application console, aucune console ne devrait s'ouvrir lors de l'appel à system.
La seule console qu'il reste est donc celle de ton programme. Si tu veux que ton programme ne soit pas visible tu as deux solutions :
- Tu transformes ton programme de "Console Application" à "Win32 Application" et tu ne définit aucun dialog dans la nouvelle application
- Tu conserves ton application en mode console et tu ajoutes les lignes suivantes au début de ton main. Le seul hic c'esr que tu vas voir la fenetre clignoter :
HWND hWnd = GetConsoleWindow();
ShowWindow( hWnd, SW_HIDE );

Shell
Commenter la réponse de DeAtHCrAsH
Messages postés
10
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
25 septembre 2014
0
Merci
pour transformer en win32 application je fais comment? sous dev C++, dans les option de projet j'ai Win32 console et Win32 GUI et dll et library mais bon inutiles )

alors heu j'ai trouvé la commande FreeConsole(), elle fais egalement clignoter une seconde la console au lancement.

Mais voila en fait, j'ai un programme (A) qui lance mon programme (B, le programme console que j'ai fait) et ce programme lance un autre programme (C).
A lance B, B lance C.
lorsque je lance mon programme, on voit la console une demi seconde, mais lorsqu'il est lancé depuis un autre programme (ce que j'aimerais), la console reste une idée?
Commenter la réponse de nevermind79