Ich möchte die CPU-Auslastung grafisch anzeigen. Mit Hilfe von COMatePlus lese ich also die prozentuale Auslastung aus, welche ich dann in ein Sprite zeichne und wieder aktualisiere. Allerdings kann ich keine Events mehr abfragen.
Code: Alles auswählen
IncludePath #PB_Compiler_Home + "srod\comateplus\"
XIncludeFile "comateplus.pbi"
Procedure GetLoad()
Define objWMIService.COMateObject
Define objItem.COMateObject
Define colItems.COMateEnumObject
Define Computer.s = "."
objWMIService = COMate_GetObject("winmgmts:\\" + Computer + "\root\cimv2", "")
If objWMIService
colItems = objWMIService\CreateEnumeration("ExecQuery('SELECT * FROM Win32_Processor')")
If colItems
objItem = colItems\GetNextObject()
ProcedureReturn objItem\GetIntegerProperty("LoadPercentage")
EndIf
EndIf
EndProcedure
OpenWindow(0,320,320,200,200,"Diagramm")
CreateImage(0,50,130,32)
ImageGadget(0,20,20,50,130,ImageID(0))
ListViewGadget(1,90,20,80,130)
ButtonGadget(2,20,160,100,30,"Clear")
StartDrawing(ImageOutput(0))
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
If EventGadget() = 2
ClearGadgetItems(1)
EndIf
Case #PB_Event_Repaint
FillArea(10,110-Load,#Black,#Black)
Load = GetLoad()
Box(10,10,30,100,RGB(0,128,0))
Box(10,110-Load,30,Load,RGB(10,255,5))
DrawText(10,110,Str(Load)+" % ",RGB(10,255,5),RGB(0,0,0))
SetGadgetState(0,ImageID(0))
AddGadgetItem(1,-1,Str(Load)+" %")
EndSelect
Until Event = #PB_Event_CloseWindow
StopDrawing()
End
Gruß, Mok.