Nous sommes actuellement le 12 Juil 2026, 23:19

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 9 message(s) ] 
Auteur Message
 Sujet du message: question timer VB
MessagePublié: 16 Août 2004, 15:37 
Hors-ligne
Régulier
Régulier

Inscription : 13 Jan 2002, 19:28
Message(s) : 360
salut,

je veux que mon programme me dise depuis quand il roule (le nombre de temps)

alors j'ai fait un timer simple .....

a chaque seconde, mon compteur s'incrémente ... ok

par contre,

mon programme a toujours une opération a effectuer alors mon timer ne fonctionne pas .....

exemple lorsque je clique sur un bouton, mon programme part .... et mon timer part dans une fonction

lorsque ca se termine, il me retourne 0 ..... alors je conclus que lorsque mon programme effectue une opération, le timer ne fonctionne pas ... il doit attendre qu'il n'y aille aucune opération .......

ya t'il une facon pour que mon timer ou autre truc que je pourrais faire ...... puisque j'ai toujours des opérations qui se fait .... pour me donne depuis quand le programme roule


Dernière édition par DouB le 16 Août 2004, 16:00, édité 1 fois.

Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 16 Août 2004, 15:41 
Hors-ligne
Régulier
Régulier
Avatar de l’utilisateur

Inscription : 27 Juin 2002, 01:12
Message(s) : 458
Localisation : Québec
Une autre façon serait de noter la date et heure (avec les secondes) de début et la même chose pour la fin.
Ensuite on calcule la différence.

Il va falloir faire quelques calcules, mais je ne vois pas pourquoi ca ne fonctionnerais pas.


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 16 Août 2004, 15:45 
Hors-ligne
Régulier
Régulier

Inscription : 22 Juin 2003, 00:01
Message(s) : 396
Question, vous voulez seulement savoir depuis combien de temps votre programme fonctionne? Alors pourquoi ne pas utiliser la fonction Time pour obtenir l'heure courante du système. Par exemple vouds pourriez faire ceci
Code :
dim debut
dim fin
dim tempTotal

debut = time()

traitement...

fin = time()
tempTotal = fin = debut


ca ne serait pas plus simple?


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 16 Août 2004, 15:48 
Hors-ligne
Régulier
Régulier
Avatar de l’utilisateur

Inscription : 27 Juin 2002, 01:12
Message(s) : 458
Localisation : Québec
Il y a aussi now() qui inclu la date au cas où le programme démarre à 23:59 et se termine le lendemain...


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 16 Août 2004, 15:55 
Hors-ligne
Régulier
Régulier

Inscription : 13 Jan 2002, 19:28
Message(s) : 360
ouin j'y avais pas pensé hehe c'est juste qu'il va falloir je fasse d'autres calculs

merci


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 16 Août 2004, 19:19 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 00:24
Message(s) : 5834
Si tu veux être assez précis :

Code :
' ***** N'a pas été testé  *****
Option Explicit

Declare Function QueryPerformanceCounter Lib "Kernel32" (X As Currency) As Boolean
Declare Function QueryPerformanceFrequency Lib "Kernel32" (X As Currency) As Boolean
Declare Function GetTickCount Lib "Kernel32" () As Long
Declare Function timeGetTime Lib "winmm.dll" () As Long

Private m_curDebut as Currency
Private m_curFreq as Currency

'
' A appeler lors du début du progamme
'
Private Sub Initialize()
  If QueryPerformanceCounter(m_curDebut) Then
          QueryPerformanceFrequency m_curFreq
  Else
    Debug.Print "High-resolution counter not supported."
  End If
End Sub

'
' Retourne le nombre de secondes écoulées depuis le dernier appel de Initialize
'
Public Function QuerryUptime() as Double
  Dim curNow as Currency
  QueryPerformanceFrequency curNow
  QuerryUptime = CDbl((curNow - m_curDebut) / m_curFreq)
End Function


C'est précis, mais il faut savoir qu'il risque d'avoir un léger moment entre le vrai début de l'application et l'appel de Initalize et l'initialisation de m_curDebut.

http://support.microsoft.com/default.as ... bContent=1

Pour être encore plus précis et avoir le temps depuis lequel le processus est actif, il faudrait utiliser ceci : GetProcessTimes() afin de connaître la date-heure du début du processus
Ça va demander un peu plus de code et ça me tente pas de faire le travail ! :mrgreen:

_________________
This posting is provided "AS IS" with no warranties, and confers no rights!
©2006 - 2014 Jump


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 16 Août 2004, 23:07 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

Inscription : 22 Fév 2002, 20:54
Message(s) : 738
Localisation : Montréal
Un petit bug d'après-moi

Jump a écrit:
' ***** N'a pas été plus testé -> j'ai pas VB chez moi *****

'
' Retourne le nombre de secondes écoulées depuis le dernier appel de Initialize
'
Public Function QuerryUptime() as Double
Dim curNow as Currency
QueryPerformanceCounter curNow ' et non QueryPerformanceFrequency curNow
QuerryUptime = CDbl((curNow - m_curDebut) / m_curFreq)
End Function



Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 16 Août 2004, 23:11 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 00:24
Message(s) : 5834
En effet

_________________
This posting is provided "AS IS" with no warranties, and confers no rights!
©2006 - 2014 Jump


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 16 Août 2004, 23:23 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

Inscription : 22 Fév 2002, 20:54
Message(s) : 738
Localisation : Montréal
Il y a aussi l'instruction assembleur RDTSC si vous voulez qqch de bien précis(juste sur les Pentiums), mais bon ça pourrait être dure en VB.

J'ai déjà fait certain test avec GetProcessTimes() mais il ne donnait pas des résultats suffisamment précis pour ce que je voulais en faire(genre les valeurs toujours clampé au 5 ms).


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 9 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site