IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

utiliser un timer dans un programme sans fenetre


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Par défaut utiliser un timer dans un programme sans fenetre
    ce que j'esperai du code ci dessous c'est qu'il faut une pause de 15min apré l'appel de SetTimer() mais ca n'arive pas , je croit que l'erreur vien des arguments mais je sais pas comment faire , je le compile comme application windows et non comme console , et y'a aucune fenetre , voila ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    int main(void)
    {
    	UINT timer;
    	int PID;
    	char process2bk[15]="googletalk.exe";
     
    	do
    	{
    		SetTimer(NULL,0,900000,NULL);
    		PID = Search4Process(process2bk);
    	        if (PID)
    		KillProcessbyID(PID);
    	}
    	while (1);
    }

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Bonsoir,

    As-tu lu l'aide de la fonction SetTimer() ? J'ai l'impression que non.

    Citation Envoyé par a.souini
    ce que j'esperai du code ci dessous c'est qu'il faut une pause de 15min apré l'appel de SetTimer()
    Tu peux espérer longtemps... SetTimer() ne sert pas à faire une pause. Cette fonction permet de programmer un événement qui doit se produire tous les N millisecondes. Lis ça pour avoir une idée générale de la question.

    Citation Envoyé par a.souini
    mais ca n'arive pas , je croit que l'erreur vien des arguments
    Bien vu : cela vient des arguments.

    Citation Envoyé par a.souini
    mais je sais pas comment faire ,
    Tu pourrais lire "Using Timers" par exemple.
    Et puis lire l'aide de la fonction SetTimer() : cela devrait être un bon endroit pour en savoir plus sur les paramètres, non ?

    Citation Envoyé par a.souini
    je le compile comme application windows et non comme console , et y'a aucune fenetre
    C'est normal qu'il n'ya ait aucune fenêtre : tu n'en crées pas...
    Mais alors pourquoi le "compile[r] comme application Windows" ?

    Citation Envoyé par a.souini
    , voila ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    int main(void)
    {
    	UINT timer;
    	int PID;
    	char process2bk[15]="googletalk.exe";
     
    	do
    	{
    		SetTimer(NULL,0,900000,NULL);
    		PID = Search4Process(process2bk);
    	        if (PID)
    		KillProcessbyID(PID);
    	}
    	while (1);
    }
    Une bonne idée serait de vérifier la valeur de retour de SetTimer().
    Une autre idée, qui pourrait être liée à la première, serait d'avoir un "return" dans ta fonction "main()".
    Tu as mis le dernier paramètre à NULL mais ne lis pas de messages alors que l'aide de la fonction SetTimer() dit :
    Citation Envoyé par [url=http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/timers/timerreference/timerfunctions/settimer.asp]Aide de la fonction SetTimer()[/url]
    If lpTimerFunc is NULL, the system posts a WM_TIMER message to the application queue.
    Donc soit tu donnes un pointeur vers une fonction à appeler quand le timer arrive à 0, soit tu récupères les messages et tu fais quelque-chose (ou pas) quand tu reçois un WM_TIMER.

    Sinon, pour attendre, tu peux utiliser un "waitable timer". Bien sûr, comme pour les timers, il y a un exemple sur le site de Microsoft.

    Et puis tant que tu es sur le site de Microsoft, profites-en pour télécharger le "Platform SDK" : tu auras l'aide de toutes les fonctions citées sur ta machine.

    Enfin, pour avoir de l'aide sur le développement sous Windows, tu devrais plutôt poster dans le forum "Développement Windows".

    Bon courage.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation de REPLACE() dans un programme PL/SQL
    Par Djene dans le forum PL/SQL
    Réponses: 8
    Dernier message: 10/12/2009, 11h30
  2. utiliser fichier XML dans un programme C++
    Par ilimo dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 13/04/2006, 11h42
  3. [Executable]Comment lancer son programme sans fenêtre DOS
    Par the_ugly dans le forum Général Java
    Réponses: 11
    Dernier message: 09/11/2005, 07h16
  4. utilisation de zlib dans un programme c/c++
    Par romzaide dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 27/05/2005, 14h57
  5. Utiliser un timer dans une application console
    Par chavers dans le forum Langage
    Réponses: 8
    Dernier message: 25/05/2005, 14h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo