Problème avec la fonction system()

Résolu
Signaler
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
-
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
-
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

Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010

Bonsoir,

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

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

Bouba
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
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
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
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++
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
16
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
Messages postés
518
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 novembre 2007
3
Merci pour toutes ces réponses.

Bouba.