Attendre moins d'une seconde [Résolu]

cs_Morinaux 34 Messages postés mercredi 19 novembre 2003Date d'inscription 16 mai 2009 Dernière intervention - 16 avril 2007 à 16:53 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention
- 19 déc. 2015 à 11:36
Bonjour,
J'utilise cette technique pour attendre mais celle-ci ne permet pas d'attendre des temps < 1 seconde.

Private Sub Attendre()
    Dim MaDate As Date
    MaDate = Now
    Do While Abs(DateDiff("s", MaDate, Now)) < 1
        DoEvents
    Loop
End Sub

Il y a bien instruction Sleep mais elle ne me plait pas dit tout.

Quelqu'un aurait-il une solution ?
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 16 avril 2007 à 18:12
3
Merci
Bonsoir,

En dépit de ce qu'en dit l'aide en ligne, la fonction Timer est xapable de compter en dessous de la seconde et je m'en sers dans certaines circonstances (appréciation de clicks longs, distinction entre un double et un simple click sur certains contrôles

Si tu n'as pas besoin de la plus grande précision, regarde ceci

Private Sub Command1_Click()
  depart = Timer
  Do While Timer < depart + 0.1
   DoEvents
  Loop
  MsgBox Timer - depart
End Sub

Merci jmfmarques 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de jmfmarques
cs_Exploreur 4824 Messages postés lundi 11 novembre 2002Date d'inscription 15 novembre 2016 Dernière intervention - 16 avril 2007 à 16:57
0
Merci
Salut,

Ben, utilise un timer !!!

A+
Exploreur

 
Commenter la réponse de cs_Exploreur
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 16 avril 2007 à 17:09
0
Merci
Salut,
Pas mieux.
Tu prends un timer avec lequel tu joues sur les propiétés .Enabled et Interval
Mais le problème c'est que tu n'attends pas au même endroit dans le code.

@+: Ju£i?n
Pensez: Réponse acceptée
Commenter la réponse de jrivet
cs_Morinaux 34 Messages postés mercredi 19 novembre 2003Date d'inscription 16 mai 2009 Dernière intervention - 16 avril 2007 à 17:12
0
Merci
Ouai en effet ça peut être une solution, je vais y travailler.
Commenter la réponse de cs_Morinaux
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 16 avril 2007 à 17:14
0
Merci
Salut,

Utilise l'api GetTickCount qui est en milisecondes.





__________
 Kenji
Commenter la réponse de Charles Racaud
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 16 avril 2007 à 17:15
0
Merci
Heu pourquoi ne pas utiliser Sleep ???

Car c'est pas pour dire, mais ta méthode elle occupe 100% du proc pendant l'attente, contrairement à Sleep !
Commenter la réponse de cs_DARKSIDIOUS
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 16 avril 2007 à 17:26
0
Merci
j'avoue qu'utiliser DateDiff ici, c'est chasser les mouches au bazooka !

qu'attends tu de particulier ?

as tu besoin d'un intervalle précis ?

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
cs_Morinaux 34 Messages postés mercredi 19 novembre 2003Date d'inscription 16 mai 2009 Dernière intervention - 16 avril 2007 à 17:40
0
Merci
En fait ce serai pour réaliser une opération différente à chaque à un intervalle plus petit que la seconde.
Donc l'utilisation d'un timer serait une tâche plutôt ardue.

Le programme doit garde le focus et doit rester actif pendant l'attente c'est pour cela que je n'utilise pas Sleep.

Et je souhaiterais si possible ne pas utiliser d'api mais si je n'y arrive pas sans, je me tournerai vers GetTickCount, il doit surement y avoir des exemples d'utilisation sur vbfrance.

Merci
Commenter la réponse de cs_Morinaux
Renfield 17308 Messages postés mercredi 2 janvier 2002Date d'inscription 22 août 2018 Dernière intervention - 16 avril 2007 à 17:49
0
Merci
utilises un Timer, c'est le plus simple....

"Le programme doit garde le focus et doit rester actif pendant l'attente"

pour quelle raison ?

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Commenter la réponse de Renfield
cs_Morinaux 34 Messages postés mercredi 19 novembre 2003Date d'inscription 16 mai 2009 Dernière intervention - 16 avril 2007 à 18:10
0
Merci
Le programme doit déplacer la souris, cliquer, attendre puis recommencer X fois.

Si j'utilise Sleep le programme cesse de répondre et ça ne marche pas.
Avec le timer je n'ai pas trouvé de solutions simple a mettre en place.

Merci de ton intéressement.
Commenter la réponse de cs_Morinaux
cs_Morinaux 34 Messages postés mercredi 19 novembre 2003Date d'inscription 16 mai 2009 Dernière intervention - 17 avril 2007 à 02:07
0
Merci
Je ne savait pas que Timer pouvait compter en dessus de la seconde, merci beaucoup de ton aide.
Commenter la réponse de cs_Morinaux
0
Merci
Ou trouve-t-on la fonction sleep sur une calculatrice CASIO graph 95?
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 19 déc. 2015 à 11:36
Rien à voir avec Visual Basic !
"Bonjour", toutefois, aurait tout-à-voir avec le savoir-vivre ...
Commenter la réponse de azer

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.