
Ich bin grade dabei ein neues, kleines Prog zu schreiben, das Infos über den RAM ausgibt. Dabei werden alle Angaben nach genau einer Sekunde aktualisiert.
Das Problem: Es wird nur aktualisiert, wenn die Maus im Fenster ist, und man sie bewegt. Zusätzlich (ein Problem kommt ja selten allein) wird das dann nicht jede Sekunde aktualisiert, sondern immer wenn man die Maus bewegt also auch z. B. nach 2 Sekunden oder nach 0,2 Sekunden.
Hier der vollständige Source: (soll ja nachher sowieso OpenSource werden)
Code: Alles auswählen
Global MemoryAll.l
Global MemoryUse.l
Global MemoryPercUse.l
Global MemoryFree.l
Procedure RefreshMem()
memex.MEMORYSTATUSEX
memex\dwLength = SizeOf(MEMORYSTATUSEX)
GlobalMemoryStatusEx_(@memex)
MemoryAll = memex\ullTotalPhys/1024/1024
MemoryUse = (memex\ullTotalPhys-memex\ullAvailPhys)/1024/1024
MemoryPercUse = memex\dwMemoryLoad
MemoryFree = memex\ullAvailPhys/1024/1024
EndProcedure
Enumeration
#MainWindow
EndEnumeration
Enumeration
#TextGadget_1
#TextGadget_2
#TextGadget_3
#TextGadget_4
#TextGadget_1a
#TextGadget_2a
#TextGadget_3a
#TextGadget_4a
#TextGadget_5
#ButtonGadget_1
#ButtonGadget_2
EndEnumeration
ExamineDesktops()
Global Width = DesktopWidth(0)
Global Height = DesktopHeight(0)
ElapsedTime = ElapsedMilliseconds()
RefreshMem()
OpenWindow(#MainWindow,Width-205,Height-204,199-5,149-5,"RAM.inf",#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
GadY = 10
TextGadget(#TextGadget_1,5,GadY,85,20,"RAM gesamt:",#PB_Text_Right)
TextGadget(#TextGadget_1a,95,GadY,85,20,Str(MemoryAll)+" MB")
GadY+20
TextGadget(#TextGadget_2,5,GadY,85,20,"RAM-Verbrauch:",#PB_Text_Right)
TextGadget(#TextGadget_2a,95,GadY,85,20,Str(MemoryUse)+" MB")
GadY+20
TextGadget(#TextGadget_3,5,GadY,85,20,"% Verbrauch:",#PB_Text_Right)
TextGadget(#TextGadget_3a,95,GadY,85,20,Str(MemoryPercUse)+" %")
GadY+20
TextGadget(#TextGadget_4,5,GadY,85,20,"RAM frei:",#PB_Text_Right)
TextGadget(#TextGadget_4a,95,GadY,85,20,Str(MemoryFree)+" MB")
GadY+20
ButtonGadget(#ButtonGadget_1,5,GadY,70,30,"Optionen")
ButtonGadget(#ButtonGadget_2,GadY+30,GadY,70,30,"Beenden")
GadY+35
TextGadget(#TextGadget_5,5,GadY,Height-204,20,"F1 für Hilfe by LoRD Soft (Mok)")
Repeat
If ElapsedTime > 1000
RefreshMem()
SetGadgetText(#TextGadget_1a,Str(MemoryAll)+" MB")
SetGadgetText(#TextGadget_2a,Str(MemoryUse)+" MB")
SetGadgetText(#TextGadget_3a,Str(MemoryPercUse)+" %")
SetGadgetText(#TextGadget_4a,Str(MemoryFree)+" MB")
ElapsedTime = ElapsedMilliseconds()
EndIf
Until WaitWindowEvent() = #PB_Event_CloseWindow
Grüße, Mok