Lancement externe a l'appli et communication entre applis

Résolu
cs_Sylvain17 Messages postés 16 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 8 novembre 2007 - 7 août 2007 à 00:21
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 - 13 août 2007 à 09:00
Bonjour,
Apres des recherches sur les fctions USER32, j'ai pas vraiment trouvé comment resoudre mon probleme... (ou comment bien utiliser les bonnes fonctions ^^)

Alors j'ai 2 applications. La 1ere (en C/C++) contient une liste de fichiers xml. Lorsqu'on selectionne un fichier ca va l'ouvrir dans la 2eme application (en C#) qui est un editeur de fichier xml. First question : comment je lance la 2eme a partir de la premiere ?
Ensuite : a n'importe quel moment, de la premiere application on peut decider d'ouvrir un 2eme fichier et ds ce cas, selon le chemin de ce fichier il faut soit qu'il s'ouvre ds la 2eme application, soit qu'il s'ouvre ds une 2eme instance de la 2eme application (mais attention la 1ere appli n'a aucune "memoire" des fichiers ouverts precedement (en gros c'est moi qui code la 2eme appli, alors que la 1ere je peux a peine y toucher ! Et ce que j'aimerais ds tous les cas c'est que ce soit la 2eme qui recoit juste le chemin du fichier et qui agisse en consequent)...je sais c'est complexe tout ca !

Alors faut-il utiliser SendMessage avec le nom du fichier en parametre par exemple, et si c'est bien le cas... comment ds ma 2eme application je recupere ce nom de fichier (ou son chemin entier) ????? Ensuite si je dois ouvrir le fichier ds la meme instance oki, mais si je dois lancer une nouvelle instance de l'application, comment je la lance ?

Question subsidiaire : Disons qu'on a ouvert une 2eme instance... ds la 1ere appli on reselectionne un nouveau fichier, comment savoir si il doit etre lancé ds les 2 autres ou si je dois créer encore une instance ???

Merci !
(et désolé ces contraintes me sont imposées !! :/ )

4 réponses

cs_Sylvain17 Messages postés 16 Date d'inscription mercredi 29 novembre 2000 Statut Membre Dernière intervention 8 novembre 2007
13 août 2007 à 08:56
Bonjour,


j'ai finalement trouvé ce qu'il me fallait.

Regarder ds ce tuto cette page

http://en.csharp-online.net/Application_Architecture_in_Windows_Forms_2.0%E2%80%94Multiple-SDI_Applications

ou encore cette page :

http://en.csharp-online.net/Application_Architecture_in_Windows_Forms_2.0%E2%80%94Single-MDI_Applications

selon ce que vous voulez faire !!

Et si ca ne suffit pas vous saurez pmaintenant que les mots clés sont
MDI et SDI (Multi Document Interface et Single Document Interface)
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
7 août 2007 à 08:55
Pour la première question : tu es hors sujet sur ce forum, c'est une question qui concerne C++ (http://www.cppfrance.com)

pour donner une réponse générique à ton problème : ton programme C# doit pouvoir accepter sur la ligne de commande le nom d'un fichier, ex : progCSharp.exe monfichier.xml... ce qui ouvrira automatiquement le fichier xml dans ton appli.
tu récupères le nom du fichier en modifiant la méthode Main de ton appli : public static void Main(string[] args).

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
12 août 2007 à 23:31
salut,

première question : CreateProcess

deuxième question : http://www.codeproject.com/csharp/csthreadmsg.asp...après à toi de faire un syst de query pour demander à tout le monde qu'est ce qu'il a d'ouvert...

ShareVB
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
13 août 2007 à 09:00
rien à voir ces mots clés par rapport à ta question !

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
Rejoignez-nous