Inter-Exe [Résolu]

Signaler
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
-
cs_eldim
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
-
Bonjour,

Comment peux-ton faire pour exécuter une procédure d'un exécutable à partir d'un autre ?
Ou comment faire pour qu'à partir d'une instance d'un exe j'accède une instance déja chargée en mémoire pour exécuter une procédure en lui passant des paramètres ?

Exemple :
sub A(P1 as string, P2 as string)
...
end sub

Premiere instance de l'exe lancé en mémoire avec P1: "truc", P2: "machin"
Puis deuxième instance, récupère l'instance et change P1 en "bidule" et P2 en "muche" puis s'arrete alors que la première instance continue de tourner

-- Pourquoi faire simple quand on peut faire compliquer --

10 réponses

Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
c'est bon avec un socket

-- Pourquoi faire simple quand on peut faire compliquer --
Messages postés
14670
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 mars 2020
139
Bonjour

Il est possible en .NET de faire cela, je crois (fais entre des DLL qui utilisent une interface d'un EXE), il te faut :
- Un executable qui fait référence (référence dans les propriétés du projet) à l'autre (référence croisée impossible).
- Ensuite, il faut que tu instancie une classe (ou un singleton) dans l'une de tes applis qui te sert d'interface de commande.

Pour plus d'info, j'attends ton retour.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
Merci pour ta réponse NHenry,

par contre, j'ai pas tout compris...
Je ne serais pas contre un peu plsu de détail voir un exemple... stp

-- Pourquoi faire simple quand on peut faire compliquer --
Messages postés
14670
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 mars 2020
139
Bonjour

Entre une DLL et un EXE (La DLL référençant l'EXE), je l'ai fait sur ma source TraitementImage.zip (dispo sur mon site perso, mais pas le code source, que l'executable).

Pour être plus simple :
- L'exe A fait référence à l'exe B
- L'exe A créé une classe de l'exe B (classe définie par avance)
- L'exe A execute une méthode de la classe de l'exe B

Je ne sais pas si cela fonctionnera (pas encore testé d'exe à exe).

Sinon, je viens d'y penser, la sérialisation peux t'être utile, elle te permet de transférer une classe (ou un type en général à condition que celui-ci soit marqué comme sérialisable) à travers un flux (binaire ou texte). Cela peut être utilisé par exemple grace à une liaison TCP (Locale à Locale).
Renseigne-toi dans l'aide MSDN à ce sujet, si il t'intéresse (pour le passage des paramètres surtout).
Condition, il faut qu'il y ait une DLL de classe .NET commune pour les 2 Exe, sinon, il ne pourra pas faire de désérialisation.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
Ok merci, je vai essayer de comprendre...

-- Pourquoi faire simple quand on peut faire compliquer --
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
bon ben j'ai pas tout pigé...

-- Pourquoi faire simple quand on peut faire compliquer --
Messages postés
14670
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 mars 2020
139
Bonjour

Qu'e'st-ce que tu n'a pas compri ?

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
ba à peu près tout :
la sérialisation

et la façon de faire ton truc avec ta dll

-- Pourquoi faire simple quand on peut faire compliquer --
Messages postés
14670
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 mars 2020
139
Bonjour

Pour la sérialisation, tu peux voir cette page.
Sinon pour la DLL, j'ai du mal à m'expliquer à moi-même comment faire ... , je refais un essai :
Les EXE .NET sont comme les DLL.NET, il peuvent être mis en référence, mais j'ignore comment est fait l'appel (si celui-ci se fait dans le fil d'execution de l'autre programme ou s'il sont dissociés).

Donc je conseillerais plutot la sérialisation, à moins qu'une autre personne ne te propose autre-chose.

Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
-- Pourquoi faire simple quand on peut faire compliquer --