Voici un exemple simple de communication entre 2 applications.
Le Serveur, celui qui envoye des données dans mon exemple.
J'ecris mes infos dans une structure.
Je recherche le handle de mon application client, via l'API :
ThWnd = FindWindow(vbNullString, "App Client")
"App client" est le nom recherché, ThWnd est le handle retourné, 0 si No found
on envoie le tous via:
i = SendMessage(ThWnd, WM_COPYDATA, Me.hwnd, cdCopyData)
ThWnd est le handle de mon application client (Qui reçoit)
WM_COPYDATA est le N° du Message windows (voir client)
Me.hwnd: Handle de l'application serveur
cdCopyData: la structure à envoyer
Le client reçoit l'information.
Détourner les message windows dans une fonction
lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, AddressOf WindowProc)
WindowProc : nom de ma function recevant TOUS les message.
Si je reçoit le N° de message WM_COPYDATA, j'ai a disposition une information, je peux donc la lire.
Si le N° de message ne vous interresse pas il faut le rendre à Windows.
avant de quitter l'application il est OBLIGATOIRE de ne plus détourner les message:
temp = SetWindowLong(gHW, GWL_WNDPROC, lpPrevWndProc)