2008-12-04 33 views

Trả lời

3

Các System.Management Namespace Cung cấp truy cập đến một tập hợp phong phú của thông tin quản lý và quản lý sự kiện về hệ thống, thiết bị, và các ứng dụng instrumented đến Windows Management Instrumentation (WMI) cơ sở hạ tầng.

Lớp WMI Win32 Processor là một thiết bị có thể giải thích chuỗi các lệnh trên máy tính chạy trên hệ điều hành Windows. Trên một máy tính đa xử lý, một cá thể của lớp Win32_Processor tồn tại cho mỗi bộ xử lý. Lớp học bao gồm trường Processor family type, mã hóa những thứ như Bộ xử lý AMD Opteron Gia đình.

Ví dụ về C# issuing WMI query ở cuối trang.

11

Xin lưu ý rằng đây là từ VS2003:

using(ManagementObjectSearcher win32Proc = new ManagementObjectSearcher("select * from Win32_Processor"),   
    win32CompSys = new ManagementObjectSearcher("select * from Win32_ComputerSystem"), 
     win32Memory = new ManagementObjectSearcher("select * from Win32_PhysicalMemory")) 
      { 
       foreach (ManagementObject obj in win32Proc.Get()) 
       { 
        clockSpeed = obj["CurrentClockSpeed"].ToString(); 
        procName = obj["Name"].ToString(); 
        manufacturer = obj["Manufacturer"].ToString(); 
        version = obj["Version"].ToString(); 
       } 
+3

Lưu ý rằng "CurrentClockSpeed" không phải là tài sản mà bạn nên nhìn vào để xác định MHz (Windows có thể giảm xuống bộ vi xử lý hiện đại nhất khi sử dụng thấp, để tiết kiệm năng lượng). Thay vào đó, bạn nên xem "MaxClockSpeed" - đây là tốc độ đồng hồ tối đa mà Windows có thể đồng bộ với bộ xử lý. – BrainSlugs83

0

Mã này sẽ được tính CPU

Imports System.Management 



    Private Sub InsertInfo() 
       lstView.Items.Clear() 

       Dim searcher As New ManagementObjectSearcher("select * from Win32_Processor") 

       Try 
        For Each share As ManagementObject In searcher.Get() 

         Dim grp As ListViewGroup 
         Try 
          grp = lstView.Groups.Add(share("Name").ToString(), share("Name").ToString()) 
         Catch 
          grp = lstView.Groups.Add(share.ToString(), share.ToString()) 
         End Try 

         If share.Properties.Count <= 0 Then 
          MessageBox.Show("No Information Available", "No Info", MessageBoxButtons.OK, MessageBoxIcon.Information) 
          Return 
         End If 


         For Each PC As PropertyData In share.Properties 

          Dim item As New ListViewItem(grp) 
          If lstView.Items.Count Mod 2 <> 0 Then 
           item.BackColor = Color.White 
          Else 
           item.BackColor = Color.WhiteSmoke 
          End If 

          item.Text = PC.Name 

          If PC.Value IsNot Nothing AndAlso PC.Value.ToString().Length > 0 Then 
           Select Case PC.Value.GetType().ToString() 
            Case "System.String[]" 
             Dim str As String() = DirectCast(PC.Value, String()) 

             Dim str2 As String = "" 
             For Each st As String In str 
              str2 += st & " " 
             Next 

             item.SubItems.Add(str2) 

             Exit Select 
            Case "System.UInt16[]" 
             Dim shortData As UShort() = DirectCast(PC.Value, UShort()) 


             Dim tstr2 As String = "" 
             For Each st As UShort In shortData 
              tstr2 += st.ToString() & " " 
             Next 

             item.SubItems.Add(tstr2) 

             Exit Select 
            Case Else 

             item.SubItems.Add(PC.Value.ToString()) 
             Exit Select 
           End Select 
          Else 
           Continue For 
          End If 
          lstView.Items.Add(item) 
         Next 
        Next 


       Catch exp As Exception 
        MessageBox.Show("can't get data because of the followeing error " & vbLf & exp.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Information) 
       End Try 


       End Sub 
Các vấn đề liên quan