Bonjour à tous,
Voilà rien de nouveau, je ne suis même pas l'auteur de cette source, elle vient directement de la MSDN. Si je la poste, c'est que j'ai galéré plusieurs jours avant de tomber dessus par hasard, et que tout était déjà fait.
C'est donc pour pouvoir la diffuser que je la poste.
Il s'agit d'un exemple très simple de communication entre 2 applications (ou processus) différents. Si vous avez 2 programmes, et que vous voulez échanger des informations entre eux, voilà donc un exemple. La méthode employée est d'utiliser un message dédié à cela : WM_COPYDATA.
Ainsi, dans l'application A, vous récupérer le handle de la fenêtre de B qui va recevoir le message, et vous faites un SendMessage(hwnd, WM_COPYDATA, wParam, lParam).
Dans l'application B, la fenêtre destinée à recevoir le message doit être sous-classée (afin de pouvoir recevoir le message personnalisé). Lorsque l'évènement WM_COPYDATA arrive, il ne reste plus qu'à lire les données qui ont été transférées avec le message.
Présentation plus détaillée de la méthode :
http://blogs.codes-sources.com/madmatt/archive/2 009/02/15/communication-inter-processus-sous-windo ws-ipc.aspx
Ici, la données transférée est une chaine de caractère.
Le subclassing est fait grace à la DLL de vbAccelerator (version assembleur pour pas de plantage dans l'IDE).