MODÈLE DE SERVICE WINDOWS NT/2000/XP

Signaler
Messages postés
64
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 décembre 2006
-
Messages postés
64
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 décembre 2006
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/15267-modele-de-service-windows-nt-2000-xp

Messages postés
64
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 décembre 2006

Merci !

c'est exactement ce que je cherchais, n'ayant pas de fenêtre
j'ai mis directement PeekMessage dans la boucle Thread et ça fonctionne très bien ! Une fois la synchros réalisée entre les deux je passe par WM_COPYDATA.

Encore Merci et Bonne Journée,

frobinet.
Messages postés
36
Date d'inscription
dimanche 8 décembre 2002
Statut
Membre
Dernière intervention
8 avril 2005

Avec un service interactif on peut créer une fenêtre et recupérer les messages avec un test du genre:

if(PeekMessage(&Msg, 0, 0, 0, PM_REMOVE)) {
DispatchMessage(&Msg);
}

inséré dans la boucle principale.

Sans fenêtre on peut également utiliser le même système mais sans DispatchMessage(), en récuperant la valeur de Msg.message directement dans la boucle. Je n'ai pas essayé mais ça doit être quelque chose comme ça.

Pour copier plus de datas entre applications on peut utiliser WM_COPYDATA.
Messages postés
64
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 décembre 2006

En fait j'ai utilisé le source ci-dessus pour créer un service XP
qui lit en permanence un lecteur de carte. Il envoie via RegisterMessage... et PostMess... un message en BroadCast a tous les programmes ouvert pour dire qu'il y a une nouvelle carte d'insérer.
Et ce que je voudrai faire c'est avec un autre programme répondre au service en demandant d'autre renseignement.
Mais je ne sais pas comment faire pour récepionner un message dans un service.
Messages postés
36
Date d'inscription
dimanche 8 décembre 2002
Statut
Membre
Dernière intervention
8 avril 2005

Je ne comprend pas bien votre question mais peut-être ceci peut vous aider:

ServiceTypeFlag dd SERVICE_WIN32_OWN_PROCESS or SERVICE_INTERACTIVE_PROCESS

SERVICE_INTERACTIVE_PROCESS permet de créer un service pouvant afficher autre chose que des boites de messages (c'est à dire des fenêtres, etc.).
Messages postés
64
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
15 décembre 2006

Bonjour,

Merci pour ce code qui m'est très utile !
Peut-on faire interagir un programme avec un service. Je n'arrive pas à trouver d'exemple.