Einfach einbinden und statt ElapsedMilliseconds() immer GetTimeMS() verwenden, sollte keine Probleme geben.
Code: Alles auswählen
; ------------------------------------------------------------------------------------
; HighRes - Timer
; PB 4.x
; Alexander Aigner
;
; Funktionen:
;
; GetTimeMS()
; ------------------------------------------------------------------------------------
Prototype.l HR_Time()
; ------------------------------------------------------------------------------------
; Interne Variablen
; ------------------------------------------------------------------------------------
Structure _HR_Internal
  TicksPerSecond.l
  Frequency.q
  StartTime.q
EndStructure
Define _HR._HR_Internal
Global GetTimeMS.HR_Time
; ------------------------------------------------------------------------------------
; Interne Proceduren
; ------------------------------------------------------------------------------------
Procedure.l _HR_InitTime()
  Shared _HR._HR_Internal
  With _HR
    If Not QueryPerformanceFrequency_(@\Frequency)
      ProcedureReturn 0
    Else
      QueryPerformanceCounter_(@\StartTime)
      \TicksPerSecond = 1000 ; 1000 = Millisekunden
      ProcedureReturn 1
    EndIf
  EndWith
EndProcedure
Procedure.l _HR_Get()
  Shared _HR._HR_Internal
  Protected currentTime.q
  With _HR
    QueryPerformanceCounter_(@currentTime.q)
    ProcedureReturn (currentTime-\StartTime)*\TicksPerSecond/\Frequency
  EndWith
EndProcedure
Procedure _HR_oldPC_or_Linux()
  ProcedureReturn ElapsedMilliseconds()
EndProcedure
; ------------------------------------------------------------------------------------
; Initialisierung
; ------------------------------------------------------------------------------------
CompilerIf #PB_Compiler_OS <> #PB_OS_Windows
  GetTimeMS = @_HR_oldPC_or_Linux()
CompilerElse
  If _HR_InitTime()
    GetTimeMS = @_HR_Get()
  Else
    GetTimeMS = @_HR_oldPC_or_Linux()
  EndIf
CompilerEndIf