Accueil > Forum > > > > Comment faire un Timer ?
Comment faire un Timer ?
lundi 8 mars 2004 à 20:42:54 |
Comment faire un Timer ?

Guidelor
|
Bonjour à tous J'aimerais faire un prog avec Dev-C++ ,qui regarderait toutes les secondes dans le registre si l'ordi est connecté pour cela je pense que je dois utiliser un timer, mais comment le créer et l'utiliser ? D'avance merci ! :: Guidelor ::
|
|
lundi 8 mars 2004 à 21:01:06 |
Re : Comment faire un Timer ?

glipper
|
Bonjour, je ne connais pas du tout DevC++ (ou tres peu), mais en general, on utilise SetTimer il me semble.
Deux solutions pour faire marcher cette fonction je crois :
VOID CALLBACK TimerProc1(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime); .... SetTimer(hWnd,0, 1000, (TIMERPROC)TimerProc1); // dans ce cas la, ca appelle la procedure TimerProc1 toutes les secondes. ....
ou bien :
[/b] ... case WM_CREATE: { SetTimer(hWnd, WM_TIMER, 40, NULL); break; } case WM_TIMER: { ... appelé toutes les 40ms ... break; } [/b]
Voila, j'espere que ça pourra t'aider. ++ Glipper :)
|
|
lundi 8 mars 2004 à 21:16:33 |
Re : Comment faire un Timer ?

MoDDiB
|
Ou encore windows.h et timeGetTime() qui te renvoie un doucle avec le temps ecoulé depuis le lancement de lordi tu en fait un timer ^^
|
|
lundi 8 mars 2004 à 21:27:04 |
Re : Comment faire un Timer ?

glipper
|
Exact.... Voila un exemple simple d'ailleur (j'en avais un sous la main):
Tu place dans la boucle de message :
TranslateMessage (&msg) ; DispatchMessage (&msg) ; ReFresh();
Puis dans la fonction Refresh() :
static unsigned int TimeStart = timeGetTime(),TimeStop; TimeStop = timeGetTime();
if (TimeStop - TimeStart > 20) // timer de 20 ms ici { ... instruction ... TimeStart = TimeStop; }
Voila voila ;) Glipper
|
|
mercredi 10 mars 2004 à 23:22:00 |
Re : Comment faire un Timer ?

Guidelor
|
Merci pour vos réponses ! Cependant.. je suis débutant dans ce langage donc j'ai un peu de mal... Deja c koi les includes qu'il faut mettre ? ensuite serait-il possible que tu me donnes un exemple avec la premiere solution qui m'a l'air bien sympatoche ? Par exemple, pourrais-tu taper le code complet qui afficherait "\ncoucou\n" toutes les secondes ? je ne pense pas ke ce soit trop compliké et ca m'eclairecirait grandement l'affaire...
D'avance merci beaucoup pour ta reponse qui va m'etre d'une grande grande utilité !
:: Guidelor ::
|
|
jeudi 11 mars 2004 à 17:06:07 |
Re : Comment faire un Timer ?

glipper
|
Bon voila un exemple de code ... je l'ai fait avec DevC++ donc ca devrait marcher sans aucun probleme : #include <windows.h>
/* Declare Windows procedure */ LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM); /* Make the class name into a global variable */ char szClassName[ ] = "WindowsApp"; int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
{ HWND hwnd; /* This is the handle for our window */ MSG messages; /* Here messages to the application are saved */ WNDCLASSEX wincl; /* Data structure for the windowclass */
/* The Window structure */ wincl.hInstance = hThisInstance; wincl.lpszClassName = szClassName; wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */ wincl.style = CS_DBLCLKS; /* Catch double-clicks */ wincl.cbSize = sizeof(WNDCLASSEX);
/* Use default icon and mouse-pointer */ wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION); wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION); wincl.hCursor = LoadCursor(NULL, IDC_ARROW); wincl.lpszMenuName = NULL; /* No menu */ wincl.cbClsExtra = 0; /* No extra bytes after the window class */ wincl.cbWndExtra = 0; /* structure or the window instance */ /* Use light-gray as the background of the window */ wincl.hbrBackground = (HBRUSH) GetStockObject(LTGRAY_BRUSH);
/* Register the window class, if fail quit the program */ if(!RegisterClassEx(&wincl)) return 0;
/* The class is registered, let's create the program*/ hwnd = CreateWindowEx( 0, /* Extended possibilites for variation */ szClassName, /* Classname */ "Windows App", /* Title Text */ WS_OVERLAPPEDWINDOW, /* default window */ CW_USEDEFAULT, /* Windows decides the position */ CW_USEDEFAULT, /* where the window ends up on the screen */ 544, /* The programs width */ 375, /* and height in pixels */ HWND_DESKTOP, /* The window is a child-window to desktop */ NULL, /* No menu */ hThisInstance, /* Program Instance handler */ NULL /* No Window Creation data */ );
/* Make the window visible on the screen */ ShowWindow(hwnd, nFunsterStil); /* Run the message loop. It will run until GetMessage( ) returns 0 */ while(GetMessage(&messages, NULL, 0, 0)) { /* Translate virtual-key messages into character messages */ TranslateMessage(&messages); /* Send message to WindowProcedure */ DispatchMessage(&messages); }
/* The program return-value is 0 - The value that PostQuitMessage( ) gave */ return messages.wParam; }
/* This function is called by the Windows function DispatchMessage( ) */ LRESULT CALLBACK WindowProcedure(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) /* handle the messages */ { case WM_CREATE: SetTimer(hwnd, WM_TIMER, 5000, NULL); break; case WM_TIMER: MessageBox(hwnd, "coucou", "titre de la dialogbox", NULL); break; case WM_DESTROY: PostQuitMessage(0); /* send a WM_QUIT to the message queue */ break; default: /* for messages that we don't deal with */ return DefWindowProc(hwnd, message, wParam, lParam); } return 0; }
|
J'ai juste rajouté ceci dans le code de base proposé par DevC++ : case WM_CREATE: SetTimer(hwnd, WM_TIMER, 5000, NULL); break; case WM_TIMER: MessageBox(hwnd, "coucou", "titre de la dialogbox", NULL); break;
Voila. Sinon, je pense qu'il doit y avoir une multitude de sources sur cppfrance.com qui contiennent des exemples de timer... ++ Glipper
|
|
jeudi 11 mars 2004 à 19:00:04 |
Merci mais...

