Question

Je suis en train de faire une application Windows qui vérifie certaines choses en arrière-plan, et informer l'utilisateur via une icône systray.

L'application est faite avec C ++ non géré et il n'y a pas possibilité de passer à .NET ou Java.

Si l'utilisateur veut arrêter l'application, il utilisera l'icône de la barre.

L'application ne peut pas être un service en raison du côté systray et parce qu'il doit fonctionner sans installer quoi que ce soit sur l'ordinateur de l'utilisateur (c'est un .exe)

En utilisant la structure du programme Win32 typique (RegisterClass, WndProc et ainsi de suite) je ne sais pas comment puis-je placer un code à exécuter en dehors de la boucle de message de fenêtre. Peut-être que je dois utiliser CreateProcess () ou CreateThread ()? Il est la bonne façon de gérer l'environnement multithreading?

Si je dois utiliser, comment puis-je comunicate CreateProcess () / CreateThread () entre les deux fils?

Merci;)

Était-ce utile?

La solution

En ce qui concerne l'icône de la barre système, vous aurez besoin Shell_NotifyIcon.

Voir http://msdn.microsoft.com/en-us/ bibliothèque / bb762159.aspx

Autres conseils

Je doute que vous voulez créer de nouveaux processus pour ce faire, vous voulez créer un thread dans votre application. L'API de le faire est CreateThread . Mais si vous utilisez C ++, vous devriez vraiment être enquêtant sur l'utilisation des cadres et des bibliothèques de classes pour ce faire, ne pas écrire ce sera effectivement le code C à partir de zéro.

Tous les sujets appartenant à une application partagent les variables globales de l'application, qui peut ainsi être utilisé pour la communication. Vous aurez besoin de protéger cet accès multi-thread avec quelque chose comme une section critique.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top