Yunchi
Messages postés100Date d'inscriptionlundi 30 octobre 2006StatutMembreDernière intervention14 avril 2009
-
9 juil. 2007 à 07:20
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
9 juil. 2007 à 12:54
Bonjour,
J'aimerai lancer une application externe depuis un programme en C.
La commande system("test.exe"); marche bien mais le probleme avec cette fonction est qu'elle attend que le programme test.exe se finisse avant de pouvoir faire autre chose.
J'aimerai donc savoir s'il existe d'autres fonctions faisant la meme chose mais sans mettre en pause le programme qui le lance.
J'ai aussi essayer ShellExecute(NULL,NULL,"test.exe",NULL,NULL,SW_SHOW); mais il y'a une erreur avec le dernier parametre lors de la compilation.
" 'SW_SHOW' undeclared (first use in this function) "
pareil avec SW_SHOWNORMAL
Si quelqu'un connait une solution je le remercie d'avance
Yunchi
Messages postés100Date d'inscriptionlundi 30 octobre 2006StatutMembreDernière intervention14 avril 2009 9 juil. 2007 à 09:35
euh quelqu'un peut m'expliquer rapidement la difference entre lancer un programme avec system("prog.exe"); et
ShellExecute(NULL,NULL,"prog.exe",NULL,NULL,SW_SHOW); ?
pour le premier parametre c'est explique :
hwnd : [in] A handle to the owner window used for displaying a user interface (UI) or error messages. This value can be NULL if the operation is not associated with a window.
quelqu'un pourrait m'expliquer le premier parametre et me donner un exemple de ce que l'on peut mettre svp ?
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 9 juil. 2007 à 11:55
Salut,
En général, on met le handle de la fenêtre principale. Pour le coup de la "user interface", je vois pas de quoi ils parlent, mais pour le message d'erreur, c'est ce handle qui est certainement passé à MessageBox. Comme ça l'erreur est clairement associé à la fenêtre qui a le handle.
Si tu fait une appli console, je sais pas si il y a moyen de récupérer un handle sur ta fenêtre.
system, ça faisait un CreateProcess de cmd /C L_argument_passé_a_la_fonction, si mes souvenirs sont bons.
Donc en plus de prendre en charge les exes, ça prend les commande DOS, genre pause, dir...
Mais rien n'empèche de faire un cmd /C dans un ShellExecute. (Ou un CreateProcess bien sûr)