Vb 10 Cpu Temperatur

Registriert
Juli 2012
Beiträge
129
Hey Jungs und Mädels,ich bin ein eher Einsteiger in diesem Programm,ich habe zwar schon ein wenig Erfahrung aber noch nicht genug^^.
Ich würde gerne ein Tool bzw. eine Oberfläche erstellen,die mir an einem Balken zeigt,wie warm die Cpu ist (I5 3570k)
und villeicht auch die Gpu (GTX680 ,wenn dies mögl. ist). Zudem würde ich auch noch eine Ram ausnutzung und Cpu belastungs Anzeige einbauen!
Nur
1. Ich weiss nicht wie man darauf zugreiufen kann und 2. Ich weiss nicht wie man die Balken anpasst :)
Mfg Paul :)

//Ich habe zwar schon andere Thraeds gefunden,doch komme ich nicht dahinter bzw. verstehe das nicht :/
 
Zuletzt bearbeitet:
Das Programm Rainmeter kann alles was du willst, das problem ist das man es noch konfigurieren muss bis du das bekommst was du willst. Ich bin relativ neu bei Rainmeter und kann dir da leider nicht weiter helfen.

Achja und das ist auch nur ein Desktop Programm, das heißt du siehst das alles nur auf dem Desktop( aber "verankert")
 
Danke ersteinmal für deinen Vorschlag,dennoch ist es nicht das waas ich suche,ich würde das ja gerne mit Visual Basic schreiben und vorallendingen LERNEN! :)
 
Lies' dir Tutorial durch. Wenn du es noch nicht mal schaffst, Balken darzustellen, sehe ich schwarz für den Zugriff auf Hardwaresensoren.
Letzteres kannst ja auch erst mal simulieren.
 
Darlis schrieb:
Lies' dir Tutorial durch. Wenn du es noch nicht mal schaffst, Balken darzustellen, sehe ich schwarz für den Zugriff auf Hardwaresensoren.
Letzteres kannst ja auch erst mal simulieren.

Hey,ich blicke da nicht so ganu durch,wie du das meinst,aber danke für die Antwort :)
 
Ich meine, mach' dich erst mal mit der Sprache vertraut. Versuch' erst mal eine GUI-Anwendung mit deinen Balken zu entwickeln. Dann erstelle eine Komponente, die die Sensoren simuliert (sprich: diese erzeugt irgendwelche Zufallszahlen) und die die Balken der GUI aktualisiert.
 
Hey,das mit dem Balken war doch gar kein Problem^^ eig. ganz einfach stelle ich gerad fest :D

hier meine erster code (zwar keine richtige simulation,er stelle einen timer dar,weiss nur nicht,wie ich einen simulation darstellen soll) :


Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 90
End Sub

Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ProgressBar1.PerformStep()
End Sub

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Enabled = True // Startet den timer(progressbar)
End Sub

Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Timer1.Enabled = False // Stoppt den timer(progressbar)
End Sub

Private Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
Timer1.Enabled = False // Stoppt den timer(progressbar)
ProgressBar1.Value = 0 // Resetet den timer(progressbar)
End Sub
End Class
 
Schön, dann kannst du schon mal anfangen, deinen Komponenten sprechende Namen zu geben. Erst di Kommentare lesen zu müssen, um zu wissen welche Komponente für was zuständig ist ist suboptimal.

Zur Simulation habe ich ja schon Zufallszahlen genannt. Die ProgressBar hat übrigens mehr Methoden als PerformStep().
 
Was soll ich jetzt genau machen?
Mfg
Ergänzung ()

Unbenannt.jpg

So sollte es hinterher aussehen^^
Meine nächster schritt wäre jetzt,dass ich lernen will,wie ich es hinkriegen das die progressbar sich füllt bzw lehrt :)
MFG
Ergänzung ()

