cs_Jacky7
Messages postés63Date d'inscriptionmardi 13 mai 2008StatutMembreDernière intervention22 juin 2011
-
6 janv. 2009 à 12:15
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 2010
-
6 janv. 2009 à 13:56
Bonjour à tous ,
Je voudrais savoir s'il serait possible d'afficher l'heure du système de mon PC en dixième de secondes voire plus a la place de l' affichage classique hh:mm:ss ??
PCPT
Messages postés13280Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201848 6 janv. 2009 à 13:27
salut,
possible oui, par API
te reste à adapter :
Option Explicit
'
Private Type
SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
'
Private Sub Form_Load()
Timer1.Interval = 50
End Sub
'
Private Sub Timer1_Timer()
Dim SysTime As SYSTEMTIME
Call GetSystemTime(SysTime)
With SysTime
Me.Caption = .wHour & ":" & .wMinute & ":" & .wSecond & " - " & .wMilliseconds
End With
End Sub
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 6 janv. 2009 à 13:54
Bonjour Jacky7
Oui, le système d'exploitation de Windows gère son horloge temps réel avec une précision de l'ordre de la milliseconde.
Voici un exemple d'affichage de l'heure locale dans une zone de texte TextBox1 à la milliseconde près (avec les réserves indiquées plus bas), au moyen de la fonction GetSystemTime.
Option Explicit
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Private Declare Sub GetLocalTime Lib "kernel32" (SYSTEMTIME As SYSTEMTIME)
Sub afficheHeure()
Dim systime As SYSTEMTIME, Msg As String
Do ' boucle sans fin d'affichage de l'heure
DoEvents
Call GetLocalTime(systime) ' lecture de l'heure locale du système
With systime
Msg = "Heure locale : " & .wDay & "/" & .wMonth & "/" & .wYear & " " _
& .wHour & ":" & .wMinute & ":" & .wSecond & ":" & .wMilliseconds
End With
Me.TextBox1.Value = Msg ' affichage de l'heure avec une précision de l'ordre de la milliseconde
Loop
End Sub
Private Sub UserForm_Activate()
afficheHeure
End Sub
Dans la pratique, je ne pense pas que ce soit très utilisable étant donné que l'indispensable fonction DoEvents "rend la main" au système, et donc affecte plus ou moins le fonctionnement de l'horloge selon les tâches en attente.