vicosta
Messages postés178Date d'inscriptionlundi 5 juin 2006StatutMembreDernière intervention30 novembre 2011 11 sept. 2008 à 18:34
merci encore de vos comentaires , ne pas oublier de noter de temps en temps ;)
Souplyne
Messages postés3Date d'inscriptionlundi 28 mai 2007StatutMembreDernière intervention10 septembre 2008 10 sept. 2008 à 14:57
Joli, simple et efficace... Bravo.
cs_candyraton
Messages postés109Date d'inscriptiondimanche 27 juillet 2008StatutMembreDernière intervention 2 février 20123 7 sept. 2008 à 23:32
Efficace.
excellent code et excellente trouvaille SendMessageByString
Je trouve
vicosta
Messages postés178Date d'inscriptionlundi 5 juin 2006StatutMembreDernière intervention30 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és280Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention18 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és178Date d'inscriptionlundi 5 juin 2006StatutMembreDernière intervention30 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.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és178Date d'inscriptionlundi 5 juin 2006StatutMembreDernière intervention30 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és2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 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és280Date d'inscriptionjeudi 24 mars 2005StatutMembreDernière intervention18 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.
11 sept. 2008 à 18:34
10 sept. 2008 à 14:57
7 sept. 2008 à 23:32
excellent code et excellente trouvaille SendMessageByString
Je trouve
2 sept. 2008 à 17:53
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
2 sept. 2008 à 12:15
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, ....
1 sept. 2008 à 20:00
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
1 sept. 2008 à 18:09
1 sept. 2008 à 16:57
Merci ;)
1 sept. 2008 à 15:19
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