Accueil > > > WINDOWS NT SERVICES
WINDOWS NT SERVICES
Information sur la source
Description
ANSI C Windows NT Services API Encapsulation (WinServices Library v1.6.0) Cette librairie est une encapsulation complète de l'API de services Microsoft Windows NT (NT4, 2k, 2000 and Vista). Dorénavant disponible sur SourceForge.net : http://sourceforge.net/projects/ntwinserv
Source
- ==> SOMMAIRE *******************************************************************
-
- 1. DESCRIPTION
- 2. IMPLEMENTATION DE SERVICES
- 3. CONTROLE DE SERVICES
- 4. CONTACT
-
-
- ==> 1. DESCRIPTION ****************************************************************
-
- > IMPLEMENTATION DE SERVICES
-
- * Encapsulation quasi complète de l'API windows de services
- * full customization via callback
- * embeddable dans une Dll
- * full logging support (via Windows events logs)
- * convertit toute application C/C++ en service Windows NT
-
- > CONTROLE DE SERVICES
-
- * installation, modification, suppression
- * start, stop, pause, redémarrage de service
- * vérification du status d'un service
- * listage de services
- * Informations complètes sur un service
- * gestion des dépendances
- * gestions des services sur des machines distantes
-
- > MISC.
-
- * ansi / unicode support
-
- ==> 2. SERVICE IMPLEMENTATION *************************************************
-
- Pour implémenter un service, il suffit juste de fournir une fonction de traitement !
-
- Exemple :
-
-
- #include <NTService.h>
-
- void WINAPI MyServiceMain()
- {
- while (!ServiceIsTerminated())
- {
- if (ServiceGetCurrentStatus() == SERVICE_RUNNING)
- {
- /* code application */
- /* ... */
- }
-
- ServiceSleep(1000);
- }
- }
-
- int main(int argc, char** argv)
- {
- return ServiceRun("MyServiceName", MyServiceMain, 1000, SERVICE_ACCEPT_STOP);
- }
-
- Pour plus de contrôle et/ou information sur le service et ses évènements, il est possible de fournir une fonction callback
-
- Exemple :
-
- DWORD WINAPI MyServiceCallback(DWORD dwEvent, DWORD dwState)
- {
- switch (dwEvent)
- {
- case SE_INSTALL:
- if (dwState == SS_SUCCESS)
- ServiceLog(EVENTLOG_INFORMATION_TYPE, _T("Installation ok"));
- break;
- case SE_DELETE:
- if (dwState == SS_SUCCESS)
- ServiceLog(EVENTLOG_INFORMATION_TYPE, _T("Uninstallation ok"));
- break;
- case SE_START:
- /*...*/
- break;
- case SE_STOP:
- /*...*/
- break;
- case SE_PAUSE:
- /*...*/
- break;
- case SE_CONTINUE:
- /*...*/
- break;
- case SE_CUSTOM:
- return ServiceLog(EVENTLOG_INFORMATION_TYPE, _T("Event %s - Status %s"), dwEvent, dwState);
- }
-
- return SS_SUCCESS;
- }
-
- Pour utiliser le logging par défaut dans le journal système de windows, il faut inclure les fichiers NTEventLog.xxx à votre projet
-
- ==> 3. IMPLEMENTATION DE SERVICES ********************************************************
-
- La librarie fournit toute les fonctions nécessaires pour contrôler des services en local ou distants.
-
- Exemple pour lister les services en local :
-
- LPSERVICE_ITEM list = LocalServiceGetList(SERVICE_WIN32, SERVICE_STATE_ALL, &count);
-
- for (i = 0; i < count; i++)
- {
- printf(list[i].lpDisplayName);
- printf(list[i].lpServiceName);
-
- LPSERVICE_INFO info = LocalServiceGetInfo();
-
- if (info)
- {
- printf(info->lpBinaryPathName);
- printf(info->lpDescription);
- printf(info->lpServiceStartName);
-
- ServiceFreePointer(info);
- }
- }
-
- ==> 4. CONTACT ****************************************************************
-
- Pour toute remarque, commentaire, bug, contactez moi :
-
- vince_rogier@yahoo.fr
-
-
- Have fun !!!
-
==> SOMMAIRE *******************************************************************
1. DESCRIPTION
2. IMPLEMENTATION DE SERVICES
3. CONTROLE DE SERVICES
4. CONTACT
==> 1. DESCRIPTION ****************************************************************
> IMPLEMENTATION DE SERVICES
* Encapsulation quasi complète de l'API windows de services
* full customization via callback
* embeddable dans une Dll
* full logging support (via Windows events logs)
* convertit toute application C/C++ en service Windows NT
> CONTROLE DE SERVICES
* installation, modification, suppression
* start, stop, pause, redémarrage de service
* vérification du status d'un service
* listage de services
* Informations complètes sur un service
* gestion des dépendances
* gestions des services sur des machines distantes
> MISC.
* ansi / unicode support
==> 2. SERVICE IMPLEMENTATION *************************************************
Pour implémenter un service, il suffit juste de fournir une fonction de traitement !
Exemple :
#include <NTService.h>
void WINAPI MyServiceMain()
{
while (!ServiceIsTerminated())
{
if (ServiceGetCurrentStatus() == SERVICE_RUNNING)
{
/* code application */
/* ... */
}
ServiceSleep(1000);
}
}
int main(int argc, char** argv)
{
return ServiceRun("MyServiceName", MyServiceMain, 1000, SERVICE_ACCEPT_STOP);
}
Pour plus de contrôle et/ou information sur le service et ses évènements, il est possible de fournir une fonction callback
Exemple :
DWORD WINAPI MyServiceCallback(DWORD dwEvent, DWORD dwState)
{
switch (dwEvent)
{
case SE_INSTALL:
if (dwState == SS_SUCCESS)
ServiceLog(EVENTLOG_INFORMATION_TYPE, _T("Installation ok"));
break;
case SE_DELETE:
if (dwState == SS_SUCCESS)
ServiceLog(EVENTLOG_INFORMATION_TYPE, _T("Uninstallation ok"));
break;
case SE_START:
/*...*/
break;
case SE_STOP:
/*...*/
break;
case SE_PAUSE:
/*...*/
break;
case SE_CONTINUE:
/*...*/
break;
case SE_CUSTOM:
return ServiceLog(EVENTLOG_INFORMATION_TYPE, _T("Event %s - Status %s"), dwEvent, dwState);
}
return SS_SUCCESS;
}
Pour utiliser le logging par défaut dans le journal système de windows, il faut inclure les fichiers NTEventLog.xxx à votre projet
==> 3. IMPLEMENTATION DE SERVICES ********************************************************
La librarie fournit toute les fonctions nécessaires pour contrôler des services en local ou distants.
Exemple pour lister les services en local :
LPSERVICE_ITEM list = LocalServiceGetList(SERVICE_WIN32, SERVICE_STATE_ALL, &count);
for (i = 0; i < count; i++)
{
printf(list[i].lpDisplayName);
printf(list[i].lpServiceName);
LPSERVICE_INFO info = LocalServiceGetInfo();
if (info)
{
printf(info->lpBinaryPathName);
printf(info->lpDescription);
printf(info->lpServiceStartName);
ServiceFreePointer(info);
}
}
==> 4. CONTACT ****************************************************************
Pour toute remarque, commentaire, bug, contactez moi :
vince_rogier@yahoo.fr
Have fun !!!
Conclusion
Des projets exemples VC++6 et VS2005 sont fournis... De plus, pour une fois c'est du bon vieux C et non des classes C++...
Historique
- 03 juin 2007 19:28:54 :
- Ajout code exemple en ligne
- 03 juin 2007 19:36:11 :
- .
- 03 juin 2007 19:42:27 :
- .
- 03 juin 2007 19:46:56 :
- .
- 03 juin 2007 19:47:44 :
- .
- 03 juin 2007 19:49:53 :
- .
- 03 juin 2007 20:15:30 :
- .
- 03 juin 2007 20:25:17 :
- .
- 03 juin 2007 20:26:42 :
- .
- 03 juin 2007 20:27:15 :
- .
- 03 juin 2007 20:39:09 :
- .
- 04 juin 2007 22:31:16 :
- Ajout fonction ServiceGetList : récupere la liste de tous les sercvice d'un machine
Ajour fonction ServiceGetInfo : met à jout la config d'un service
Remplacement ServiceModify par ServiceSetInfo : récupère la config d'un service
Ajout de un paramètre sur les fonctions ServiceStop et ServiceRestart
Correction gestion des dependances lors de l'arrêt d'un service
Mis à jour du projet de test avec quelques fonctions de test
...
- 04 juin 2007 22:34:52 :
- Désolé, les retours chariot ont sauté...
- 05 juin 2007 07:09:35 :
- Correction d'un appel de fonction
- 24 juillet 2007 19:10:36 :
- modification des mots clés
- 30 août 2007 22:26:53 :
- Important remodelage de la librairie !
2007/08/12 : v1.3 - added debug support, custom msg file, remove remote macros
2007/08/20 : v1.4 - added GPL license
2007/08/27 : v1.5 - API modifications
- 30 août 2007 22:33:59 :
- .
- 30 août 2007 22:36:20 :
- Désolé pour l'indentation du texte, ca marche pô !
2007/08/12 : v1.3 - added debug support, custom msg file, remove remote macros
2007/08/30 : v1.4 - added GPL license
2007/08/27 : v1.5 - API modifications
- 30 août 2007 22:43:29 :
- .
- 02 septembre 2007 10:09:20 :
- text indentation
- 07 septembre 2007 09:12:36 :
- v1.6 : correction de 3 bugs génants dans la gestion de l'EventLog (installation et logging) et dans la gestion des events du callback.
- 21 octobre 2007 18:11:17 :
- la librairie est dorénavant hébergée sur SourceForge.net.
URL : http://sourceforge.net/projects/ntwinserv
- 21 octobre 2007 18:14:42 :
- Cette librairie est dorénavant hébergée sur SourceForge.net
URL : http://sourceforge.net/projects/ntwinserv
Pour ceux qui codent en C et bossent avec Oracle, visitez aussi :
http://sourceforge.net/projects/orclib
- 01 novembre 2007 09:59:33 :
- mise à jour du lien + mise à jour zip
- 01 novembre 2007 10:00:47 :
- mise à jour lien + modif zip (aucune modif du code)
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Forcer le démarage d'un service Windows [ par Djpoops ]
Boujour,J'utilise un logiciel de monitoring réseau et il y a 2 modules distincts. Ceux-ci sont reconnus comme services Windows et sont en dé
Affichage d'un message par un service NT [ par sephiro ]
Bonjour,J'ai un petit probleme, j'ai écris un service NT dans les grandes lignes il attend sur un port pour mettre à disposition des informations , ce
borland 4.5 sous windows NT [ par rems38 ]
Bonjour,j'aimerais savoir si quelqu'un adeja utiliser borland 4.5 sous windows NT. Je n'ai aucun probleme pour la compilation ni pour executer mon pro
Clé de registre d'un service NT [ par arvymetal ]
Bonjour,J'ai crée un service NT qui fait tourner une application Win32, et je souhaiterais enregistrer les paramètres liés à cette
librairie de gestion des Services Windows [ par zedoo ]
bonjour, je suis a la recherche d'une lib me permettant de demarrer ou de stopper des Services Windows. j ai trouve la Class ServiceController mais qu
installation de postgreSQL [ par sapsap2 ]
bonjour,j'essai d'installer postgreSQl; version windows; mais à chaque fois j'ai de message:"Le service 'Secondary Logon ' n'est pas pas en cours
Mettre un programme comme service windows [ par atifelkhachine ]
Salut les amis.j veux savoir comment lancer mon programme comme service windows.
Création "Service Windows" en C++ sous visual Studio .NET [ par lherderien ]
Bonjour a tous, Je suis confronté à un problème de développement de service windows. J'ai développé un programme en C++
Service NT + Release = Bug lors de l'arret ! HELP ! [ par MV34 ]
Bonjour,J'ai un petit problème que je n'arrive pas à corriger !Voilà j'ai implémenté un programme sous forme de service Windo
démarrage automatique d'un service windows [ par boutonk ]
Bonjour,J'ai développé un service windows en c++ sous .Net et j'aimerais trouvé une solution pour que ce service fonctionne seulement l
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|