+ preciso di 1ms come quello attuale di basic... qualcuno sa niente in proppsito??? Grazie!
![Approvazione [^]](http://www.megalab.it/forum/images/smilies/Oh-yea.gif)
Attribute VB_Name = "modTimer"
' Win32Api Dan Appleman
Public tempoinizio As Long 'Inizio del cronos
Public tempofine As Long 'Fine
Public risultatocronometro As Long 'SE
Public timePrecisioneMacchina As Long
Public timeResp As Long 'Tutto il resto che nn interessa
Public Type TIMECAPS
wPeriodMin As Long
wPeriodMax As Long
End Type
Public Type MMTIME
wType As Long
u As Long
End Type
Public Declare Function timeGetDevCaps Lib "winmm.dll" (lpTimeCaps As TIMECAPS, ByVal uSize As Long) As Long
'Interroga il sys e si fa dire qual è la precisione di gestione dei tempi
'Prende: un TIMECAPS (mette la rispsota), una dimensione del cestino di rispsota.
Public Declare Function timeBeginPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Public Declare Function timeEndPeriod Lib "winmm.dll" (ByVal uPeriod As Long) As Long
Public Declare Function timeGetSystemTime Lib "winmm.dll" (lpTime As MMTIME, ByVal uSize As Long) As Long
Public Declare Function timeGetTime Lib "winmm.dll" () As Long
'Prende l'epoca in cui lo chiamo: facendo la differenza
'fra primo e seconda epoca ottengo quanto è passato
'Precisione di 5ms (difetto o eccesso, a seconda del più vicino)
'Miglioriamo (1ms) usando begin e end
Public Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long
Public Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal uResolution As Long,
ByVal lpFunction As Long, ByVal dwUser As Long, ByVal uFlags As Long) As Long
Public Const TIME_SMPTE = &H8 ' ora SMPTE
Public Const TIME_SAMPLES = &H2 ' numero di campioni di onde
Public Const TIME_PERIODIC = 1 ' programma per evento periodico continuo
Public Const TIME_ONESHOT = 0 ' timer di programma per evento singolo
Public Const TIME_NOTIMEMARKER = &H4 ' non usa indicatore di ora
Public Const TIME_NOSECONDS = &H2 ' non usa secondi
Public Const TIME_NOMINUTESORSECONDS = &H1 ' non usa minuti o secondi
Public Const TIME_MS = &H1 ' tempo in millisecondi
Public Const TIME_MIDI = &H10 ' ora MIDI
Public Const TIME_FORCE24HOURFORMAT = &H8 ' usa sempre formato 24 ore
Public Const TIME_BYTES = &H4 ' offset byte corrente
Public Const TIMERR_BASE = 96 ' era 128, modificato in base a Win 31 Sonic
Public Const TIMERR_NOCANDO = (TIMERR_BASE + 1) ' richiesta non completata
Public Const TIMERR_NOERROR = (0) ' nessun errore
Public Const TIMERR_STRUCT = (TIMERR_BASE + 33) ' dimensioni struttura ora
Public Sub timeInit()
Dim cestinodirisposta As TIMECAPS
Dim grandezzacestino As Long
Dim risposta As Long
grandezzacestino = Len(cestinodirisposta)
syscaps = modTimer.timeGetDevCaps(cestinodirisposta, grandezzacestino)
timePrecisioneMacchina = cestinodirisposta.wPeriodMax
timePrecisioneMacchina = cestinodirisposta.wPeriodMin
End Sub
Visitano il forum: Nessuno e 1 ospite
megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising