begin process at 2012 05 27 19:34:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > [C/WIN32] SERVICE WIN, ÉTEINT LE PC APRÈS 1H D'INACTIVITÉ.

[C/WIN32] SERVICE WIN, ÉTEINT LE PC APRÈS 1H D'INACTIVITÉ.


 Information sur la source

Note :
9,4 / 10 - par 5 personnes
9,40 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :service, win, shutdown, time, services Niveau :Initié Date de création :09/11/2006 Vu / téléchargé :6 609 / 824

Auteur : deck_bsd

Ecrire un message privé
Site perso
Commentaire sur cette source (23)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Yop,


Et bien voila, ceci est un service win32 qui, après 1 heure d'inactivité, rédemarre le pc. Vous aller me dire, un prog l'aurai bien fait, mais voila, l'avantage d'un service est qu'il démarre au démarrage de windows et non à l'ouverture de la session comme les programmes normeaux et donc si vous vous êtes déloger et que vous avez oublier d'éteindre le pc, il s'éteindra tout seul, ... . Enfin bref

Le service est règlé sur 1 heure, donc à désactiver lors de la vision d'un film ;). Libre à vous de changer l'échéance. a la base je voulai permettre à l'utilisateur de choise, mais les codes étant dans des exes différents, je ne sais comment communiquer entre eux. Si quelqu'un à une idée.

Source

  • /* Voir dans le zip. */
/* Voir dans le zip. */

 Conclusion

Toute remarques pour peut qu'elle soit constructive est la bienvenue.

 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


 Sources du même auteur

Source avec Zip Source avec une capture [C/WIN32][DRIVER] DÉTECTION DE CRÉATION OU DE SUPPRESSION DE...
Source avec Zip Source avec une capture [C/WIN32] INJECTION DE DLL 2 MÉTHODES (REMOTETHREAD PROPRE &...
Source avec Zip Source avec une capture [C/WIN32][VISTA] EXEMPLE D'UTILISATION DES TRANSACTIONS.
Source avec Zip Source avec une capture [C/WIN32] GÉNÉRATEUR DE CODE POUR UNE INITIALISATION SPÉCIAL...
Source avec Zip Source avec une capture [C/WIN32] AFFICHE TOUT LES LIENS D'UNE PAGE (X)HTML.

 Sources de la même categorie

Source avec Zip WIN32 TLS LENT par dguilmain
Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64) par BruNews
Source avec Zip Source avec une capture FIND TEXT (WIN64) par BruNews
Source avec Zip DELETE DIRECTORY (WIN64) par BruNews
Source avec Zip ENUM DIRECTORY (WIN64) par BruNews

 Sources en rapport avec celle ci

DATETIMECONVERTER par guill76
Source avec Zip Source avec une capture SERVICE WINDOWS DANS UNE DLL LANCÉ PAR SVCHOST.EXE par racpp
Source avec Zip Source avec une capture GESTIONNAIRE DE SERVICES WINDOWS par draluorg
Source avec Zip MONTRE DIGITALE par sahbi_saied
Source avec Zip WINDOWS NT SERVICES par vicenzo

Commentaires et avis

Commentaire de Ombitious_Developper le 09/11/2006 20:04:02

Salut:

Voilà enfin une source claire, courte et efficace pour apprendre à créer un service Windows.

Merci ça me servira de petite lesson ...

Commentaire de Ombitious_Developper le 09/11/2006 20:05:35

Salut:

7/10 ça me parait bien mérité

Commentaire de racpp le 09/11/2006 21:43:25 administrateur CS

Salut,
L'idée est très bonne.
Tu n'as pas besoin d'un autre EXE pour permettre à l'utilisateur de désactiver ou réactiver le compte à rebours. Ton service pourra interagir avec le bureau si tu ajoutes le flag SERVICE_INTERACTIVE_PROCESS comme 5e paramètre de CreateService(). Ainsi tu mettras une icone dans le systray avec un menu contextuel permettant d'activer ou désactiver la temporisation. Pas besoin de désactiver le service car une seule variable BOOL dont la valeur dépend du choix de l'utilisateur suffit pour que le service décide d'arrêter le PC ou non. Tu peux même ajouter une petite boite de dialogue permattant de choisir la durée d'attente avant extinction du PC. Ce qui aura également l'avantage de te permettre d'utiliser un Timer Windows en recevant WM_TIMER dans la procédure de la boite de dialogue.
Ce ne sont que des suggestions. A toi de voir.
Bonne continuation.

Commentaire de Ombitious_Developper le 09/11/2006 22:33:33

Salut:

