CPU-, RAM- Auslastung, CPU-Temperatur und freien Speicher der jeweiligen Festplatte anzeigen lassen

    • VB.NET

    Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von Phildo.

      CPU-, RAM- Auslastung, CPU-Temperatur und freien Speicher der jeweiligen Festplatte anzeigen lassen

      Hallo,

      Ich hab mir mal gedacht, dass ich ein kleines Tutorial darüber mache wie man die CPU- und RAM- Auslastungen in einer Progressbar bzw. einem Label anzeigen lässt.
      Desweiteren zeige ich hier noch wie man den Freien Speicher einer Festplatte bzw. Laufwerks anzeigen lässt.

      Dann fangen wir mal an:
      =============================================================
      Die Form
      =============================================================
      Spoiler anzeigen

      Für alles benötigt ihr:
      *) 5 PerformanceCounter
      So heißen sie bei mir:
      -PcCPU1
      -PcCPU2
      -PcCPU3
      -PcCPU4
      -PcRam

      *) 3 Timer
      *) 5 ProgressBars
      *) 6 Label
      *) 5 Label (zur beschriftung)
      *) 1 ComboBox

      Die Form kann z.B. so aussehen:

      (Wie ihr seht ist bei mir der BorderStyle auf None dadurch kann man die Form nicht verschieben. Damit ihr sie doch verschieben könnt müsst ihr diesen Code hinzufügen) :

      VB.NET-Quellcode

      1. Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
      2. If (e.Button = Windows.Forms.MouseButtons.Left) Then
      3. Me.Capture = False
      4. Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero))
      5. End If
      6. 'Dieser Code ist dafür da, dass man die Form auch wenn sie im BorderStyle None ist bewegen kann.
      7. End Sub


      Jetzt erstellen wir noch Variablen:

      VB.NET-Quellcode

      1. Dim core1 As Integer
      2. Dim core2 As Integer
      3. Dim core3 As Integer
      4. Dim core4 As integer
      5. Dim ram As Integer


      Und wir müssen noch die Timer beim Programmstart starten:

      VB.NET-Quellcode

      1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      2. Timer1.Enabled = True
      3. Timer2.Enabled = True
      4. Timer3.Enabled = True
      5. End Sub


      /Edit:
      Schalten Option Strict auf on (thx: ~blaze~)
      Das könnt ihr unter: Extras -> Optionen -> Projekt und Projektmappe -> VBStandard

      =============================================================
      PerformanceCouter/Timer
      =============================================================
      Spoiler anzeigen

      PcCPU1:
      -CategoryName: Prozessor
      -CounterName: Prozessorzeit (%)
      -InstanceName: 0

      PcCPU2:
      -CategoryName: Prozessor
      -CounterName: Prozessorzeit (%)
      -InstanceName: 1

      PcCPU3:
      -CategoryName: Prozessor
      -CounterName: Prozessorzeit (%)
      -InstanceName: 2

      PcCPU4:
      -CategoryName: Prozessor
      -CounterName: Prozessorzeit (%)
      -InstanceName: 3

      PcRam:
      -CategoryName: Arbeitsspeicher
      -CounterName: Verfügbare MB

      Timer1:
      -Interval: 500
      -Enabled: false

      Timer2:
      -Interval: 25
      -Enabled: false

      Timer3:
      -Interval: 10
      -Enabled: false

      Ihr könntet die Cores auch zählen mit:

      VB.NET-Quellcode

      1. System.Environment.ProcessorCount


      =============================================================
      CPU Auslastung anzeigen lassen
      =============================================================
      Spoiler anzeigen

      Dazu müssen wir erst die Auslastung der CPU herraus finden. Dies erledigt der Timer1.

      VB.NET-Quellcode

      1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      2. core1 = PcCPU1.NextValue
      3. core2 = PcCPU2.NextValue
      4. core3 = PcCPU3.NextValue
      5. core4 = PcCPU4.NextValue
      6. 'Hier wird die Auslastung der einzelnen Cores herraus gefunden.
      7. End Sub

      Nun haben wir sie herraus gefunden jetzt müssen wir sie nurnoch anzeigen lassen. Dies erledigt der Timer2.

      VB.NET-Quellcode

      1. 'Jetzt "füllt" der Timer die Progressbars mit der Auslastung der CPU.
      2. Try 'Die Try sind dazu da, dass wenn man nicht so viele Cores hat dass keine Errors kommen.
      3. If ProgressBar1.Value < core1 Then
      4. ProgressBar1.Value += 1
      5. ElseIf ProgressBar1.Value > core1 Then
      6. ProgressBar1.Value -= 1
      7. End If
      8. Catch ex As Exception
      9. End Try
      10. Try
      11. If ProgressBar3.Value < core2 Then
      12. ProgressBar3.Value += 1
      13. ElseIf ProgressBar3.Value > core2 Then
      14. ProgressBar3.Value -= 1
      15. End If
      16. Catch ex As Exception
      17. End Try
      18. Try
      19. If ProgressBar4.Value < core3 Then
      20. ProgressBar4.Value += 1
      21. ElseIf ProgressBar4.Value > core3 Then
      22. ProgressBar4.Value -= 1
      23. End If
      24. Catch ex As Exception
      25. End Try
      26. Try
      27. If ProgressBar5.Value < core4 Then
      28. ProgressBar5.Value += 1
      29. ElseIf ProgressBar5.Value > core4 Then
      30. ProgressBar5.Value -= 1
      31. End If
      32. Catch ex As Exception
      33. End Try
      34. 'Und Hier werd noch mal die prozent in labels dagestellt.
      35. Try
      36. Label3.Text = ProgressBar1.Value.ToString + "%"
      37. Label5.Text = ProgressBar3.Value.ToString + "%"
      38. Label7.Text = ProgressBar4.Value.ToString + "%"
      39. Label9.Text = ProgressBar5.Value.ToString + "%"
      40. Catch ex As Exception
      41. End Try

      Für diesen Schritt gibt es aber auch eine zweite Methode die sehr viel einfacher ist. Doch bei dieser Methode füllen sich die Progressbars nicht so flüssig wie bei der Ersten.

      VB.NET-Quellcode

      1. ProgressBar1.Value = core1
      2. ProgressBar3.Value = core2
      3. ProgressBar4.Value = core3
      4. ProgressBar5.Value = Core4

      Natürlich kann man die Anzahl der einzelnen Cores auch herraus finden. Dazu gib es diesen Code: (Thx ~Blaze~)

      VB.NET-Quellcode

      1. System.Environment.ProcessorCount

      Dann müsst ihr hald alles in If-Schleifen setzen.


      =============================================================
      RAM Auslastung anzeigen lassen
      =============================================================
      Spoiler anzeigen

      Hier müssen wir einfach die einzelnen Timer ergänzen:

      Um die Auslastung des Arbeitsspeichers herraus zu finden fügen wir diesen Code zu Timer1_tick hinzu:

      VB.NET-Quellcode

      1. ram = 100 - (PcRam.NextValue / Convert.ToInt32(My.Computer.Info.TotalPhysicalMemory / 1048576)) * 100


      Damit wir die Auslastung auch angezeigt wird fügen wir diesen Code zu Timer2_tick hinzu:

      VB.NET-Quellcode

      1. Try
      2. If ProgressBar2.Value < ram Then
      3. ProgressBar2.Value += 1
      4. ElseIf ProgressBar2.Value > ram Then
      5. ProgressBar2.Value -= 1
      6. End If
      7. Catch ex As Exception
      8. End Try
      9. End If

      Für die Anzeige der % in den Labels:

      VB.NET-Quellcode

      1. Label4.Text = ProgressBar2.Value.ToString + "%"


      =============================================================
      Freien Speicher der jeweiligen Festplatte anzeigen lassen
      =============================================================
      Spoiler anzeigen

      Dazu benötigen wir das Label mit dem text "Select Drive" und die ComboBox.
      Das Label nennt ihr am besten um in: Label_drive

      Nun ergänzt ihr Form1_Load mit diesem Code:

      VB.NET-Quellcode

      1. ComboBox1.Items.AddRange(System.IO.Directory.GetLogicalDrives) 'Dieser Code ist dafür da, dass er die einzelnen Laufwerke erkennt und zu der ComboBox hinzufügt.


      Zuletzt kommen wir zum Timer3. Dieser findet den freien Speicher der Ausgewählten Festplatte/Laufwerk herraus und zeigt ihn in einem Label an:

      VB.NET-Quellcode

      1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      2. Dim Drive As Long
      3. Try
      4. Drive = My.Computer.FileSystem.GetDriveInfo(ComboBox1.SelectedItem).AvailableFreeSpace / 1000000000 'Hier wird der Freie Speicher herraus gefunden und in GB "konvertiert"
      5. 'Nun wird der freie Speicher in dem Label_drive angezeigt
      6. Label_drive.Text = Drive & ".0 GB frei"
      7. Catch ex As Exception
      8. End Try
      9. End Sub



      Das wars auch schon. :D

      Ich hoffe ich konnte euch mit diesem Tutorial über: "RAM- CPU Auslastung und Freien Speicherplatz der Festplatten" helfe.
      Bei fragen bitte einfach melden ;)

      VB.NET-Quellcode

      1. Public Sub lg
      2. Gather
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Gather“ ()

      JU84553Hgd schrieb:

      Der PerformanceCounter hat leider so seine Schwierigkeiten auf manchen Systemen (wie z.B. Vista Laptop von meinem Bruder)

      Ist möglich... Hängt sicher auch von den Systemen ab.

      =============================================================
      UPDATE: CPU Temperatur ermitteln
      =============================================================

      Ich hab mir mal Zeit genommen und mich ein bisschen umgeschaut und habe 2 Möglichkeiten gefunden um die CPU Temperatur zu ermitteln:

      Möglichkeit 1:
      Spoiler anzeigen

      Für die Brauchst ihr die System.Management Dll. (Ich heng sie als Anhang hinzu)

      Erstellt einfach eine Form mit 2 Buttons und 1 Label.

      Als erstes fügt ihr die Dll als Verweis hinzu.
      Dann importiert ihr sie:

      VB.NET-Quellcode

      1. Imports System.Management


      Nun kommt der Code zum ermitteln der CPU Temperatur:

      VB.NET-Quellcode

      1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
      2. Try
      3. Dim TempSearcher As New Management.ManagementObjectSearcher( _
      4. "root\WMI", "SELECT * FROM MSAcpi_ThermalZoneTemperature")
      5. For Each TempSensor As Management.ManagementObject In TempSearcher.Get()
      6. Dim Temperature As Double = CDbl(TempSensor("CurrentTemperature"))
      7. Temperature = (Temperature - 2732) / 10.0
      8. MessageBox.Show(Temperature.ToString & "° C")
      9. Next
      10. Catch err As Management.ManagementException
      11. MessageBox.Show("Fehler: " & err.Message)
      12. End Try
      13. End Sub



      Möglichkeit 2:
      Spoiler anzeigen

      Für die 2. Methode verwenden wir CoreTemp. Hier benötigt ihr die GetCoreTempInfoNet.dll (Ebenfalls im Anhang)
      Damit es funktioniert müsst ihr CoreTemp starten und im Hintergrund laufenlassen.

      Natürlich müsst ihr sie wieder als Verweis hinzufügen.
      Dann Importiert ihr sie wieder:

      VB.NET-Quellcode

      1. Imports GetCoreTempInfoNET


      Als nächstes müsst ihr noch eine Public erstellen (Unter Public Sub):

      VB.NET-Quellcode

      1. Dim CTInfo As CoreTempInfo


      Wichtig ist noch das ihr in Form1_Load diesen Code hineinschreibt:

      VB.NET-Quellcode

      1. CTInfo.GetData()


      Nun kommen wir wieder zum Code der die CPU Temperatur ermittelt:

      VB.NET-Quellcode

      1. Label1.Text = CStr(CTInfo.GetTemp(0)) ' 1. Kern
      2. Label2.Text = CStr(CTInfo.GetTemp(1)) ' 2. Kern


      [Info:] Mit der GetCoreTempInfoNet.dll könnt ihr noch mehr als nur die CPU Temperatur ermitteln! (Infos dazu Hier! )


      Nicht wundern wenn bei Methode 1 kommt "Nicht Unterstützt". Dann funktioniert das nicht auf eurem System.

      Bei fragen wie immer einfach melden.


      PS: Bedanken nicht vergessen ;D
      Dateien
      • Dll's.rar

        (106,67 kB, 804 mal heruntergeladen, zuletzt: )
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Gather“ ()

      Mir ist aufgefallen, dass du gar nicht für "PcRam" den CategoryName und den CounterName geschrieben hast.
      Ich hab da einfach mal nichts ergänzt.
      Allerdings erhalte ich einen Fehler.
      (Den erhalte ich auch wenn ich zB "Ram" & "Arbeitsspeicher (%)" dahineinschreibe.)

      Hast du evtl. einen Ratschlag für mich?

      Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Fehler bei der Initialisierung. CategoryName ist nicht vorhanden..


      Was mich stutzig macht ist, dass ich die "Quelle nicht verfügbar"-Seite zusehen bekomme.
      Die hatte ich zuletzt bei dem Bug vor einiger Zeit, wo Antivir das Debuggen geblockt hat..

      Ich hoffe du kannst mich verstehen und mir helfen.

      Grüße Pidgin
      Erstmal danke dass dir das aufgefallen ist, ich habs jez mal ergänzt:
      PcRam:
      -CategoryName: Arbeitsspeicher
      -CounterName: Verfügbare MB
      mfg: Gather
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Wie wär's wenn du das ganze dann noch dynamisch gestaltest?

      Du schreibst ja schon, dass die Try- und Catch-Blöcke genutzt werden, weil nicht jeder 4 CPU's hat. Was ist aber mit Leuten, die einen Hexacore verbaut haben?

      Ich würde eine List(Of PerformanceCounter) anlegen und mit einer For-Schleife füllen. Musste nur schauen, wie's dann mit den Progressbars und so ausschaut, aber das wär mal ein Schritt weiter zu einem dynamischen System :).

      MfG,
      X-Zat / Momo
      Hm..

      Ich bekomme immer noch den oben gennanten Fehler.

      Mein Code:

      VB.NET-Quellcode

      1. Public Class Form1
      2. Dim core1 As Integer
      3. Dim core2 As Integer
      4. Dim core3 As Integer
      5. Dim core4 As Integer
      6. Dim ram As Integer
      7. Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
      8. If (e.Button = Windows.Forms.MouseButtons.Left) Then
      9. Me.Capture = False
      10. Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero))
      11. End If
      12. End Sub
      13. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      14. Timer1.Enabled = True
      15. Timer2.Enabled = True
      16. Timer3.Enabled = True
      17. ComboBox1.Items.AddRange(System.IO.Directory.GetLogicalDrives) 'Dieser Code ist dafür da, dass er die einzelnen Laufwerke erkennt und zu der ComboBox hinzufügt.
      18. End Sub
      19. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      20. core1 = PcCPU1.NextValue
      21. core2 = PcCPU2.NextValue
      22. core3 = PcCPU3.NextValue
      23. core4 = PcCPU4.NextValue
      24. 'Hier wird die Auslastung der einzelnen Cores herraus gefunden.
      25. ram = 100 - (PcRAM.NextValue / Convert.ToInt32(My.Computer.Info.TotalPhysicalMemory / 1048576)) * 100
      26. End Sub
      27. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
      28. 'Jetzt "füllt" der Timer die Progressbars mit der Auslastung der CPU.
      29. Try 'Die Try sind dazu da, dass wenn man nicht so viele Cores hat dass keine Errors kommen.
      30. If ProgressBar1.Value < core1 Then
      31. ProgressBar1.Value += 1
      32. ElseIf ProgressBar1.Value > core1 Then
      33. ProgressBar1.Value -= 1
      34. End If
      35. Catch ex As Exception
      36. End Try
      37. Try
      38. If ProgressBar2.Value < core2 Then
      39. ProgressBar2.Value += 1
      40. ElseIf ProgressBar2.Value > core2 Then
      41. ProgressBar2.Value -= 1
      42. End If
      43. Catch ex As Exception
      44. End Try
      45. Try
      46. If ProgressBar3.Value < core3 Then
      47. ProgressBar3.Value += 1
      48. ElseIf ProgressBar3.Value > core3 Then
      49. ProgressBar3.Value -= 1
      50. End If
      51. Catch ex As Exception
      52. End Try
      53. Try
      54. If ProgressBar4.Value < core4 Then
      55. ProgressBar4.Value += 1
      56. ElseIf ProgressBar4.Value > core4 Then
      57. ProgressBar4.Value -= 1
      58. End If
      59. Catch ex As Exception
      60. End Try
      61. 'Und Hier werd noch mal die prozent in labels dagestellt.
      62. Try
      63. Label1.Text = ProgressBar1.Value.ToString + "%"
      64. Label2.Text = ProgressBar2.Value.ToString + "%"
      65. Label3.Text = ProgressBar3.Value.ToString + "%"
      66. Label4.Text = ProgressBar4.Value.ToString + "%"
      67. Catch ex As Exception
      68. End Try
      69. Try
      70. If ProgressBar5.Value < ram Then
      71. ProgressBar5.Value += 1
      72. ElseIf ProgressBar5.Value > ram Then
      73. ProgressBar5.Value -= 1
      74. End If
      75. Catch ex As Exception
      76. End Try
      77. Label5.Text = ProgressBar5.Value.ToString + "%"
      78. End Sub
      79. Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
      80. Dim Drive As Long
      81. Try
      82. Drive = My.Computer.FileSystem.GetDriveInfo(ComboBox1.SelectedItem).AvailableFreeSpace / 1000000000 'Hier wird der Freie Speicher herraus gefunden und in GB "konvertiert"
      83. 'Nun wird der freie Speicher in dem Label_drive angezeigt
      84. Label_drive.Text = Drive & ".0 GB frei"
      85. Catch ex As Exception
      86. End Try
      87. End Sub
      88. End Class


      Weißt du eventuell woran das liegt?
      Naja ja das könnte man machen, danke dir ;D

      Das is ja eig. die "Noob-Variante". Die jeder versteht (obwohl man deine auch verstehen sollte ^^)
      Ich weiß das man natürlich die Core auch zählen kann:

      VB.NET-Quellcode

      1. System.Environment.ProcessorCount

      (ich weiß du meinst das mit List(Of...) und For)
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Also ich hab jez ma deinen Code genommen, und alles funktioniert:

      Spoiler anzeigen

      VB.NET-Quellcode

      1. Public Class Form1
      2. Dim core1 As Integer
      3. Dim core2 As Integer
      4. Dim core3 As Integer
      5. Dim core4 As Integer
      6. Dim ram As Integer
      7. Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
      8. If (e.Button = Windows.Forms.MouseButtons.Left) Then
      9. Me.Capture = False
      10. Me.WndProc(Message.Create(Me.Handle, &HA1, CType(&H2, IntPtr), IntPtr.Zero))
      11. End If
      12. End Sub
      13. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      14. Timer1.Enabled = True
      15. Timer2.Enabled = True
      16. Timer3.Enabled = True
      17. ComboBox1.Items.AddRange(System.IO.Directory.GetLogicalDrives) 'Dieser Code ist dafür da, dass er die einzelnen Laufwerke erkennt und zu der ComboBox hinzufügt.
      18. End Sub
      19. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      20. core1 = PcCPU1.NextValue
      21. core2 = PcCPU3.NextValue
      22. core3 = PerformanceCounter4.NextValue
      23. core4 = PerformanceCounter5.NextValue
      24. 'Hier wird die Auslastung der einzelnen Cores herraus gefunden.
      25. ram = 100 - (PerformanceCounter2.NextValue / Convert.ToInt32(My.Computer.Info.TotalPhysicalMemory / 1048576)) * 100
      26. End Sub
      27. Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
      28. 'Jetzt "füllt" der Timer die Progressbars mit der Auslastung der CPU.
      29. Try 'Die Try sind dazu da, dass wenn man nicht so viele Cores hat dass keine Errors kommen.
      30. If ProgressBar1.Value < core1 Then
      31. ProgressBar1.Value += 1
      32. ElseIf ProgressBar1.Value > core1 Then
      33. ProgressBar1.Value -= 1
      34. End If
      35. Catch ex As Exception
      36. End Try
      37. Try
      38. If ProgressBar2.Value < core2 Then
      39. ProgressBar2.Value += 1
      40. ElseIf ProgressBar2.Value > core2 Then
      41. ProgressBar2.Value -= 1
      42. End If
      43. Catch ex As Exception
      44. End Try
      45. Try
      46. If ProgressBar3.Value < core3 Then
      47. ProgressBar3.Value += 1
      48. ElseIf ProgressBar3.Value > core3 Then
      49. ProgressBar3.Value -= 1
      50. End If
      51. Catch ex As Exception
      52. End Try
      53. Try
      54. If ProgressBar4.Value < core4 Then
      55. ProgressBar4.Value += 1
      56. ElseIf ProgressBar4.Value > core4 Then
      57. ProgressBar4.Value -= 1
      58. End If
      59. Catch ex As Exception
      60. End Try
      61. 'Und Hier werd noch mal die prozent in labels dagestellt.
      62. Try
      63. Label1.Text = ProgressBar1.Value.ToString + "%"
      64. Label2.Text = ProgressBar2.Value.ToString + "%"
      65. Label3.Text = ProgressBar3.Value.ToString + "%"
      66. Label4.Text = ProgressBar4.Value.ToString + "%"
      67. Catch ex As Exception
      68. End Try
      69. Try
      70. If ProgressBar5.Value < ram Then
      71. ProgressBar5.Value += 1
      72. ElseIf ProgressBar5.Value > ram Then
      73. ProgressBar5.Value -= 1
      74. End If
      75. Catch ex As Exception
      76. End Try
      77. Label5.Text = ProgressBar5.Value.ToString + "%"
      78. End Sub
      79. Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
      80. Dim Drive As Long
      81. Try
      82. Drive = My.Computer.FileSystem.GetDriveInfo(ComboBox1.SelectedItem).AvailableFreeSpace / 1000000000 'Hier wird der Freie Speicher herraus gefunden und in GB "konvertiert"
      83. 'Nun wird der freie Speicher in dem Label_drive angezeigt
      84. Label_drive.Text = Drive & ".0 GB frei"
      85. Catch ex As Exception
      86. End Try
      87. End Sub
      88. End Class


      Ich habe nur

      VB.NET-Quellcode

      1. core1 = PcCPU1.NextValue
      2. core2 = PcCPU3.NextValue
      3. core3 = PerformanceCounter4.NextValue
      4. core4 = PerformanceCounter5.NextValue
      5. 'Hier wird die Auslastung der einzelnen Cores herraus gefunden.
      6. ram = 100 - (PerformanceCounter2.NextValue / Convert.ToInt32(My.Computer.Info.TotalPhysicalMemory / 1048576)) * 100


      Auf meine ProcessCounter festgelegt.

      Bei deinem Beschriebenem Fehler steht ja:

      [...] CategoryName ist nicht vorhanden..
      Kontrolliere nochmal ob du eh bei allen ProcessCountern den CategoryName (bzw. CounterName) hast.
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Hi,

      ich habe überall CategoryNames..
      Trotzdem bleibt der Fehler da.

      Ich habe noch ein weiteres Problem:
      Wenn ich über der Klasse Form1

      VB.NET-Quellcode

      1. Option Script On
      einfüge, so erhalte ich Errors bei:

      VB.NET-Quellcode

      1. core1 = PcCPU1.NextValue
      2. core2 = PcCPU2.NextValue
      3. core3 = PcCPU3.NextValue
      4. core4 = PcCPU4.NextValue

      "Option Strict On" lässt keine impliziten Konvertierungen von Single in Integer zu.
      Ich hab alles so gemacht, wie du es geschrieben hast.

      ByTheWay: Was bedeutet BorderStyle? Warum muss der auf None gesetzt werden?

      Hab ich zwar gemacht, weiß aber nicht genau was das bringt.
      (Achja, den Code fürs Bewegen der Form hab ich auch drin!)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

      Ja ich weiß, dass bei meinem Code kein Option Strict on geht...(also mach ma off)

      und:

      Borderstyle, der ist eig. egal ich habs nur mal so gemacht damits hald anders aussieht
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Sry das ich dieses Thema ausgrabe aber
      Bei Ramauslastung ist beim 2 ten Code
      unten ein end if was nicht gebraucht wird.

      Gather schrieb:

      Damit wir die Auslastung auch angezeigt wird fügen wir diesen Code zu Timer2_tick hinzu:

      VB.NET-Quellcode

      1. Try
      2. If ProgressBar2.Value < ram Then
      3. ProgressBar2.Value += 1
      4. ElseIf ProgressBar2.Value > ram Then
      5. ProgressBar2.Value -= 1
      6. End If
      7. Catch ex As Exception
      8. End Try
      9. End If

      Hier.

      Edit by ~blaze~:
      Beiträge zusamengefügt, VB-Tag eingefügt

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

      Leider funktioniert es bei mir ab dem ersten Schritt schon nicht das es mir einen Fehler anzeigt das dieser Name nicht vergeben sei obwohl ich dies eine Minute zuvor erst machte. Wenn jemand eine Lösung weis ich wäre euch dankbar wenn Ihr mir diese mitteilen würdet. Ich werde mich weiterhin etwas mit dem Problem auseinander setzen und hoffe ich finde eine Lösung. Trotzdem großes Lob an dieses Tutorial es ist wirklich sehr übersichtlich gestaltet muss ich schon sagen. Weiter so!

      Ich hoffe auf Lösungsvorschläge seitens euch und bedanke mich schon einmal im voraus. :P