Как я могу получить информацию о процессоре в .net?

18

, как, например, pentium или AMD и т. д.

    
задан suhair 04.12.2008 в 13:05
источник

3 ответа

14

Вы можете найти отличный пример для этого здесь: Ссылка

Но его в основном в System.Management

    
ответ дан Filip Ekberg 04.12.2008 в 13:07
источник
11

Обратите внимание, что это от 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();
                }
    
ответ дан WACM161 04.12.2008 в 14:41
источник
  • Обратите внимание, что «CurrentClockSpeed» не является свойством, с которым вы должны смотреть, чтобы определить МГц (Windows может отключать большинство современных процессоров при низком использовании, чтобы экономить энергию). Вместо этого вы должны посмотреть на «MaxClockSpeed» - это максимальная тактовая частота, с которой Windows может обрабатывать процессор. –  BrainSlugs83 30.05.2013 в 03:21
3

пространство имен System.Management Обеспечивает доступ к большому набору управленческой информации и управленческих событий о системе, устройствах и приложениях, применяемых в инфраструктуре инструментария управления Windows (WMI).

Процессор Win32 Класс WMI представляет собой устройство, которое может интерпретировать последовательность инструкций на компьютере, работающем в операционной системе Windows. На многопроцессорном компьютере для каждого процессора существует один экземпляр класса Win32_Processor. Класс включает поле Processor family type , кодирующее такие вещи, как семейство процессоров AMD Opteron .

Пример C #, выдающий запрос WMI , находится в конце страницы.     

ответ дан gimel 04.12.2008 в 13:29
источник
0

Этот код получит свойства 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
    
ответ дан KhaledDev 11.02.2016 в 14:41
источник