PBOSL_CPUmonitor ( CpuUsage() ) für 64Bit Windows ?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
TheCube
Beiträge: 169
Registriert: 20.07.2010 23:59
Computerausstattung: Risen 3400G 16MB Win10-64Bit
Wohnort: NRW

PBOSL_CPUmonitor ( CpuUsage() ) für 64Bit Windows ?

Beitrag von TheCube »

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.

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
Benutzeravatar
Danilo
-= Anfänger =-
Beiträge: 2284
Registriert: 29.08.2004 03:07

Re: PBOSL_CPUmonitor ( CpuUsage() ) für 64Bit Windows ?

Beitrag von Danilo »

CPU Usage Multi-core? (im ASCII-Modus kompilieren)
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck
Benutzeravatar
TheCube
Beiträge: 169
Registriert: 20.07.2010 23:59
Computerausstattung: Risen 3400G 16MB Win10-64Bit
Wohnort: NRW

Re: PBOSL_CPUmonitor ( CpuUsage() ) für 64Bit Windows ?

Beitrag von TheCube »

Schonmal guter aktueller Link zu sehr gutem Code .... danke dafür. 8)

Von einigen älteren Multicore-CpuUsage-Ansätzen war ich nämlich nicht so begeistert
(z.B. Messwerte stimmten nicht nach Integration ins eigene Programm etc.) wohingegen PBOSL-CpuUsage() immer fluffig lief.
(Anm.: Die Auslastung der einzelnen Cores war und ist mir bislang auch nicht wichtig)

Na dann wird ich mal anfangen den Code in mein Programm zu bringen ... schaumermal ...
und vielleicht tut sich ja trotzdem noch was beim PBOSL-CpuUsage()-Assemblercode :(
Antworten