Hey,ich bin schon deutlich weiter,habe jedoch ein kleines problem ,erstmal ein screenshot:
scrennshot1.jpg
Und hier der code:
Code:
Public Class Form1

    Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    Private PerCounter As System.Diagnostics.PerformanceCounter
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Start()
        PerCounter = New System.Diagnostics.PerformanceCounter
        PerCounter.CategoryName = "Processor"
        PerCounter.CounterName = "% Processor Time"
        PerCounter.InstanceName = "_Total"
        '_____________________________________________________________
        Dim c As New System.IO.DriveInfo("C:\")

        'Prozentuale anzeige,Max 100
        ProgressBar4.Maximum = 100

        ' Den Freien Speicher in Prozent berechnen
        Dim proz As Integer = c.TotalFreeSpace / c.TotalSize * 100

        ' Die Anzeige der Progressbar setzen
        ProgressBar4.Value = ProgressBar4.Maximum - proz

        If proz > 0 And proz < 10 Then
            SendMessage(ProgressBar4.Handle, 1040, 2, 0)
        ElseIf proz > 10 And proz < 25 Then
            SendMessage(ProgressBar4.Handle, 1040, 3, 0)
        Else
            SendMessage(ProgressBar4.Handle, 1040, 1, 0)
        End If
        Label10.Text = "Frei: " + proz.ToString + "%"
        '_______________________________________________________________
        Dim d As New System.IO.DriveInfo("D:\")

        ProgressBar5.Maximum = 100

        Dim proze As Integer = d.TotalFreeSpace / d.TotalSize * 100

        ProgressBar5.Value = ProgressBar5.Maximum - proze
        ''Anzeige ab wv % es welche farbe haben soll
        If proze > 0 And proze < 10 Then
            SendMessage(ProgressBar5.Handle, 1040, 2, 0)
        ElseIf proze > 10 And proze < 25 Then
            SendMessage(ProgressBar5.Handle, 1040, 3, 0)
        Else
            SendMessage(ProgressBar5.Handle, 1040, 1, 0)
        End If
        Label11.Text = "Frei: " + proze.ToString + "%"
        ' ______________________________________________________________
        Dim a As New System.IO.DriveInfo("E:\")

        ProgressBar6.Maximum = 100

        Dim prozen As Integer = a.TotalFreeSpace / a.TotalSize * 100

        ProgressBar6.Value = ProgressBar6.Maximum - prozen
        ''Anzeige ab wv % es welche farbe haben soll
        If prozen > 0 And prozen < 10 Then
            SendMessage(ProgressBar6.Handle, 1040, 2, 0)
        ElseIf prozen > 10 And prozen < 25 Then
            SendMessage(ProgressBar6.Handle, 1040, 3, 0)
        Else
            SendMessage(ProgressBar6.Handle, 1040, 1, 0)
        End If
        Label12.Text = "Frei: " + prozen.ToString + "%"
    End Sub
    '______________________________________________________________________________________
    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        'Ramauslastung
        Dim nutzram As Double
        nutzram = (My.Computer.Info.TotalPhysicalMemory - My.Computer.Info.AvailablePhysicalMemory) / 1048576 / 1024
        'Label7.Text = "RAM: " & nutzram.ToString("N") & " GB"

        Dim Prozent1 As Long
        Prozent1 = My.Computer.Info.AvailablePhysicalMemory * 100
        Dim Prozentsatz As Long
        Prozentsatz = Val(Prozent1 / My.Computer.Info.TotalPhysicalMemory)
        ProgressBar1.Value = Prozentsatz
        Label7.Text = "Frei: " + ProgressBar1.Value.ToString + "%"
    End Sub

    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
        If CheckBox1.Checked = True Then
            Me.TopMost = True
        Else
            Me.TopMost = False
        End If
    End Sub
End Class

Meine Frage ist nun,wenn ich das programm debugge,zeigt es mir bei Ram,den freien Abeitsspeichjer an,ich hätte aber gerne,dass mir der benutzte arbeitsspeicher angezeigt wird.
Mfg Paul
 
Du kennst doch den verfügbaren und gesamten Arbeitsspeicher. Daraus kannst du den Benutzen berechnen. Simple Mathematik.
 
Oke,habe jetzt diesen code,er zeigt es mir zwar richtig an,jedoch ist die progressbar glaube ich nicht richtig :scrennshot1.jpg
Ich habe 16Gb Ram und es sind ca 2,4 ausgenutzt,da müsste die progressbar doch eig. mehr anzeigen,nach meinem gefühl :S

Code:
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        'Ramauslastung
        Dim nutzram As Double
        nutzram = (My.Computer.Info.TotalPhysicalMemory - My.Computer.Info.AvailablePhysicalMemory) / 1048576 / 1024
        ProgressBar1.Value = nutzram
        Label7.Text = "RAM: " & nutzram.ToString("N") & " GB"
    End Sub
Ergänzung ()

Darlis schrieb:
Du kennst doch den verfügbaren und gesamten Arbeitsspeicher. Daraus kannst du den Benutzen berechnen. Simple Mathematik.

Wie genau muss ich das denn dan rechen ,also den code(Totaler Ram - Freier Ram = Benutzter Ram :D ) und wie sieht der code dafür aus??
 
Zuletzt bearbeitet:
Der Balken sieht ziemlich genau nach 2,4 % aus. ;)
Du hast jetzt zwei Möglichkeiten: Value korrigieren oder ein anderes Maximum festlegen.
 
Du kannst Progrssbar1.Value mit dem korrekten Prozentwert belegen oder du lässt es so wie es ist und setzt nur für ProgressBar1.Maximum einen anderen Wert ein. Dir muss halt klar sein, dass du beide Felder mit beliebigen Werten füllen kannst, so wie es dir am besten passt.
Ich würde die letztere Variante nehmen.
 
Ich meine so etwas:
Code:
ProgressBar1.Maximum = My.Computer.Info.TotalPhysicalMemory;
Es sollte jetzt nicht so schwer sein, den Wert für ProgressBar1.Value zu setzen.
 
Darlis schrieb:
Ich meine so etwas:
Code:
ProgressBar1.Maximum = My.Computer.Info.TotalPhysicalMemory;
Es sollte jetzt nicht so schwer sein, den Wert für ProgressBar1.Value zu setzen.

Felehrmeldung:
Die arithmetische Operation hat einen Überlauf verursacht.

woran liegt das?
Und doch,es ist immoment schwer für mich,das zu verstehen ( "Es sollte jetzt nicht so schwer sein, den Wert für ProgressBar1.Value zu setzen.")
Ergänzung ()

Wenn ich das geregelt habe,fehlt mir nur noch die Cpu Temperatur :freak: , Habe allerdings schon in google geschaut aber nichts passendes gefunden,könnt ihr mir weiter helfen?

Mfg Paul
 
Zuletzt bearbeitet:
Ah ja, ProgrssBar.Maximum nimmt nur einen int entgegen, da passen 16GB (als Bytes) nicht rein. Du musst hier zumindest etwas runterrechnen (in ein unsigned int passen nur etwa 2GB).

Wenn du aber lieber gleich mit Prozent arbeiten willst und besser verstehst, dann nimm die.
 
oke oke,ich habs ja ,ääääh ich habe es doch nicht verstanden,was soll ich den jetzt bei .Maximum eintragen 100% oder was?? :/
 
Zurück
Oben