La création d'un service Windows à l'aide de Visual Studio est donc relativement simple. Ma question va un peu plus loin sur ce qui rend un exécutable installable en tant que service & comment écrire un service en tant qu'application C directe. Je n'ai pas trouvé beaucoup de références à ce sujet, mais je présume qu'il doit y avoir une interface que je peux implémenter pour que mon .exe puisse être installé en tant que service.Création d'un service Windows sans Visual Studio
Répondre
Hope this helps:
http://support.microsoft.com/kb/251192
Il semblerait que vous devez simplement d'exécuter cette exe contre un exécutable binaire pour l'enregistrer en tant que service.
Fondamentalement, vous devez définir certains paramètres de registre ainsi que certaines interfaces à implémenter.
Découvrez ceci: http://msdn.microsoft.com/en-us/library/ms685141.aspx
Vous êtes intéressé par le SCM (Service Control Manager).
La configuration de votre exécutable en tant que service en fait partie, mais de manière réaliste, elle est généralement gérée par le logiciel d'installation que vous utilisez. Vous pouvez utiliser l'outil SC de la ligne de commande lors des tests (ou si vous n'avez pas besoin d'un installateur).
L'important est que votre programme doit appeler StartServiceCtrlDispatcher() au démarrage. Cela connecte votre service au gestionnaire de contrôle de service et met en place une routine ServiceMain qui est le point d'entrée principal de vos services. ServiceMain (vous pouvez l'appeler comme vous voulez, mais il semble toujours être ServiceMain) devrait alors appeler RegisterServiceCtrlHandlerEx() pour définir une routine de rappel afin que le système d'exploitation puisse notifier votre service lorsque certains événements se produisent.
Voici quelques extraits d'un service que j'ai écrit il y a quelques années:
mis en place comme service:
SERVICE_TABLE_ENTRY ServiceStartTable[] =
{
{ "ServiceName", ServiceMain },
{ 0, 0 }
};
if (!StartServiceCtrlDispatcher(ServiceStartTable))
{
DWORD err = GetLastError();
if (err == ERROR_FAILED_SERVICE_CONTROLLER_CONNECT)
return false;
}
ServiceMain:
void WINAPI ServiceMain(DWORD, LPTSTR*)
{
hServiceStatus = RegisterServiceCtrlHandlerEx("ServiceName", ServiceHandlerProc, 0);
gestionnaire de services:
DWORD WINAPI ServiceHandlerProc(DWORD ControlCode, DWORD, void*, void*)
{
switch (ControlCode)
{
case SERVICE_CONTROL_INTERROGATE :
// update OS about our status
case SERVICE_CONTROL_STOP :
// shut down service
}
return 0;
}
Je sais que je suis un peu en retard à la fête, mais j'ai récemment eu la même question, et j'ai du traverser les interwebs à la recherche de réponses.
J'ai réussi à trouver cet article dans MSDN qui jette effectivement les bases. J'ai fini par combiner plusieurs des fichiers ici dans un seul exe qui contient toutes les commandes dont j'ai besoin, et ajouté dans ma propre méthode "void run()" qui boucle pour la vie entièrement du service pour mes propres besoins.
Ce serait un grand début à quelqu'un d'autre avec exactement cette question, donc pour les futurs chercheurs là-bas, vérifier:
Service complet Exemple http://msdn.microsoft.com/en-us/library/bb540476(VS.85).aspx
- 1. C++ windows service Sans ATL
- 2. Création de modèles Visual Studio dans la catégorie "Windows".
- 3. Création de modèles Visual Studio
- 4. Création d'une bibliothèque GMP avec Visual Studio?
- 5. service Windows sans le modèle VS2005
- 6. Création de DLL C++ avec Visual Studio
- 7. Création de packages Visual Studio enregistrables
- 8. Création du programme d'installation de Visual Studio
- 9. Création de service sous Windows XP
- 10. Comment utiliser MSTest sans Visual Studio?
- 11. Création de bibliothèques Windows C++ sans runtime?
- 12. Windows Powershell & visual studio '08 path
- 13. SDK Windows CE pour Visual Studio 2008
- 14. Création d'une bibliothèque WPF dans Visual Studio Express
- 15. Comportement étrange de Visual Studio lors de la création du package d'installation Windows
- 16. Comment obtenir des modèles Windows Workflow dans Visual Studio 2008?
- 17. Quelle est la meilleure façon de déboguer un programme de service Windows dans Visual Studio 2008
- 18. Installation d'un service Windows à partir d'un projet Visual Studio Installer
- 19. Problème lors de l'installation de Visual Studio Service Pack sous Windows 7
- 20. Windows 7 XP Mode et Visual Studio 2003
- 21. Extensibilité Visual Studio, création par programme d'un projet
- 22. Visual Studio: Création conditionnelle de raccourcis dans le projet d'installation?
- 23. Visual Studio 2010 Création et installation de modèles
- 24. Erreur lors de la création de tests dans Visual Studio
- 25. Raccourcis Windows sans chemin
- 26. Comment puis-je obtenir Visual Studio 2008 pour Windows 9x?
- 27. Visual Studio 2008: comment consommer ou appeler un service Web?
- 28. Ruban Barre d'outils et Visual Studio 2008 Service Pack 1
- 29. Visual Studio 2008 Publish échoue
- 30. Visual Studio Setup et build déploiement échoue sans erreur