Guidelor
|
Merci Glipper pour ta reponse cependant ce que je demandais, ct juste un petit prog en mode console que je voulais ! vu que la j'y comprends rien du tout ! et en plus bizarement ca ne marche pa... Pourrais-tu me faire ce petit prog tant attendu, si cela est possible ? D'avance merci beaucoup !
:: Guidelor ::
|
|
samedi 13 mars 2004 à 12:53:00 |
Re : Comment faire un Timer ?

glipper
|
Excuse moi, mon code ne me paraissait pas aussi long, et avec les retour à la ligne, il est devenu incompréhensible en +. Je ne crois que les Timer soient possible en mode console. C'est à vérifier, mais il me semble qu'il est nécessaire qu'il y ait du multitache pour que l'on puisse utiliser les timer. Par contre, tu peux peut-être utiliser une boucle while pour faire ton timer, non ? Et tu te sers de l'heure pour que ton instruction s'execute qu"à interval regulier.
Ce qui pourrait se faire avec ce code la :
unsigned int TimeStart = timeGetTime(),TimeStop;
while (1) { TimeStop = timeGetTime();
if (TimeStop - TimeStart > 20) // timer de 20 ms ici { ... instruction ... TimeStart = TimeStop; } }
Voila, je ne sais pas quoi te proposer d'autre... je ne connais pas d'autre solution. ++ Glipper
|
|
Cette discussion est classée dans : timer, utiliser, blue
Répondre à ce message
Sujets en rapport avec ce message
timer avec linux[?] [ par dmothes ]
Help!!!quelqu'un pourrait-il m'aider? j'ai besoin d'utiliser un timer sous linux (si possible, en millisecondes)...faut-il utiliser linux/timer.h? com
Timer sur console [ par Guidelor ]
onjour !Est-il possible d'utiliser un timer en mode console avec Dev-C++ ?J'aimerais faire un programme qui affiche avec "printf" la chaine "\ncoucou\
Timer Dll [ par wxccxw ]
Salut, j'ai une dll injecter et j'aimerai faire l'equivalent d'un sleep dedans pour attendre une seconde avant de lancer un truc quel method je doit u
Quel timer utiliser pour des intervalles tres courts? [ par bigjacky31 ]
Bonjour,j'aimerais pouvoir utiliser un timer pour des intervalles tres courtes ( ( pour mettre a jour des infos utilisées pour un affichage en opengl
utiliser un Timer [ par melkiorlenecrarque ]
hello! jutilise VC++ 6 et et j'essai de transcrire mon programme "combat warhammer" pour windowsvoila mon pb:mon prog en appuyant sur un boutton execu
Comment on peut utiliser les timer avec Windows? [ par electroonn ]
Bonjour,je me demande comment on peut armer un timer en C++, je sais qu'il ya des fonctions comme SetTimer et KillTimer, mais je ne sais pas trop comm
Redefinition d'opérateur [ par Francks11 ]
bonjour,voila, j'ai une classe Chaine à réaliser (pour remplacer la classe String), donc je ne dois pas l'utiliser...ce que je souhaiterais, c'est red
[Visual C++ 6] Connecxion ODBC [ par kharrat ]
Salut,Je travaille sous VC++ 6.J'essaie d'écrire un prog tout simple pour m'entraîner à utiliser des bases de données.Pour ce faire, je souhaite utili
SDL & MFC?! [ par Tuizi ]
Bonjour,Voila je cherche à utiliser la librarie dans mon programme MFC (contraite de projet).J'ai toujours utiliser SDL avec Win32, donc la avec les M
Comment utiliser le clic gauche de la souris dans son application? en C++, console Win32 [ par ndubien ]
Bonjour, Je cherche à savoir comment utiliser le clic gauche de la souris lors de l'execution de mon programme.Je m'explique : je dispose d'un
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|