Extinction et redemarrage de votre moniteur à une heure précise

Description

J'ai été amené à effectuer dans le cadre d'un stage une application permettant l?extinction d?un moniteur à une heure précise, puis son redémarrage.
Ex :
Il est 12:00:00, je décide que mon moniteur doit s?éteindre à 18:00:00 et devra se rallumer le lendemain à 8:00:00.
C?est mon premier code depuis 3 ans, donc il est forcement perfectible.
Ecrit en C avec Dev-C++ 4.9.9.2 et fonctionne parfaitement.
Ps. : C?est un programme économe.

Source / Exemple :


#include <windows.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h> 

//Extinction et redemarrage d'un moniteur aux heures définit.
//Pour plus d'information sur ce code : kindlyss@hotmail.com

int main(int argc, char *argv[])
{
 long rep; //Reponse boucle operateur
 long h1,m1,s1;
 long h2,m2,s2;
 long h3,m3,s3;
 long somme1,somme2,somme3;
 long hte,mte,ste; 
 long htr,mtr,str;
 long total,total1;
 long ext,red; //Variable de du temps avant l'extinction et avant le redemarrage
 
 	do/*boucle opérateur*/

     {
 
// DEB PROGRAMME------------------------------------------------------------------------
   printf(" --------------------------------------------");
   printf("\n|           Logiciel Moniteur : OFF/ON       |");
   printf("\n --------------------------------------------");
 
 
 h1=0,m1=0,s1=0;
 
 //Heure actuel 
      printf("\n\nQuel heure est-il ? [Format HH/MM/SS] : ");
      scanf("%ld/%ld/%ld",&h1,&m1,&s1);
      
      somme1=3600*h1;
      somme1=somme1+(60*m1);
      somme1=somme1+s1;
      
      printf("\nIl est donc %ldh %ldm et %lds",h1,m1,s1);
      
 h2=0,m2=0,s2;            
 //heure d'extinction des moniteurs
      printf("\n\nA quel heure voulez-vous eteindre les moniteurs ? [Format HH/MM/SS] : ");
      scanf("%ld/%ld/%ld",&h2,&m2,&s2);
        
      somme2=3600*h2;
      somme2=somme2+(60*m2);
      somme2=somme2+s2;
      
      
      printf("\nVous voulez donc eteindre les moniteurs a %ldh %ldm et %lds",h2,m2,s2);

 h3=0,m3=0,s3;
 //heure de redemarrage des moniteurs
      printf("\n\nA quel heure voulez-vous redemarrer les moniteurs ? [Format HH/MM/SS] : ");
      scanf("%ld/%ld/%ld",&h3,&m3,&s3);
      
      somme3=3600*h3;
      somme3=somme3+(60*m3);
      somme3=somme3+s3;
      
      printf("\nVous voulez donc redemarrer les moniteurs a %ldh %ldm et %lds",h3,m3,s3);
      Sleep(2000);
 
 
 //temps avant extinction des moniteurs
 total=0;
 total=somme1-somme2;

		if (total < 0)

			total = total * (-1);
			
        ext=total*1000;
        
/*heure*/ hte=0;
		while(total>=3600)
		 {
		  total=total-3600;
            hte=hte+1;
		 }
   
/*minutes*/ mte=0;
		while (total>=60)
		 {
		  total=total-60;
            mte=mte+1;
		 }
          
/*secondes*/ ste=total;

//temps avant redemarrage des moniteurs
 total1=0;
 total1=somme2-somme3;

		if (total1 < 0)

			total1 = total1 * (-1);

        red=total1*1000;

/*heure*/ htr=0;
		while(total1>=3600)
		 {
		  total1=total1-3600;
            htr=htr+1;
		 }
   
/*minutes*/ mtr=0;
		while (total1>=60)
		 {
		  total1=total1-60;
            mtr=mtr+1;
		 }
          
/*secondes*/ str=total1;

		/*affichage*/
		
		printf("\n\n------------------------------------------------");
		printf("\n------------------------------------------------");
        printf("\n\nL'extinction des moniteurs sera effectif dans: %ldh %ldmin %ldsec",hte,mte,ste);
        printf("\n\nLes ecrans redemarreront %ldh %ldmin %ldsec apres l'extinction",htr,mtr,str);
        printf("\n\n------------------------------------------------");
		printf("\n------------------------------------------------");
		
		
		
/*------- Extinction ----------*/
 Sleep(ext); //Temps avant extinction
 SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) 2); //donne l'instrution pour éteindre le moniteur

/*------- Redemarrage ----------*/
 Sleep(red); //temp avant redemarrage
 SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, (LPARAM) -1); //donne l'instrution pour rallumer le moniteur 
 
 
 // FIN PROGRAMME------------------------------------------------------------------------
 	    
    	do /*boucle opérateur reponse*/

		{

		 printf("\n\n\nVoulez-vous recommencer ? OUI (o) ou NON (n):");

		 rep=getche();

		}while (( rep!='o') && ( rep!='n' ));

	}while (rep!='n'); /*boucle opérateur sortie*/

 
}

Conclusion :


Le site CodeS-Sources m?ayant aidé lors de ma reprise du C, j?ai décidé de le publier. Qui sait, il pourrait peut être servir à quelqu?un.
+

C'est une GreenWare ;)

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.