Hallo Forum!
Ich brauche bitte mal eure Hilfe, weil ich irgendwo einen Knoten im Hirn zu haben scheine...
Der folgende Code zeigt zum einen die CPU Auslastung des Rechners total und für den Prozess "firefox" erfolgreich separat an.
'CPU Auslastung anzeigen:
Dim cpuCounter = New PerformanceCounter("Processor", "% Processor Time", _
"_Total")
Dim procCounter = New PerformanceCounter("Process", "% Processor Time", _
"firefox")
ProgressBar1.Value = CInt(cpuCounter.NextValue())
ProgressBar2.Value = CInt(procCounter.NextValue())Ich arbeite an einer Art Tastwatcher für 6 bestimmte Programme und nur die CPU Anzeige bleibt stets auf "0 %". Den im Beispiel funktionierenden Code habe ich in der Funktion unten verwendet und die fixe Angabe "firefox" durch den Prozessnamen "p.ProcessName" ersetzt...
Was mache ich falsch?, denn alle anderen Werte werden ermittelt... Danke Euch vorab!
Private Function ErmittleResourcenProTask()
...
lwListe.Items.Clear()
For Each p As Process In Process.GetProcesses
If p.MainWindowTitle = "ProgrammName1" Or p.MainWindowTitle = _
"ProgrammName2" Or _
p.ProcessName = "OUTLOOK" Or p.MainWindowTitle = _
"ProgrammName3" _
Or p.MainWindowTitle = "ProgrammName4" Or p.ProcessName = _
"ProgrammName5" Then
Dim procCounter = New PerformanceCounter("Process", "%" & _
"Processor Time", p.ProcessName)
With Me.lwListe.Items.Add(p.ProcessName)
.SubItems.Add(p.MainWindowTitle)
.SubItems.Add(p.Id)
.SubItems.Add(procCounter.NextValue & " %")
.SubItems.Add(p.StartTime)
.SubItems.Add(Convert.ToString(Now - p.StartTime))
.SubItems.Add(p.Responding)
.SubItems.Add(Format(p.WorkingSet64 / 1000, "#,##0") & _
" KB")
.SubItems.Add(p.Threads.Count)
.SubItems.Add(p.HandleCount)
.SubItems.Add(Format( _
p.TotalProcessorTime.TotalMilliseconds, "#,##0" & "" & _
"ms"))
End With
End If
Next
...
End FunctionPrivate Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
With Me.lwListe.Columns
.Add("Process:", 85, HorizontalAlignment.Left)
.Add("Title:", 85, HorizontalAlignment.Left)
.Add("ID:", 40, HorizontalAlignment.Left)
.Add("CPU:", 50, HorizontalAlignment.Left)
.Add("Starttime:", 115, HorizontalAlignment.Left)
.Add("Runtime:", 85, HorizontalAlignment.Left)
.Add("Avail.:", 45, HorizontalAlignment.Left)
.Add("Memory:", 75, HorizontalAlignment.Left)
.Add("Threads:", 55, HorizontalAlignment.Left)
.Add("Handles:", 55, HorizontalAlignment.Left)
.Add("Processortime:", 85, HorizontalAlignment.Left)
End With
End SubPrivate Sub Timer1_Tick(sender As Object, e As EventArgs) Handles _
TimerMessung.Tick
ErmittleResourcenProTask()
End Sub Danke und Gruß !
Ich verwende VB.Net 2012 |