begin process at 2012 02 13 13:21:23
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

 > GESTIONNAIRE DE SERVICES WINDOWS

GESTIONNAIRE DE SERVICES WINDOWS


 Information sur la source

Note :
Aucune note
Catégorie :Système Classé sous :service, windows, driver, openscmanager, enumservicesstatus Niveau :Débutant Date de création :26/01/2008 Date de mise à jour :06/02/2008 22:51:55 Vu / téléchargé :7 280 / 338

Auteur : draluorg

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Voici un petit gestionnaire de services, il permet de creer, supprimer ou modifier un service, mais aussi de le demarrer ou l'arreter.

Il permet egalement d'editer facilement les dependances.
J'ai aussi mis une enumeration des services et des groupes pour faciliter la saisie.

J'ai bien vu qu'il y avait deja des sources traitant du sujet mais dans un style completement different.




 Conclusion

Il n'est pas complet, s'il vous manque des fonctions, je verrai pour les ajouter...


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

27 janvier 2008 22:40:22 :
...
06 février 2008 22:51:55 :
...

 Sources du même auteur

Source avec Zip ENUMERER LES PARTITIONS SUR PERIFERIQUE USB

 Sources de la même categorie

Source avec Zip Source avec une capture UNE LISTE HÉTÉROGÈNE DOUBLEMENT CHAINÉE par pgl10
Source avec Zip Source avec une capture POUR AFFICHER LES CARACTÈRES ACCENTUÉS SOUS WINDOWS EN MODE ... par pgl10
Source avec Zip PETITE CLASSE DE GESTION DES PROCESSUS SOUS WINDOWS par wisar
Source avec Zip KEYLOGGER AVEC NOM DU PROCESSUS ET DE LA FENETRE QUI A LE FO... par wisar
Source avec Zip LINUX USB BOOT LEGER par patatalo

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture POUR AFFICHER LES CARACTÈRES ACCENTUÉS SOUS WINDOWS EN MODE ... par pgl10
Source avec Zip Source avec une capture SOKOBAN EN C POUR DÉBUTANT (VERSION AMÉLIORÉE BASÉE SUR LE T... par eustatika
Source avec Zip [MYLIB] GESTION DE FICHIERS par Galaad2908
Source avec Zip WINDOWS NT SERVICES par vicenzo
ARRETER LE SERVICE 'CONFIGURATION AUTO SANS-FIL' POUR EVITER... par alextm

Commentaires et avis

Commentaire de vicenzo le 27/01/2008 09:31:53

Remarques suite à tentative de compilation du code :

Erreurs bloquantes :

=> line 0062 : Dépassement de capacité

char szPrePath[4] = "\\??\\";  // -> devrait être szPrePath[5]

=> line 0230 : il faut caster pSvcInfo->szDepends en LPBYTE

RegQueryValueExA(hKey, szDepGrp, NULL, NULL, (LPBYTE) (pSvcInfo->szDepends+dwPos), &dwRet);

=> line 0503 : il faut caster buff en LPBYTE

RegQueryValueExA(hKey, szGrpVal, NULL, NULL, (LPBYTE) buff, &dwRet);

Erreurs très génantes :

=> line 0510 : la variable 'buff' passée à HeapFree() peut ne pas être initialisée et donc avoir une valeur non déterminée
=> line 0510 : la variable 'ItemLen' buff peut ne pas être initialisée et donc avoir une valeur non déterminée

Remarques non bloquantes :

=> line 0139 : variable 'i' non référencée
=> line 0772 : variable 'dwStatus' non référencée

Remarque fonctionnelle :

Dans la liste des services, il serait plus pratique d'avoir le display name et non pas le nom du service. Car si je veux démarrer par exemple La recherche Windows, faut que je me tape le gestionnaire de services Windows pour trouver le nom du service et ensuite venir dans cet appli... Donc ce détail à mon sens faire perdre l'interêt que peut avoir cette appli.

Sinon, j'ai pas encore le temps de voir en détail le reste...

Bon courage !

Commentaire de draluorg le 27/01/2008 13:41:18

tiens bizarre j'ai pas le moindre warning de mon cote!

Tu compile avec quoi?

Commentaire de vicenzo le 27/01/2008 14:28:02

Je compile avec VS2005.

Les erreurs bloquantes quelque soit les options du compilo.

Les autres avec warnings de niveau 4.

Dans tous les cas, il y a trois soucis pouvant conduire à des bugs (déclaration de szPrePath erronée et les variables non initialisées qui peuvent induire des plantages.)

Tu devrais revoir les réglages de ton compilo !!

Commentaire de draluorg le 27/01/2008 14:50:20

yep pour les reglages du compilo, ce sont ceux par defaut...

Pour szPrePath, aucun soucis je n'utilise que les 4 premiers octets...

Pour la var buff non initialisee, c'est un ptit oubli, mais y a quand meme extremement peu de chance pour que ca cause un bug, car HeapAlloc reverra une valeur de retour dans tous les cas.

Quoi qu'il en soit je corrigerai ca mais je vais attendre de voir s'il y a d'autres erreur pour pas faire un maj pour changer 3 lettres...

++

Commentaire de vicenzo le 27/01/2008 15:03:45

>> Pour szPrePath, aucun soucis je n'utilise que les 4 premiers octets...

Pour toi peut être, sauf que tout le monde ne pourra pas compiler ton code sans avoir à le modifier. Ors tu postes une source pour la partager ! C'est peut être bon pour toi mais primo l'initialisation de szPrePath est fausse, et ensuite y a en certains qui quand ils recupèrent une source et que cela ne compile pas, ils jettent la source à la poubelle. Ma fois c'est toi qui voit !

>> Pour la var buff non initialisee, c'est un ptit oubli, mais y a quand meme extremement peu de chance pour que ca cause un bug, car HeapAlloc reverra une valeur de retour dans tous les cas.

Tétu le monsieur ! Si RegQueryValueExA() à la ligne 498 retourne 0 (on sen sait jamais),
HeapAlloc() n'est donc pas appelé et donc HeapFree() se retoruve avec un buff avec un valeur indéfinie. 99 % de plantage assuré dans ce cas

Sinon, je te déconseille d'explicitement utiliser les fonctions Win32 directement dans leur version xxxA() ou xxxW() mais la forme xxx() car ton code en sera plus générique.
De plus, il sera compilable en ANSI/Unicode si tu utilise des TCHAR au lieu des char par exemple...

Commentaire de draluorg le 27/01/2008 15:32:33

Erf, pas besoin de s'emballer, pour HeapFree je l'ai juste mis une ligne trop bas par distraction, si elle etait dans le if (dwRet >0) aucun soucis...

Pour ceux qui jette un code pour si peu, bah c'est a eux de voir pas a moi.

Pour le code generique, qui a dit que je voulais du generique? Non plus serieusement j'utilise les versions xxA des api pcq sinon l'editeur ne m'affiche pas les parametres en infobulle mais seulement  "#define RegOpenKeyEx RegOpenKeyExA" ce qui n'est pas tres pratique!

Dans tous les cas, j'ai bien dit que j'allais corriger donc y a pas de je suis tetu mais juste pas envie de reuploader toutes les 5 minutes. Et je precise quand meme que le code est fonctionnel et que rien n'empeche reellement la compil si ce n'est tes reglages compilos.
Je viens de tester sur une instal fraiche de vs en vm et ca a compiler direct dans le moindre warning...

Voila des que j'ai une minute je up les corrections
++

Commentaire de vicenzo le 27/01/2008 15:46:31

Je ne m'emballe pas ! je dis seulement qu'il est mieux d'avoir un code propre. C'est tout.

Par contre, c'est quoi ton éditeur ?

Car tu fournis un projet VS et j'utise les outils MS depuis VC5 (donc VC5, VC6, VC2003 et VS2005) et ils m'ont toujours mis les infos bulles sur les versions "génériques" des api Windows.

Tu as quelle version de VS ? car pour moi (VS professional complet), il était impossible de compiler ton code originel !

enfin, je t'ai pas dis qu'il faut uploader toute les 5 minutes, je fais seulement des remarques pour améliorer ton code.... T'es pas obligé de le corrgier dnas la minute ! C'est dimanche, tout de même !


Pour le tetu, c'était seulement pour le

Commentaire de vicenzo le 27/01/2008 15:51:50

suite du précédent....

"...fait que fournir un pointeur dans les choux à HeapFree() c'est pas "pas grave" mais dangeureux... Toujour être sur qu'un pointeur a été initialisé dans le code avant d'appeler une fonction de libération".

Cela dit, c'est mon VS2005 qui me l'a signalé car ayant survolé le code, je ne l'avais vu...

Donc, un conseil (surtout quant tu diffuses du code), compile un coup avant avec un niveau de warning 3 ou 4. Cela permet de détecter des choses que l'on n'a pas vu ...

Bon courage.

Commentaire de draluorg le 27/01/2008 16:05:14

re,

eh wai je pense qu'on sait mal compris.
Je trouve tes remarques tres pertinentes, j'ai juste voulu relativiser un peu en soulignant le fait que dans l'immediat ca n'empechait pas le bon deroulement du code.

Ce sont pour moi des details certe non negligeable mais qui ne necessite pas necessairement une maj d'urgence.

Pour la version de VS, j'ai la meme que toi si ce n'est qu'elle est mise a jour pour vista, c'est donc un hybride 2005-2008.
Je vais voir pour le niveau de warning (jamais regardé)

++

Commentaire de gamemonde le 27/01/2008 16:26:03

petite information moi aussi j'ai une erreur et c'est normal quelle la donne .
normalement aucun compilateur ne laisse passé cette erreur . j'ai aussi les warnings
et 2 erreurs de cast.  il est vrai que si j'étais encore débutent en voyant ton code je l'aurais mis a la poubelle on s'attend a un code sans erreur .

allez bonne continuation mais je te conseil de corrigé les erreurs car brunews aime pas les sources buggé

Commentaire de vecchio56 le 27/01/2008 18:20:10 administrateur CS

- En compilation en mode C, on n'a pas d'erreur (mais le fichier a une extension .cpp donc la compilation en C n'est pas logique)
- Pour szPrePath ce serait absurde de déclarer 5 caractères. Le plus simple est donc:
char szPrePath[4] = {'\\', '?', '?', '\\'};

Commentaire de draluorg le 27/01/2008 22:42:32

Voila c'est corrigé...

<En compilation en mode C, on n'a pas d'erreur (mais le fichier a une extension .cpp donc la compilation en C n'est pas logique)> erf wai je comprends mieux now, en effet il faut compiler en C.

Merci pour vos commentaires
++

Commentaire de vicenzo le 27/01/2008 22:48:15

Hum, nne dernière remarque pour la route !

tu dis "en effet il faut compiler en C. "...

Dans ce cas, fournis un svcmanager.c et non par un svcmanager.cpp

Faut rester cohérent *.c => c, *.cpp =>c++

Aller, j'vais prendre mes pillules !!

A+

Commentaire de draluorg le 27/01/2008 23:03:30

wai je te l'accorde,

Ceci vient du fait que j'utilise le generateur de template de BruNews qui par genere un fichier .cpp pour un projet Cdlg. Je sais pas si c'est voulu ou si c'est une erreur de sa part.

Enfin bref, je comprends la confusion et je remplacerai ca aussi.

++

Commentaire de BruNews le 30/01/2008 14:55:00 administrateur CS

C'est voulu, compatible pour du C et du C++ sans me burner à gérer cela dans le code du générateur..
Faut illico renommer en c le 1er fichier au lieu de cpp, se fait en 2 clics dans explorateur de solutions de VC++.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

passer un programme en "windows service" cbuilder [ par Sloft ] Comment faire pour faire passer un programme en "windows service" sous c++builder 5, merci ! service windows [ par lysane ] j'ai crée un exe qui doit tourner en permanance sur une machine , on m'a conseillé de la déclarer comme service windows mais je ne sais pas comment fa Comment lancer son appli (VC++6) en tant que service windows? [ par tad20 ] Tout est ds le titremon appli est serveur développer en VC6 mais je ne sais pas comment le déclarer en tant que service windows! Merci regsvr32 et runtime VC [ par fenrhyr ] Bonjour, Je viens de télécharger le driver directX pour ma carte d'aquisition vide picolo. Je l'ai installé dans le répertoire C:\WINDOWS\system32 . P service windows [ par lilington ] salut j'ai fait un prog qui change le papier paint sous XP&nbsp; malheureusement je dois redemarer ma machine &#224; chaque fois pour que le changeme driver sous windows [ par punch95 ] j'ai besoin d'un exemple de driver sous windows car je veux faire un driver pour une liaison i2c merci de me l'envoyer .oliviervernet95@hotmail.com Dévelopement modem logiciel - Driver Windows - Help please [ par lherderien ] Bonjour je ne suis pas tr&#232;s exp&#233;riment&#233; en programmation syst&#232;me windows et je dois d&#233;velopper un modem logiciel. (arr&#234;t Forcer le démarage d'un service Windows [ par Djpoops ] Boujour,J'utilise un logiciel de monitoring r&#233;seau et il y a 2 modules distincts. Ceux-ci sont reconnus comme services Windows et sont en d&#233; installation de postgreSQL [ par sapsap2 ] bonjour,j'essai d'installer postgreSQl; version windows; mais &#224; 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.


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 9,547 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales