Prozessorauslastung und Ram auslesen?

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Tony-S.

    Danke euch beiden, hab was gefunden.
    Edit: Sogar hier im Forum :D, wie peinlich.


    @ pAbst0 das hab ich doch :) .

    Und @ mike, danke Klasse, das Wort hat mir tatsächlich weiter geholfen,

    Hab im Netz eine für mich verständliche Lösung gefunden:

    VB.NET-Quellcode

    1. Private perfCounter As New System.Diagnostics.PerformanceCounter
    2. Private intCPULoad As Integer
    3. 'Private Timer1 As Timer
    4. Private Function GetCPULast() As Integer
    5. perfCounter.CategoryName = "Processor"
    6. perfCounter.CounterName = "% Processor Time"
    7. perfCounter.InstanceName = "_Total"
    8. Return Integer.Parse(Format(perfCounter.NextValue, "##0"))
    9. End Function


    VB.NET-Quellcode

    1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    2. Label1.Text = GetCPULast()
    3. ProgressBar1.Value = GetCPULast()
    4. End Sub


    Das mit der Ramauslastung wird ja sicher ähnlich gehen, kümmere ich mich später drum.

    Hab jetzt eigentlich nur das Problem das die Progressbar ein wenig flackert, oder eigentlich garnicht mitkommt,
    An was liegt das denn?
    Naja ich denk mal 100 ms sind schon ausreichend.
    Aber selbst mit 1000 ms also einer Sekunde kommt die Progressbar nicht hinterher, DoubleBuffered True hat auch nix gebracht :/

    Ok habs jetzt anders gemacht:

    VB.NET-Quellcode

    1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    2. Label1.Text = GetCPULast()
    3. ProgressBar1.Value = CInt(Label1.Text)
    4. ProgressBar1.Update()
    5. End Sub


    So funktioniert das erstmal =)

    Keine Doppelposts bitte.
    Bearbeiten Funktion verwenden.
    Gruss
    mikeb69

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „mikeb69“ ()

    Um den Threadtitel gerecht zu werden post ich jetzt noch ne Möglichkeit um den Ram auszulesen:

    VB.NET-Quellcode

    1. labelRamAuslastung.Text = "Ram: " & Format(((My.Computer.Info.TotalPhysicalMemory - _
    2. My.Computer.Info.AvailablePhysicalMemory) / 1048576) / 1000.ToString(), "#.###" & " Gb")


    Leider hauts um ein paar mb nicht ganz hin.
    Hm, das könnte schon eher stimmen,

    aber so ganz stimmts net überein:
    in meinem Programm werden 1,163 GB angezeigt und im Taskmanager folgendes

    pickhost.eu/images/0002/4784/ram.JPG

    Irgendwas rechne ich sicher falsch :/.



    Achja noch eine andere Frage, im Moment bin ich auf einer VM, zusammen mit noch jemandem (auf derselben VM),
    dessen Prozesse werden mir auch angezeigt, diese kann ich aber nicht beenden, wieso :)?

    Edit: Argh, hatte vergessen das ich das ja garnicht erwähnt hatte:
    (gehört ja eig nich dazu, wenn gewünscht mach ich dafür n neuen Thread auf.)

    VB.NET-Quellcode

    1. Dim arrProcList() As Process 'array
    2. arrProcList = Process.GetProcesses
    3. For i As Integer = 0 To arrProcList.Length - 1
    4. If arrProcList(i).ProcessName = lbProzesse.SelectedItem Then
    5. arrProcList(i).CloseMainWindow()
    6. End If
    7. Next

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Tony-S“ ()