-
Fonction SendMessage C#
Bonjour à tous,
J'ai une question à vous poser. J'ai actuellement deux applications qui doivent communiquer entres-elles. La première est une application win32, la seconde une codée en dotnet c# (application console).
Le tout tourne sur la plateforme windows mobile 2006.
A un moment l'application C++ doit informer la c# qu'elle a terminé, qu'elle va se fermer. J'ai envisagé plusieurs solutions.
La première, l'utilisation des sémaphores... Pas de sémaphore en .net CF pour windows mobile.
La seconde, l'envoi d'un message windows avec sendmessage. Pourriez-vous m'expliquer la démarche pour récupérer la valeur ou savoir qu'un message a été reçu en C#.
Enfin la troisième, tester en permanence que l'application c++ est en run.(solution qui ne me plaît pas).
J'aimerais avoir des conseils ainsi qu'une petite aide sur la deuxième option, je pense que c'est la meilleure.
Merci.
-
salut
t'as aussi la solution que l'application .Net lance l'application C++ avec la class process (je ne sais pas si elle existe sous CF) et ensuite, utiliser l'event de fin d'execution de process pour savoir que l'application win32 à fini...
sinon, le SendMessage, t'en trouveras gavé d'exemple sur le net...
-
Merci, je connaissais la class process mais ne savais pas qu'elle avait un événement sur la fermeture du process.
Pour ce qui est de l'utilisation de sendmessage, point de vue de la réception, je n'ai rien trouvé sur le net. Si tu as un lien, je suis preneur.
Merci.:ccool:
-
salut
si tu veux récupérer l'envoi d'un sendMessage dans une application dotNet, tu peux le faire en surchargeant la fonction WndProc de ta form principale.
Ainsi, tu vas recevoir les messages envoyés à ta fenetre (y compris ceux envoyé via un sendMessage de "l'extérieur")... Ensuite, il ne te reste qu'à
comparer l'ID du message avec celui que tu attends et le tour est joué :)
Suis-je assez clair ?
-
Très clair, seulement mon application en dotnet et une application console. :(
Bref, j'ai toujours le même soucis, il faudrait que je dise que mon application win32 s'est fermé. Malheureusement le CF est très limité. L'event sur la fermeture du process n'existe pas.
Si tu connais un équivalent...
-
Je ne suis pas sur que tu puisses recevoir des messages dans une appli Console
sauf peut-etre en utilisant les fonctions DispatchMessage(), etc de l'API Win32..
celà dit, autant faire une appli winform plutot qu'une appli console :)
et au pire, tu fais une appli winform, tu ouvres la console (AllocConsole de l'API win32 pour faire celà) et tu utilises la pompe à message de ta form pour recevoir les messages émanant de l'autre process :)