Problème avec la fonction system()

Résolu
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 - 5 avril 2006 à 21:15
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 - 5 avril 2006 à 23:56
Bonjour, dans un programme de dois lancer d'autres exécutables. J'ai utilisé la fonction system() pour réaliser l'exécution des ces progs. Ca marche mais une console dos s'ouvre à chaque fois, ce qui est normal bien sûr, mais étant donné que je réalise plusieurs appels à system c'est pas génial du tout (surtout que j'affiche une progress-bar qui est constamment cachée par ces fenêtres !!). Y'a t'il un moyen de lancer ces programmes sans que la console DOS s'affiche ?
J'ai vu qu'il existait une fonction ShellExecute, peut-être serai-ce la solution ?
Enfin, toutes les propositions que vous pourrez me donner m'interesse, je dois absolument résoudre ce problème.

Merci.

Bouba

6 réponses

cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
5 avril 2006 à 21:39
Bonsoir,

ShellExecute est la solution (voir même ShellExecuteEx) sous windows;

Matt...
3
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
5 avril 2006 à 22:10
Merci, j'ai testé sans succès, mais c'est bon, je suis passé par un CreateProcess et ça marche parfaitement.
Thanks again.

Bouba
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
5 avril 2006 à 22:46
Ya WinExec aussi je crois mais c'est uniquement pour la compatibilité 16 bits. Mais je comprend pas pourquoi ShellExecute fonctionne pas. C'est pas normal. Enfin si tu ten sort avec CreateProcess tant mieu. Ya t-il une erreur avec l'execution de ShellExecute?

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
5 avril 2006 à 22:49
CreateProcess est le bon choix, il possède tous les params nécessaires à un controle précis du mode de lancement.
ShellExecute appelle à son tour CreateProcess avec des params prédéfinis.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0

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

Posez votre question
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
5 avril 2006 à 22:57
Oui. Tout a fait d'accord avec toi. C'est mieu CreateProcess mais c'est pas normal que ShellExecute ne roule pas non? ShellExecute est quand même plus simple à utiliser pour ceux qui ne connaisse pas CreateProcess.

___________________________________________
Les plus grands esprits trouvent toujours une solution
0
cs_bouba Messages postés 518 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 novembre 2007 3
5 avril 2006 à 23:56
Merci pour toutes ces réponses.

Bouba.
0
Rejoignez-nous