Attendre moins d'une seconde

Résolu
cs_Morinaux Messages postés 34 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 16 mai 2009 - 16 avril 2007 à 16:53
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 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 ?

12 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 avril 2007 à 18:12
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
3
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
16 avril 2007 à 16:57
Salut,

Ben, utilise un timer !!!

A+
Exploreur

 
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
16 avril 2007 à 17:09
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
0
cs_Morinaux Messages postés 34 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 16 mai 2009 1
16 avril 2007 à 17:12
Ouai en effet ça peut être une solution, je vais y travailler.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
16 avril 2007 à 17:14
Salut,

Utilise l'api GetTickCount qui est en milisecondes.





__________
 Kenji
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
16 avril 2007 à 17:15
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 !
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
16 avril 2007 à 17:26
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
0
cs_Morinaux Messages postés 34 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 16 mai 2009 1
16 avril 2007 à 17:40
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
16 avril 2007 à 17:49
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
0
cs_Morinaux Messages postés 34 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 16 mai 2009 1
16 avril 2007 à 18:10
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.
0
cs_Morinaux Messages postés 34 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 16 mai 2009 1
17 avril 2007 à 02:07
Je ne savait pas que Timer pouvait compter en dessus de la seconde, merci beaucoup de ton aide.
0
Ou trouve-t-on la fonction sleep sur une calculatrice CASIO graph 95?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
19 déc. 2015 à 11:36
Rien à voir avec Visual Basic !
"Bonjour", toutefois, aurait tout-à-voir avec le savoir-vivre ...
0
Rejoignez-nous