Определение имени процессора - Visual Basic .NET
Формулировка задачи:
посмотрел 2 темы:Узнать тип процессораОпределить имя пользователя и тип процессора
везде определение идет через GetSystemInfo,
что как-то не очень удобно, GetSystemInfo выдает все через код, а не сразу имя процессора,что как-то не точно,
а на VB6 вопрос решался через чтение реестра и сразу получал имя процессора,
вот фрагмент кода
на vb2005 функция не хочет работать....
подскажите, кто знает, решение на vb2005 .......
Листинг программы
- Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
- Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
- Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
- Private Function GetRegKeyValue(ByVal root As Long, ByVal key_name As String, ByVal subkey_name As String) As String
- Dim hKey As Long
- Dim value As String
- Dim Length As Long
- Dim value_type As Long
- On Error GoTo 1
- GoTo 2
- 1 GoTo 5
- 2
- ' Open the key.
- If RegOpenKeyEx(root, key_name, _
- 0&, KEY_QUERY_VALUE, hKey) <> ERROR_SUCCESS _
- Then
- MsgBox "Error opening key."
- Exit Function
- End If
- ' Get the subkey's size.
- If RegQueryValueEx(hKey, subkey_name, _
- 0&, value_type, ByVal 0&, Length) _
- <> ERROR_SUCCESS _
- Then
- MsgBox "Error getting subkey length."
- End If
- ' Get the subkey's value.
- value = Space$(Length)
- If RegQueryValueEx(hKey, subkey_name, _
- 0&, value_type, ByVal value, Length) _
- <> ERROR_SUCCESS _
- Then
- MsgBox "Error getting subkey value."
- Else
- ' Remove the trailing null character.
- GetRegKeyValue = Left$(value, Length - 1)
- End If
- ' Close the key.
- If RegCloseKey(hKey) <> ERROR_SUCCESS Then
- MsgBox "Error closing key."
- End If
- 5
- End Function
Решение задачи: «Определение имени процессора»
textual
Листинг программы
- Public Class Form1
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim str As String = "HARDWARE\DESCRIPTION\System\CentralProcessor"
- Dim cpuCount As Integer = My.Computer.Registry.LocalMachine.OpenSubKey(str, False).SubKeyCount
- Dim proc = My.Computer.Registry.LocalMachine.OpenSubKey _
- ("HARDWARE\\DESCRIPTION\\SYSTEM\\CentralProcessor\\0", False)
- With proc
- Label1.Text = .GetValue("ProcessorNameString") & vbNewLine
- Label1.Text = Label1.Text & .GetValue("~MHz") & " MHz" & vbNewLine
- Label1.Text = Label1.Text & .GetValue("Identifier") & vbNewLine
- Label1.Text = Label1.Text & .GetValue("VendorIdentifier") & vbNewLine
- Label1.Text = Label1.Text & cpuCount & vbNewLine
- End With
- End Sub
- End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д