Hallo ihr lieben,
ich hatte vor Jahren, unter WinForms mit zurhilfenahme von GDI+ mal einen Performancecounter geschrieben, im Prinzip eine Progressbar pro Thread, mit Auslastung, und natürlich auch mit einer Auslastungsanzeige für den Ram.
Seit Windows 10 funktionierte das Programm leider nicht mehr, und ich habs halt einfach nicht mehr angefasst, jetzt hatte ich allerdings vor, es einmal komplett neuzuschreiben, dabei gibt es zwar mehrere Probleme, aber das aktuelle hauptproblem ist,
das der Ram-Teil der Anwendung auf den "MY"-Namespace angewiesen ist, jedoch scheine ich in einer WPF-Anwendung keinen Zugriff mehr auf diesen zu haben. Hat evtl. jemand einen Alternativen Ansatz für den folgenden Code, oder besteht die Möglichkeit den Code auch in der WPF zum laufen zu bekommen ?
Spoiler anzeigen
LG und Danke
ich hatte vor Jahren, unter WinForms mit zurhilfenahme von GDI+ mal einen Performancecounter geschrieben, im Prinzip eine Progressbar pro Thread, mit Auslastung, und natürlich auch mit einer Auslastungsanzeige für den Ram.
Seit Windows 10 funktionierte das Programm leider nicht mehr, und ich habs halt einfach nicht mehr angefasst, jetzt hatte ich allerdings vor, es einmal komplett neuzuschreiben, dabei gibt es zwar mehrere Probleme, aber das aktuelle hauptproblem ist,
das der Ram-Teil der Anwendung auf den "MY"-Namespace angewiesen ist, jedoch scheine ich in einer WPF-Anwendung keinen Zugriff mehr auf diesen zu haben. Hat evtl. jemand einen Alternativen Ansatz für den folgenden Code, oder besteht die Möglichkeit den Code auch in der WPF zum laufen zu bekommen ?
VB.NET-Quellcode
- Imports System.Timers
- Public Class SystemMemory
- Private WithEvents MemTimer As New System.Timers.Timer
- Private TotalMBofMemory As ULong
- Private AvailableMBofMemory As ULong
- Private InUseMBofMemory As ULong
- Private InUsePercentofMemory As Double
- Private FreePercentofMemory As Double
- Public Event Refreshed()
- Public Sub New(ByVal Interval As Integer)
- MemTimer.Interval = Interval
- MemTimer.Enabled = True
- End Sub
- Private Sub MemTimer_Elapsed(sender As Object, e As ElapsedEventArgs) Handles MemTimer.Elapsed
- RefreshMemoryValues()
- End Sub
- Private Sub RefreshMemoryValues()
- TotalMBofMemory = My.Computer.Info.TotalPhysicalMemory
- AvailableMBofMemory = My.Computer.Info.AvailablePhysicalMemory
- InUseMBofMemory = TotalMBofMemory - AvailableMBofMemory
- InUsePercentofMemory = InUseMBofMemory / (TotalMBofMemory / 100)
- FreePercentofMemory = GetFreeMemoryInPercent()
- RaiseEvent Refreshed()
- End Sub
- Public Function GetUsageInPercent() As Double
- Return InUsePercentofMemory
- End Function
- Public Function GetFreeMemoryInPercent() As Double
- Return 100 - InUsePercentofMemory
- End Function
- Public Function GetTotalMemoryInMB() As Double
- Return FormatBytes(TotalMBofMemory)
- End Function
- Public Function GetAvailMemoryInMB() As Double
- Return FormatBytes(AvailableMBofMemory)
- End Function
- Public Function GetInUseMemoryInMB() As Double
- Return FormatBytes(InUseMBofMemory)
- End Function
- Private Function FormatBytes(ByVal BytesCaller As ULong) As Double
- Return CDbl(BytesCaller / 1048576)
- End Function
- End Class
LG und Danke
If Energy = Low Then
Drink(aHugeCoffee)
Else
Drink(aHugeCoffeeToo)
End If
Drink(aHugeCoffee)
Else
Drink(aHugeCoffeeToo)
End If