Vraimant, j'étais injuste avec toi 7 c'est trop peu.
Lorsque j'ai pris mon temps pour lire ton code, j'ai sû que tu mérite un 10.
Comment faire pour donner une nouvelle note?

Commentaire de racpp le 09/11/2006 22:46:57 administrateur CS

Ombitious_developper >> Je vais supprimer ton 7 pour que tu puisses renoter.

Commentaire de racpp le 09/11/2006 22:48:29 administrateur CS

Je pense que tu peux maintenant donner une nouvelle note.

Commentaire de Ombitious_Developper le 09/11/2006 22:49:52

Merci RACPP...

Commentaire de Arnaud16022 le 11/11/2006 18:19:45

petite idée comme ça : désactiver la coupure quand fullscreen.
l'inactivité, c'est souris, clavier ou les 2 ? et les joysticks ? ou alors tu utilises une fonction toute faite ?
RACPP -> point de vue apprentissage et programmation l'idée est bonne. cependant je suis heureux que Apache n'ai pas eu cette idée, mon systray est déjà assez blindé comme ça. Mais encore une fois c'est une bonne idée en soi ^^

Commentaire de racpp le 12/11/2006 10:18:15 administrateur CS

Arnaud16022 >> Pour un service qui demanderait l'intervention de l'utilisateur, on n'a que deux choix. L'icone dans le systray ou une combinaison de touches du clavier. Cette dernière solution nécessite un hook. Beaucoup de logiciels utilisent les deux solutions. Cela permet par exemple d'afficher la boite de dialogue de paramétrage. Il est vrai que ce n'est pas bien de trop charger le systray mais parfois on ne peut pas faire autrement.

Commentaire de Arnaud16022 le 12/11/2006 13:25:32

pas d'accord ... FileZilla server démarre en service, et si tu veux l'administrer , tu lances l'interface graphique ... et tu la fermes quand tu n'en as plus besoin

Commentaire de deck_bsd le 12/11/2006 17:23:36

RACPP : Je le pensai aussi que j'avai pas besoin d'un autre exe, mais Arnotic ma dit le contraire :s . et aussi mon exe de control ne sert pas a arreter ou non le service, mais bien à l'installé ou le désinstaller. Le service -> gestionnaire de service win ;) . Mais effec je voulai permetre a l'utilisateur d'entrez un temps avant l'installation du service. Je ne cherche pas à dialoguer avec lui après car, le but est justement qu'il fasse tout automatiquement. Je ne sais si tu ma compris lol ;).

Merci de tes conseils, je vai voir tout ça :D

Commentaire de Mr.X le 13/11/2006 08:43:46

salut j'ai peut-être regarder trop rapidement le code mais :
     while(*c != '\\')c--;

     *++c = 0;

     lstrcat(szServPath,"SHUTD.exe");
sa serais pas plutôt
     lstrcat(szServPath, c); ?
Parce que la si on change le nom de l'exe c'est foutu.
Une petite idée sa pourrai être de mettre des paramètre dans InstallService(), sa rend les fonctions plus modulaire et nous permet de réutiliser la fonction dans nos programmes ^^
Sinon c'est intéréssant, bonne source 7/10

Commentaire de racpp le 13/11/2006 14:04:21 administrateur CS

Salut,
Arnaud16022 >> Moi je parle d'un service autonome à 100%, c'est à dire sans application externe. Dans l'exemple de FileZilla il parait que le service n'est qu'un élément de l'application. Le serveur étant le seul élément ayant besoin d'être lancé comme service. Il est en effet primordial de ne pas trop charger un service donc de le limiter au strict minimum. Dans les cas comme ce code source, on peut ajouter l'icone du systray, le menu contextuel et la boite de dialogue de paramétrage. Ca ne pose aucun problème.
Deck_Bsd >> Pour installer ou désinstaller le service, un autre exe est nécessaire pour éviter l'installation manuelle. Ton service peut démarrer avec une valeur par défaut inscrite dans la base de registres. Cette valeur sera ensuite modifiable par l'utilisateur autant de fois qu'il le désire. Pendant le fonctionnement du  service, cette valeur sera contenu dans une simple variable.

Commentaire de deck_bsd le 13/11/2006 17:14:41

Pas bête l'utilisation de la base de registre. Je m'en vai faire ça ;) , mais alors il faudra que à chaque vérification ( donc tout les secondes ) il aie lire le contenu de la key. Mais c'est pas bête :D

Commentaire de racpp le 13/11/2006 17:30:22 administrateur CS

La lecture de la base de registres se fera seulement au lancement du service. L'enregistrement d'une nouvelle valeur se fera juste après la modification. Le service n'aura pas besoin de consulter la base de registres toutes les secondes car il lui suffit de regarder la variable contenant la nouvelle valeur.

