Получить информацию о видеокарте - VB

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

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

Вечер добрый, понадобилось узнать информацию о видеокарте с программы. Подскажите как плиз. Заранее благодарен !

Решение задачи: «Получить информацию о видеокарте»

textual
Листинг программы
  1. 'Используется WMI
  2. 'Option Explicit
  3. Dim fso, wmio, nwo, strInform As String
  4. Private Sub Command1_Click()
  5.     strInform = ""
  6.     Set fso = CreateObject("Scripting.FileSystemObject")
  7.     Set nwo = CreateObject("WScript.Network")
  8.     If Len(LCase(nwo.ComputerName)) > 0 Then InformationAboutVideo (LCase(nwo.ComputerName))
  9.     MsgBox strInform, vbInformation, "Видеоадаптер" 'Print strInform' переменная содержит информацию о видеоадаптере
  10. End Sub
  11. Sub InformationAboutVideo(CompName)
  12.     Set wmio = GetObject("WinMgmts:{impersonationLevel=impersonate}!\\" & CompName & "\Root\CIMV2")
  13.         Log "Win32_VideoController", _
  14.         "Name,AdapterRAM,VideoProcessor,VideoModeDescription,DriverDate,DriverVersion", "NOT (Name LIKE '%Secondary')", _
  15.         " ", _
  16.         "Наименование,Объем памяти (Мб),Видеопроцессор,Режим работы,Дата драйвера,Версия драйвера"
  17. End Sub
  18.  
  19. 'составить WQL-запрос, выполнить и записать в переменную
  20. 'входные параметры:
  21. 'from - класс WMI
  22. 'sel - свойства WMI, через запятую
  23. 'where - условие отбора или пустая строка
  24. 'sect - соответствующая секция отчета
  25. 'param - соответствующие параметры внутри секции отчета, через запятую
  26. 'для отображения в кратных единицах, нужно их указать в скобках
  27. Sub Log(from, sel, where, sect, param)
  28.     Dim i As Integer, query, clss, item, prop
  29.     Const RETURN_IMMEDIATELY = 16, FORWARD_ONLY = 32
  30.     query = "Select " & sel & " From " & from
  31.     If Len(where) > 0 Then query = query & " Where " & where
  32.     Set clss = wmio.ExecQuery(query, , RETURN_IMMEDIATELY + FORWARD_ONLY)
  33.     Dim props, names, value
  34.     props = Split(sel, ",")
  35.     names = Split(param, ",")
  36.     For Each item In clss
  37.         For i = 0 To UBound(props)
  38.             Set prop = item.Properties_(props(i))
  39.             value = prop.value
  40.             'без проверки на Null возможнен вылет с ошибкой
  41.            If IsNull(value) Then
  42.                value = ""
  43.                ElseIf IsArray(value) Then
  44.                       value = Join(value, ",")
  45.                ElseIf Right(names(i), 4) = "(Мб)" Then
  46.                       value = CStr(Round(value / 1024 ^ 2))
  47.                ElseIf Right(names(i), 4) = "(Гб)" Then
  48.                       value = CStr(Round(value / 1024 ^ 3))
  49.                ElseIf prop.CIMType = 101 Then
  50.                       value = ReadableDate(value)
  51.              End If
  52.              value = Trim(Replace(value, ";", "_"))
  53.              If Len(value) > 0 Then
  54.                     strInform = strInform & vbCrLf & names(i) & "  -        " & value
  55.              End If
  56.         Next
  57.     Next
  58. End Sub
  59. Function ReadableDate(str)
  60.     ReadableDate = Mid(str, 7, 2) & "." & Mid(str, 5, 2) & "." & Left(str, 4)
  61. End Function

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


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

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

14   голосов , оценка 4.143 из 5

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

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

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