begin process at 2012 05 29 22:47:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Lancement d'un programme par un autre programme et lui envoyer des variables


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lancement d'un programme par un autre programme et lui envoyer des variables

vendredi 17 décembre 2004 à 18:12:17 | Lancement d'un programme par un autre programme et lui envoyer des variables

inquisitor87

Bonjour à tous,
Je me permet de vous poser cette question car j'ai longuement cherché mais n'ai point trouvé.
En fait, je suis actuellement en train de créer une interface graphique pour une suite de logiciels scientifiques opensources (en console uniquement), afin d'aider au maximum les chercheurs en leur permettant un gain de temps.

En effet, chaque logiciel de cette suite de logiciels pose plusieurs questions (toujours les mêmes) à chaque exécution, et je souhaiterais pouvoir empêcher tt le monde de retapper 15 ou 20 fois les mêmes choses.

Mon problème est le suivant :

J'ai besoin que mon interface graphique que je travaille en ce moment puisse lancer un autre programme, et lui envoyer en même temps (ou au fur et à mesure ) des variables (comme l'emplacement du fichier à traiter, etc...), mais le programme d'origine n'a pas de argv[], et je ne désire pas modifier les sources originales, afin de rester adaptables aux futurs évolutions de cette suite logicielle.

Si vous pouviez me renseigner, aussi bien dans le cas de Linux que de Windows, je vous en serais fort gré.

Merci d'avance

vendredi 17 décembre 2004 à 19:45:06 | Re : Lancement d'un programme par un autre programme et lui envoyer des variables

mezaya


pour lancer un éxecutable j'utilise la commande fork() combiner avec la commande exec().

si tu connais pas la gestion des processus je t'explique.

tu code ton programme normalement.puis tu copie ton processus a l'identique avec la commande fork(). Puis tu transforme ta copie en ton programme que tu veux lancer avec la commande exec().

ex:

#include <unistd.h> // obligatoire pour la gestion des processus

// ton programme normale
if(fork())
{
// nouveau processus
exec("chemin de ton programme a lance",arguments a passer a ton programme // pour toi en faite NULL);

exit(0);

}
else
{
// processus d'origine

// continue ton code (s'execute parrallement avec le nouveau
// processus utile pour des infos concernant ton programme lancé

exit(0);
}


la gestion des processus étant un peu compliqué je te renvoie sur mon cours de l'année dernier sur http://mathinfo.ens.univ-reims.fr/
rubrique licence -> informatique -> systeme -> SE_cours3.pdf

les fonctions marchent sur tout systeme unix , pour windows je ne sais pas les fonctions ont des noms différents.

Sinon il a d'autre moyen comme les Threads au autre mais je connais pas trop le sujet.


comme ton programme n'as pa d'arguments il faudrait savoir comment ton programme récupere tes informations.

si c'est par entrée clavier il faudrait pouvoir controlé le flux d'entré clavier. par des tubes ( voir le même sites ) ou en c++ par un pointeur iostream modifiant directement dans cin (a essayer)




Voili,Voilou
vendredi 17 décembre 2004 à 22:42:09 | Re : Lancement d'un programme par un autre programme et lui envoyer des variables

Gendal67


Euh, pk pas ShellExecute() ...a chercher sur msdn...c'est très pratique! ++

Gendal67, Dev-C++ 4.9.9.0, J'adore cppfrance!! :-))
samedi 18 décembre 2004 à 01:17:38 | Re : Lancement d'un programme par un autre programme et lui envoyer des variables

boumarsel

je pense que tu dois mettre
if(!fork())
{// nouveau processus
...
}
au lieu de if(fork())
dimanche 19 décembre 2004 à 18:23:29 | Re : Lancement d'un programme par un autre programme et lui envoyer des variables

inquisitor87

Merci beaucoup à tous. Je vais essayer ça. Je vous tiendrais au courant ici de l'avancement de mon interface graphique, et je mettrais les sources ici, et sur un site internet pour la communauté scientifique.

Encore une fois merci, vous m'avez bien aidés. ;)


Cette discussion est classée dans : programme, variables, envoyer, lancement, suite


Répondre à ce message

Sujets en rapport avec ce message

Plusieurs variables en une [ par CoQ87 ] Oui je sais c'est assez con mais je debute en c++ et je n'arrive pas à mettre le contenu de deux variables int a la suite (pas daddition, soustraction ouverture d'un fihier au lancement d'un programme [ par spirit ] j'aimerai savoir comment connaitre le nom d'un fichier lors de l'execution du programme associé à ce fichierex: quand on clique sur un fichier .txt, B lancement de plusieurs exécutables à la suite [ par mmmmegabites ] loloBonjour,Je cherche le moyen, sous Visual C++ 6, de lancer plusieurs exécutables, le suivant ne s'exécutant qu'une fois le premier terminé et ainsi verification d'argument [ par flatmax ] Voila ce que je voudrais faire au lancement de mon programme : tester la presence d'argument au programme. Pour que mon prog fonctionne correctement, Envoyer une touche [ par frzburn ] Je veux me faire un petit programme pour activer des cheats dans Vice City. Mais je ne veux pas modifier des trucs dans la mémoire, je veux utiliser Application en C++ Lancement de programme [ par BARA_Marie ] Jean-LucCaomment puis je empêcher une application en c++ de se recharger une deuxième fois si elle l'est déjà. ?Et comment faire lorsque je lance une Probleme de lancement d'un programme Allegro [ par Milli ] boujourj ai codé mon jeu (pacman) sur window98 avec djgpp j utilise la librairie allegromon mode graphique est 1024*768, 256 couleurstout marche corre Lancement de mon programme au demarrage de windows (XP) [ par WiShYs ] Bonjour,Je developpe actuellement un programme que je souhaiterais lancer a chaque demarrage de Windows XP, en evitant la technique basique du dossier envoyer des fichier sur un réseau local [ par supergrey ] Salut, j'ai fait l'acquisition d'un modem routeur pour mes 2 PC mais le partage de fichiers de windows XP foire.J'ai vérifié que les PC ping bien et d Envoyer du texte [ par razord ] Bonjour. Je voudrais faire un programme serveur qui attend une connection, et un programme client qui va se connecter au serveur, et qui va lui envoye


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales