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

Signaler
Messages postés
10
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
25 septembre 2014
-
Messages postés
10
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
25 septembre 2014
-
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 :)

5 réponses

Messages postés
10
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
25 septembre 2014

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
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
1
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
Messages postés
10
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
25 septembre 2014

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
Messages postés
2671
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
1
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
Messages postés
10
Date d'inscription
vendredi 23 décembre 2011
Statut
Membre
Dernière intervention
25 septembre 2014

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?