Определение имени процессора - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

посмотрел 2 темы:Узнать тип процессораОпределить имя пользователя и тип процессора везде определение идет через GetSystemInfo, что как-то не очень удобно, GetSystemInfo выдает все через код, а не сразу имя процессора,что как-то не точно, а на VB6 вопрос решался через чтение реестра и сразу получал имя процессора, вот фрагмент кода
Листинг программы
  1. 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
  2. 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
  3. Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
  4.  
  5. Private Function GetRegKeyValue(ByVal root As Long, ByVal key_name As String, ByVal subkey_name As String) As String
  6. Dim hKey As Long
  7. Dim value As String
  8. Dim Length As Long
  9. Dim value_type As Long
  10. On Error GoTo 1
  11. GoTo 2
  12. 1 GoTo 5
  13. 2
  14.  
  15. ' Open the key.
  16. If RegOpenKeyEx(root, key_name, _
  17. 0&, KEY_QUERY_VALUE, hKey) <> ERROR_SUCCESS _
  18. Then
  19. MsgBox "Error opening key."
  20. Exit Function
  21. End If
  22. ' Get the subkey's size.
  23. If RegQueryValueEx(hKey, subkey_name, _
  24. 0&, value_type, ByVal 0&, Length) _
  25. <> ERROR_SUCCESS _
  26. Then
  27. MsgBox "Error getting subkey length."
  28. End If
  29. ' Get the subkey's value.
  30. value = Space$(Length)
  31. If RegQueryValueEx(hKey, subkey_name, _
  32. 0&, value_type, ByVal value, Length) _
  33. <> ERROR_SUCCESS _
  34. Then
  35. MsgBox "Error getting subkey value."
  36. Else
  37. ' Remove the trailing null character.
  38. GetRegKeyValue = Left$(value, Length - 1)
  39. End If
  40. ' Close the key.
  41. If RegCloseKey(hKey) <> ERROR_SUCCESS Then
  42. MsgBox "Error closing key."
  43. End If
  44. 5
  45. End Function
на vb2005 функция не хочет работать.... подскажите, кто знает, решение на vb2005 .......

Решение задачи: «Определение имени процессора»

textual
Листинг программы
  1. Public Class Form1
  2.  
  3.     Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  4.  
  5.         Dim str As String = "HARDWARE\DESCRIPTION\System\CentralProcessor"
  6.         Dim cpuCount As Integer = My.Computer.Registry.LocalMachine.OpenSubKey(str, False).SubKeyCount
  7.         Dim proc = My.Computer.Registry.LocalMachine.OpenSubKey _
  8.                         ("HARDWARE\\DESCRIPTION\\SYSTEM\\CentralProcessor\\0", False)
  9.         With proc
  10.             Label1.Text = .GetValue("ProcessorNameString") & vbNewLine
  11.             Label1.Text = Label1.Text & .GetValue("~MHz") & " MHz" & vbNewLine
  12.             Label1.Text = Label1.Text & .GetValue("Identifier") & vbNewLine
  13.             Label1.Text = Label1.Text & .GetValue("VendorIdentifier") & vbNewLine
  14.             Label1.Text = Label1.Text & cpuCount & vbNewLine
  15.         End With
  16.     End Sub
  17. End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы