cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 2014
-
28 févr. 2008 à 10:59
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 2014
-
6 mars 2008 à 10:13
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 --
NHenry
Messages postés15101Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention24 mars 2024159 28 févr. 2008 à 11:16
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
NHenry
Messages postés15101Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention24 mars 2024159 28 févr. 2008 à 11:49
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
NHenry
Messages postés15101Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention24 mars 2024159 28 févr. 2008 à 15:29
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