Il codice qui sotto semplicemente esegue una stampa in una picture box e sposta un controllo. Il tutto avviene con il timer multimediale cioè ad intervalli di tempo regolari stampa e sposta. Ora il problema è : nell'IDE di VB6 tutto OK ma compilando l'eseguibile PATATRACK..non c'è verso. Se qualcuno ha voglia di provare il codice sia nell'ide (di VB6) sia compilato e mi facesse sapere gli sarei grato.

CODICE DA INSERIRE IN UN MODULO:
************************************************** ****
codice:
Declare Function timeBeginPeriod& Lib "winmm.dll" (ByVal uPeriod&)
Declare Function timeEndPeriod& Lib "winmm.dll" (ByVal uPeriod&)
Declare Function timeGetDevCaps& Lib "winmm.dll" (lpTimeCaps As TIMECAPS, ByVal uSize&)
Declare Function timeKillEvent& Lib "winmm.dll" (ByVal uId&)
Declare Function timeSetEvent& Lib "winmm.dll" (ByVal uDelay&, ByVal uResolution&, ByVal lpFunction&, ByVal dwUser&, ByVal uFlags&)

Public TimerIDdet As Long 'id del timer
Public NewTempoSec As Long 'ogni quanto si attiva (in ms)
Public BestResolution As Long 'capacità del timer multimediale del sistema

Type TIMECAPS
     wPeriodMin As Long
     wPeriodMax As Long
End Type

Public Sub dettatoProc(ByVal uId&, ByVal uMsg&, ByVal dwUser&, ByVal dw1&, ByVal dw2&)
'il timer chia,ma questa funzione ogni volta che si attiva(ogni NewTempoSec ms)
Form1.Command2.Left = Form1.Command2.Left + 100
Form1.Picture1.Print "a"
End Sub
Public Function HighResTimer() As Boolean

    Dim Rv As Long
    Dim TC As TIMECAPS

    ' Get The Capabilities Of A Multi Media Timer.
    Rv = timeGetDevCaps(TC, Len(TC))
  
       ' Find The Best Resolution Available. (Most Likely One Millisecond).
       BestResolution = TC.wPeriodMin
       ' Set That Resolution.
       ' Note: Every "timeBeginPeriod" Must Be Followed (Somewhere In The Code) By a "timeEndPeriod".
       Rv = timeBeginPeriod(BestResolution)
       
End Function
************************************************** *******************
Poi in un form inserire una picture box , due command button e inserire il seguente codice:
************************************************** ******************
codice:
Private Sub Command1_Click()
  'imposta ogni quanto si attiva il timer (millisecondi)
  NewTempoSec = 300
  'fa partire il timer
  TimerIDdet = timeSetEvent(NewTempoSec, BestResolution, AddressOf dettatoProc, 0, 1)
End Sub

Private Sub Form_Load()
  'recupera la capacità del timer multimediale
  HighResTimer
End Sub

Private Sub Form_Unload(Cancel As Integer)
 'spegne il timer
  timeKillEvent TimerIDdet
  timeEndPeriod (BestResolution)
End Sub
************************************************** ***************
Premendo sul command1 il timer parte e il command2 si sposta mentre nella picture box viene stampata una a. Bene nell'eseguibile non funziona !!!!!!!!!!! secondo me è un bug

AH! in VB.NET tutto è OK e se qualcuno potesse compilarlo con VB5 e farmi sapere..