Hi incase you haven't already done it.. Does this work for you: Code: Public Function PSpeed() Dim cc As String = "" Dim result As String = "" Dim searcher As New ManagementObjectSearcher("root\CIMV2", "SELECT * FROM Win32_Processor") For Each Obj As ManagementObject In searcher.Get() cc = Obj("NumberOfCores") Dim speed As Double = CDbl(Obj("CurrentClockSpeed")) Select Case speed Case Is >= 1000 result = String.Format("Processor: {0:0.00} GHz x " & cc, speed / 1000, 1) Case Else result = String.Format("Processor: {0:0.00} MHz x " & cc, speed, 1) End Select Next Return result End Function Usage: Code: CPUS.Text = PSpeed()