ich habe da mal eine Frage zu der (von mir oft und gern genutzten) Funktion CpuUsage().
Ich nutze auf einem Win-32 ein PB-32 und erzeuge eine Exe aus untenstehendem Testprogramm.
Die Exe läuft soweit auf Win-32 und auch auf Win-64, aber CpuUsage() gibt unter Win-64
immer nur den Wert -1 zurück.
Hat die etwas ältere Userlib PBOSL_CPUmonitor ein 64Bit-Problem, oder kann ich etwas besser machen ?
(Achso .... in die Sourcen habe ich mir angeschaut, ich kann da mangels Verständnis nichts updaten)
Grüsse.
Code: Alles auswählen
; -- Testprogramm (Basiert auf dem PBOSL-Example CPU2.pb)
Global Dim Progress.l(34)
Procedure updateCPUgadget()
For a = 1 To 34 : Progress(a-1) = Progress(a) : Next a
Progress(34) = CpuUsage()
For a = 0 To 34 : SetGadgetState(a,Progress(a)):Next a
SetWindowTitle(1, "CPU Monitor "+ Str(Progress(34)) + " %")
EndProcedure
hWnd = OpenWindow(1,100,100,255,100,"CPU Monitor",#PB_Window_SystemMenu)
SetWindowPos_(hWnd,#HWND_TOPMOST,0,0,0,0,#SWP_NOACTIVATE|#SWP_SHOWWINDOW|#SWP_NOMOVE|#SWP_NOSIZE)
For a = 0 To 34 : ProgressBarGadget(a,a*7,0,8,100,0,100,#PB_ProgressBar_Vertical) : Next a
SetThreadPriority_( GetCurrentThread_() , #THREAD_BASE_PRIORITY_MAX)
SetPriorityClass_( GetCurrentProcess_(), #HIGH_PRIORITY_CLASS)
StartTimer(1,500,@updateCPUgadget())
Repeat: Until WaitWindowEvent() = #PB_Event_CloseWindow
EndTimer(1) : Delay(310)
End