Reselie Δημοσιεύτηκε Αύγουστος 31, 2008 #1 Δημοσιεύτηκε Αύγουστος 31, 2008 Γεια σας παιδια, μηπως ξερει καποιος απο εσας πως να συσχετισω μια Proggress bar,με την χρηση cpu του συστηματος? θα ημουν ευγνωμον! ευχαριστω προκαταβολικα! αυτο που θελω να κανω ειναι core temp-like αλλα αντι για ποσοστα με progress bars..
darien Σεπτέμβριος 1, 2008 #2 Σεπτέμβριος 1, 2008 Αν μιλαμε για vb.net, αυτο που χρειαζεσαι ειναι το System.Diagnostics.PerformanceCounter class. Κοιτα στo MSDN για το πως συντασσεται. Αυτο θα σου επιστρεψει την τιμη της cpu, την οποια θα την θεσεις τιμη του ProgressBar, και θα βαλεις και εναν Timer, να "ανανεωνει" συνεχως και θα εισαι ετοιμος
Reselie Σεπτέμβριος 1, 2008 Author #3 Σεπτέμβριος 1, 2008 ευχαριστω πολυ darien!εαν το κανω ετσι θα δουλευει με ολους τους cpu η θα εχω κανα προβλημα ασυμβατοτητας?ναι για vb.net μιλαμε*visual studio 2005 για την ακριβια..
oxide Σεπτέμβριος 1, 2008 #4 Σεπτέμβριος 1, 2008 νομιζω πως εισαι ενταξει...και ο darien για vb.net 2005 σου ειπε 99%.
Reselie Σεπτέμβριος 1, 2008 Author #5 Σεπτέμβριος 1, 2008 εγραψα δοκιμαστικα (το εκανα πειραματικα σαν button για να δοκιμασω) Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickPublic [U][B]class[/B][/U] PerformanceCounter _ Inherits Component _ Implements ISupportInitialize Dim pc As PerformanceCounter pc.NextValue() ProgressBar1.Value = pc.NextValueΑλλα μου χτυπαει το class σαν "keyword is not a valid intentifier"
Jaco Σεπτέμβριος 1, 2008 #6 Σεπτέμβριος 1, 2008 Δεν μπορείς να ορίσεις class μέσα σε function...!Σβήσε το "Public class PerformanceCounter Inherits Component Implements ISupportInitialize"Edit:Δήλωσε το namespace στην αρχή Imports System.DiagnosticsΔες και στο msdn για την class του PerformanceCounter, έχει και παράδειγμα...Επίσης δεν αρκεί να δηλώσεις...: Dim pc As PerformanceCounterΘα πρέπει να κάνεις και init το object σου...: pc = New PerformanceCounter("..", "..", False)όπου "..." ο system counter που χρειάζεσαι, πχ "TotalProcessorTime"
ChSin7 Σεπτέμβριος 1, 2008 #7 Σεπτέμβριος 1, 2008 Πολύ ενδιαφέρον θέμα, θα μας δώσεις το source code οταν τελειόσεις ?
darien Σεπτέμβριος 1, 2008 #8 Σεπτέμβριος 1, 2008 λοιπον, φτιαξε στη φορμα σου ενα Timer και ενα Progressbar και στον κωδικα: Public Class Form1 Public cpu_monitor As New System.Diagnostics.PerformanceCounter("Processor", "% Processor Time", "_Total") Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Timer1.Interval = 1000 Timer1.Enabled = True End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick ProgressBar1.Value = cpu_monitor.NextValue() End Sub End Class μπορεις να αλλαξεις την τιμη του Timer1.Interval, αναλογα με το ποσο γρηγορα θελεις να γινεται η ανανεωση. 1000 = 1 δευτερολεπτο
oxide Σεπτέμβριος 1, 2008 #9 Σεπτέμβριος 1, 2008 επισης για καποιο λογο που δεν γνωριζω...σε περιπτωση που το βαλουμε να ενημερωνει παραπανω απο 1 στοιχεια με την cpu_monitor.NextValue() το κανει μονο για το πρωτο...γιατι ?
darien Σεπτέμβριος 1, 2008 #10 Σεπτέμβριος 1, 2008 τελικα,αυτο οσο κι αν το'ψαξα, δεν βρηκα κατι. Μαλλον κατι παιζει με το nextvalue, οπως μου ειπες στο msn. Μπορει να λυθει, αν δηλωσουμε ακομα ενα διαφορετικο PerformanceCounter. edit: ή πιο απλα, χρησιμοποιωντας μια μεταβλητη
Reselie Σεπτέμβριος 1, 2008 Author #11 Σεπτέμβριος 1, 2008 ευχαριστω παιδες! επειδη σημερα εστηνα την maximus(τhnx Πετρο!) δεν προλαβα να κανω κατι..αυριο το πρωι θα δοκιμασω! εννοητε μολις τελειωσω θα κανω ενα guide* *θα προσπαθησω τουλαχιστον thnx και παλι!!
Recommended Posts
Archived
This topic is now archived and is closed to further replies.