PBOSL_CPUmonitor ( CpuUsage() ) für 64Bit Windows ?
Verfasst: 19.10.2012 10:19
Hallo,
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.
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