Echanger les variables de type Objet entre 2 programmes

cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009 - 18 août 2008 à 16:15
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009 - 18 août 2008 à 20:18
Bonjour à tous,
Je voudrais savoir comment passer les variables d'un programmes ProgA.exe à un programme ProgB.exe

La variable que je voudrais passer de ProgA à ProgB est une variable de type Objet principalement.

Pour le moment je passe par Command$ et je reconstitue l'objet, mais cette méthode ne me convient pas parceke l'objet que je veux passer est assez lourd à charger et je voudrais ke les modules externes du programme puisse l'utiliser.

En bref on ouvre ProgA et de ProgA on lance ProgB.

Espérant susciter votre intérêt.
MSlts

ASIMENGO

7 réponses

gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
18 août 2008 à 16:23
1 rends progA  "Com.visble"
2 ajoutes y une Public property avec ton objet
3 ajoutes une réference de progA dans progB

4 ça doit jouer

Bonjour chez vous !
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
18 août 2008 à 16:36
salut,

rapproche-toi des link DDE
voir les sources à ce sujet

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
18 août 2008 à 16:43
Bonjour gillardg et merci de ta reponse.
Mais je voudrais te preciser tous les paramètres.

L'utilisateur accède au logiciel en lancant ProgA et s'authentifie (Agence, Langue, Username, Pwd), ProgA initialise un objet qui lui même est reference sur une DLL. L'objet en question contient plusieurs tables en mémoire avec les libelles dans la langue choisie, bref fais toutes les initialisations. L'objet contient également toutes les méthodes pour accéder aux informations.

Le logiciel en question a plusieurs modules et c'est après l'authentification que de ProgA tu lances ProgB, ProgC, ... les divers modules qui sont des programmes independants (gestion des tarifs, gestion des fournisseurs, gestion des clients, gestion des operations) mais je veux savoir le moyen recommande pour passer l'objet de ProgA aux divers modules et que toute modification dans ProgB, ProgC, soit visible dans ProgA qui reste ouvert jusqu'à la sortie du logiciel.

J'espère avoir donné plus de précision pour également être mieux éclairé.

MSlts

ASIMENGO
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
18 août 2008 à 16:48
le plus simple tu met tout le bazar dans un seul projet !
et tu utilise des variables public


 







Bonjour chez vous !
0

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

Posez votre question
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
18 août 2008 à 17:18
Merci PCPT,
Je pense que c'est déjà une bonne indication. Je suis tombé sur cette source http://www.vbfrance.com/code.aspx?ID=29051 qui me permet d'entrevoir une possibilité.

Mais je suis plus interessé par les conseils avertis sur le moyen de traiter ce genre de cas pour ne pas rendre vulnérable le logiciel.

Je vais regarder sur Internet si j'ai plus d'infos, mais si j'ai bien compris le principe je dois créer de part et d'autre un contrôle dont l'un sera associé à l'autre. Il suffira de bien définir les propriétés afin de travailler de ProgB sur les variables de ProgA via le contrôle associé.

N'y a t-il pas de failles dans cette méthode dans ce sens ou les informations pourraient être lus par des programmes externes?.

MSlts

ASIMENGO
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
18 août 2008 à 18:52
à partir du moment où tu "ouvres une porte", il y a toujours un risque évidemment

pour le rendre moins vulnérable tu peux aussi transformer ton appliA en serveur, et les autres en client.
c'est à dire vraiment avec winsock etc...

l'intérêt? pouvoir organiser tes actions selon le format (message) de ton choix, et pouvoir crypter les données.
de plus çà sera un peu plus rapide qu'en attachants X dll/plugins. quoi que cette dernière méthode, même si elle nécessite une structure de classe unique pour tous tes projets, peut également être réalisée avec ton progA sous forme d'EXE/ActiveX (qui s'enregistre comme une dll)
et là plus besoin de passer par DDE, mais le débugage en devient assez complexe

umm.. pas très bien dit tout çà.
je la refais

tu as plusieurs possibilités, qui toutes - forcément - offriront une faille

DDE => simple à mettre en place, peu de modifications de code, gestion d'erreurs intégrée
TCP/IP => modification de code assez importante sur tous les projets, mais possibilité de sécuriser par les méthodes de ton choix, incluant le cryptage des données. autre intérêt, pour un nouveau prog ajouté tu n'as que le ProgA et le ProgNouveau à modifier
EXE/ActiveX => même principe que des PlugIn, mais oblige une organisation très réfléchie. niveau sécurité çà me semble plus "fermé" que toute autre méthode (donc peut-être à préférer)

tu peux également passer par un tampon sur le HD, pour communiquer par fichier (je trouve çà peu propre)

et dans l'idée des sockets tu as aussi la possibilité de jouer avec les MailSlots, qui peuvent être aussi une bonne alternative dans ton cas
http://msdn.microsoft.com/en-us/library/aa365576(VS.85).aspx

j'espère que c'est un peu plus clair
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
18 août 2008 à 20:18
Merci PCPT de ta disponibilité. Je pensais plus à une solution dans le registre EXE/ActiveX, c'est d'ailleurs en ce sens que j'ai choisis cette catégorie pour ma question.


Mais je n'avais encore jamais manipuler des EXE ActiveX, mais toujours des DLL ActieX et je voulais que les modules (applications externes) soient independants juste de recevoir en paramètre l'objet ou alors avoir un moyen d'aller le chercher. Mais effectivement avec le fonctionnement même des call back je devrais y arriver juste à retourner voir les exemples. Je pensais qu'il y'avait d'autres moyens je pensais aussi à la source de Renfield SHaredVAlues mais j'ai été paresseux pour pousser plus loin et voir si on puvait passer les objets.

MSlts

ASIMENGO


 
0
Rejoignez-nous