Commentaire de deck_bsd le 13/11/2006 18:33:46

"L'enregistrement d'une nouvelle valeur se fera juste après la modification." Je ne comprend pas bien le sens de cette phrase, Pour que la nouvelle valeur soit utilisée , il faut bien vérifié si elle à changer. Si tu lit la registry juste au début, si tu modifie cette valeur pdt que le service tourne, la valeur ne sera pas modifié, elle le sera seulement, lors d'un relancement du service alors .

Commentaire de racpp le 13/11/2006 19:13:42 administrateur CS

Ton installateur de service crée une clé dans la base de registres. Cette clé contient la valeur par défaut. Au démarrage du service cette valeur sera chargée dans une variable. Cette variable sera utilisée par le service pour déterminer la durée du compte à rebours. Dans la boite de dialogue de changement de cette durée, on donne la nouvelle valeur. Juste après le clic sur le bouton "Ok", la variable prend cette nouvelle valeur et elle est ensuite enregistrée dans la base de registres. Cette valeur sera celle par défaut pour le prochain démarrage du service. On peut même la changer plusieurs fois pendant le fonctionnement du service.

Commentaire de deck_bsd le 13/11/2006 19:19:36

"dialogue de changement de cette durée" Ha oui ok, dans la fenêtre crée a partir du service, mais heu je n'en suis pas encore la :s ,je ne voi pas encore bien l'affaire avec une fenêtre dans le service. Mais sinon oui, j'ai compris :D

Commentaire de deck_bsd le 13/11/2006 19:24:43

Ce que je peut faire aussi, c'est dans mon programme d'install, mettre le champ de la valeur, et en mm temps il stop puis, remet en marche le service , et ainsi mon service prend en compte la nouvel valeur sans besoin de créer une boite de dialogue dans le service.

Commentaire de racpp le 13/11/2006 19:33:45 administrateur CS

Je préfère la solution de la boite de dialogue car on n'a pas besoin d'arrêter puis relancer le service. Le service sera entiérement autonome.

Commentaire de deck_bsd le 15/11/2006 15:31:43

Mr.x = aucun intéret de changez le nom de l'exe car sinon, le service forcément ne fonctionne pas. Mais ou le nom peut être un paramètre de la fonction install, pour peux que tu soit sur de dévelloper l'exe du service dans le mm dossier que le programme de controle ;).

Commentaire de magic_Nono le 21/11/2006 11:16:58

voilà quelque chose d'intéressant, je vais l'adapter pour une mise à jour réguliere d'une BD locale...

Commentaire de Masterminh le 10/06/2008 09:40:03

Bonjour,

Votre programme est vraiment très intéressant . Je voulais le testé mais hélas, quand je télécharge le .zip, il n'y a pas les fichiers .exe dedans ... Est ce que c'est normale ? je suis un nouveau sur le site. Dois-je le compiler moi même ?

Merci d'avance à ce qui peuvent me répondre.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

coder un service sous win 2000 [ par Sylfeline ] J'essaye de coder un service sous win 2000.J'ai trouvé un example ici http://www.muukka.net/programming/service.html- je tape en ligne de commande mon 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é Information sur les services [ par deck_bsd ] Bonjour / Bonsoir,Voila j'ai crée mon 1er service lol, mais j'ai deux question en suspen.- Qu'est ce que le SC manager ? Le gestionnaire de service?- Services windows [ par mohdaef ] Bonjour J'ai écrit un premier petit service pour Windows afin de comprendre le fonctionnement. J'ai une attente de connexion de socket sur port, lor c++ Manipuler les services windows [ par PriMe2302 ] Bonjour, Je voudrais stopper et désactiver des services en c++ j'ai utiliser ce code : System::ServiceProcess::ServiceController^ serviceControll lancer un exe en service depuis l'exe [ par vils74 ] Bonjour, J'ai un programme codé en Builder C++ 2009, que j'utilise grâce à l'executable généré. J'aimerais permettre aux utilisateurs de choisir depu ajout des services sur un autocom [ par kenjijunior ] Bonjours a tous je voudrais pouvoir ajouter des services sur un autocom ETD 500 de didalab mais je rencontre des difficulté avec la programmation ind time() compile avec g++ mais pas avec code blocks (windows) [ par hacker_mt ] Bonjour tout le monde, j'ai fait une classe en C++ qui utilise les fonction srand et time pour générer un nombre aléatoire dans une des méthodes de la date et time afficher en c++2008 [ par mimou89 ] slt tt le monde,j'utilise visual c++2008,et je veux afficher la date et time separée (la date dans textbox1 et time dans textbox2), j'ai fait: DateTi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 0,562 sec (3)

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