Programme en C/C++ pour exectuer 2 programme

Résolu/Fermé
lordglub Messages postés 28 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 17 septembre 2010 - 30 juil. 2007 à 15:13
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 31 juil. 2007 à 10:06
bonjour,

quelqu'un connaiterai la syntaxe en c ou c++ pour executer 2 autres programme independant??
Je ne veux rien renvoyer au programme initial jsute executer les deux autres programmes.
JE suis sous windows mais je ne veux pas faire de batch.

Merci
A voir également:

5 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
30 juil. 2007 à 15:50
En C, je ferais:
system("start prog1");
system("start prog2");
0
lordglub Messages postés 28 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 17 septembre 2010
30 juil. 2007 à 16:38
j aimerai egalement le faire sous linux, j ai deja essayer la commande execvp, mais il lance juste le premeir programme et s arret dessus, si je ferme le premeir programme, il ne lance pas le second pour autant ...

char * argss []¸ = {"konkeror", NULL} ;
execvp ("konqueror", argss);

char * argss []¸ = {"kwrite", NULL} ;
execvp ("kwrite", argss);

en fait idealelement j aiemrai un programme +/- similaire sous linux et wuindows merci bien que windows soit ma priorité.

quelqu un sais comment utiliser execvp ou un equivalent.. ??
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
30 juil. 2007 à 18:31
Si les deux doivent être lancés en parallèle, le plus simple c'est de faire un fork. Dans le processus père tu lances le premier programme (avec execvp par exemple), dans le processus fils le deuxième programme.

Rien ne t'empêche de mettre des sections de codes qui diffèrent selon l'OS, et de passer un #define à la compilation. Exemple :
#include <iostream>
int main(){
#ifdef LINUX
  std::cout << "compilé pour linux" << std::endl;
#elif WINDOWS
  std::cout << "compilé pour windows" << std::endl;
#endif
  //...
  std::cout << "au revoir" << std::endl;
  return 0;
}

Pour compiler sous linux :
g++ -W -Wall -DLINUX plop.cpp

... même principe sous windows.

Bonne chance
0
Salut,

J'ai le même besoin de lancer un second programme sous windows. Mon problème est que l'execution du second programme ouvre une fenetre de command (style DOS) et qu'on perd le focus sur l'interface de la 1ere applcation. Je n'ai pas accès au code de la première application. Si quelqu'un connait un moyen pour contourner le problème uniquement dans le second programme, merci d'avance.

A+
0

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

Posez votre question
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
31 juil. 2007 à 10:06
Je crois (mais je suis pas sûre) que selon la manière dont tu l'exécutes (system ou execvp) dans un cas ça s'affiche dans l'autre non. Mais vu que ça fait plusieurs années que je n'ai pas codé sous windows en fait je n'en suis pas sûre. Tu peux toujours essayer, ça ne mange pas de pain.

Bonne chance
0