INTERCOMMUNICATION ENTRE APPLICATIONS SANS DLL, OCX NI SUBCLASSING

cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009 - 1 sept. 2008 à 15:19
vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011 - 11 sept. 2008 à 18:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47830-intercommunication-entre-applications-sans-dll-ocx-ni-subclassing

vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011
11 sept. 2008 à 18:34
merci encore de vos comentaires , ne pas oublier de noter de temps en temps ;)
Souplyne Messages postés 3 Date d'inscription lundi 28 mai 2007 Statut Membre Dernière intervention 10 septembre 2008
10 sept. 2008 à 14:57
Joli, simple et efficace... Bravo.
cs_candyraton Messages postés 109 Date d'inscription dimanche 27 juillet 2008 Statut Membre Dernière intervention 2 février 2012 3
7 sept. 2008 à 23:32
Efficace.
excellent code et excellente trouvaille SendMessageByString
Je trouve
vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011
2 sept. 2008 à 17:53
eh oui, on peut aussi utiliser des fichiers .ini traités avec ces API que t'as indiqué afin de connaître les récipents.
Personellement, je préfère ta première idée: la fonction Command qui est beaucoup plus ràpide et légère à traiter dans le code.
J'ai changé ce projet de cette façon, et ça fonctionne correctement.

Je n'ai pas bien compris l'utilisation de la fonction GetObject,décrite quelque part par Renfield , selon ton premier message. J'en ai fait quelques recherches, mais je n'ai rien trouvé qui puisse ameillorer ce projet.

Enfin, à chacun d'adapter ce projet à ce q'on veut.
Salutations
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
2 sept. 2008 à 12:15
@VICOSTA : C'est surtout merci à toi. En regardant rapidement tes sources je suis tombé sur ces 2 apis dont j'avais vraiment besoin, encore commentaire de Renf.

Private Declare Function GetPrivateProfileSectionNames Lib "kernel32" _
Alias "GetPrivateProfileSectionNamesA" (ByVal lpszReturnBuffer As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long

Private Declare Function GetProfileString Lib "kernel32" _
Alias "GetProfileStringA" (ByVal lpSectionName As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long) As Long


Les Apis, pour moi c'est semblable aux théorèmes en mathématiques. Au lycée on aimait bien à demontrer les théorèmes et parfois on pouvait se passer de les retenir. Ca convenait bien à cet époque ou il est important de maitriser la base. Mais à l'université les mathématiques devienne autre chose et là obligatoirement il faut apprendre par coeur les théorèmes (cad le contexte de leur application) et encore mieux les Lemnes, sinon même en sachant démontrer tu ne finiras jamais une épreuve en essayant de récréer la roue.

Les Apis illustrent très bien pour moi ce cas en informatique et de plus en plus je suis prioritairement orienté API avant de commencer à me gratter la tête.

Y'a tellement de choses à découvrir (Bien que comme l'a dit un sage Rien n'est nouveau sous le soleil) qu'il faut de nos jours toujours "faire l'école" avant de se lancer dans une activité, la création, ....
vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011
1 sept. 2008 à 20:00
@ Asimengo : c'est aussi une très bonne idée de profiter de la function Command pour faire connaître les handles: (je n'avait pas pensé)

Sur l'application n.1:
Shell chr(34) & Application2 & chr(34) & " Wnd=" & txtReceive.Hwnd, VBNormalFocus

Sur l'application n.2
If Instr(Command,"Hwn=")=1 then
WndToSend=val(mid(Command,5))
bSucces = SendMessageByString WndToSend, WM_SETTEXT, 0, "Wnd=" & txtReceive.Hwnd)

Sur l'application n.1:
Private Sub txtReceive_Change()
With txtReceive
if mid(.Text,1,4) = "Hwn=" then
WndToSend=val(mid(.Text,5))

Voila voilu, tout le monde se connaît :) il me semble que l'intercommunication entre applications ça devient de plus en plus simple . Merci Asimengo :)












Sur
vicosta Messages postés 178 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 30 novembre 2011
1 sept. 2008 à 18:09
Je vais donc faire une mise à jour de la description/conclusion ci-dessus, afin d'expliquer comment ce projet fonctionne.
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
1 sept. 2008 à 16:57
C'est bien gentil de dire comment ça ne fonctionne pas (cf titre : sans DLL, OCX ni subclassing), mais c'est mieux de dire comment ça fonctionne :-). Parce que si ça se trouve c'est moins bien que les solutions que tu n'utilise pas. Bref on ne peut pas se faire d'idée sans télécharger le code.
Merci ;)
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
1 sept. 2008 à 15:19
Bjr vicosta.

J'étais effectivement interessé par une solution de communication entre applications, par passage des objets. J'ai finalement eu des réponses par Renfield avec GetObject.

Effectivement il y'a la possibilité de passer par Command ou par le registre pour passer les paramètres. Mais dans mon cas je ne voulais aucune interception des communications. Bien sur on peut dans ce cas crypter les informations. Mais pour une meilleure communication, je pense que GetObject s'avère simple et efficace.

A+
ASIMENGO
Rejoignez-nous